Создание формы подбора для документа

В данной статье речь пойдет о создании формы подбора Номенклатуры, открываемой из формы документа для подбора необходимых позиций. Форма будет создана на основе общих форм и будет состоять из трех списков. Первый список будет отображать дерево значений номенклатуры, второй - непосредственно список номенклатуры, а в третьем будут отображаться выбранные значения. Для начала зайдем в документ, создадим кнопку "Подбор" и команду на кнопку. Теперь добавим действие на эту команду в котором пропишем код, открывающий форму подбора: &НаКлиенте
Процедура Подбор(Команда)
ОткрытьФорму("ОбщаяФорма. ФормаПодбора");
КонецПроцедуры
Далее закрываем форму документа (к ней мы вернемся чуть позже) и создаем новую общую форму "ФормаПодбора":

Далее добавляем таблицу на форму и реквизит к таблице. Тип данных реквизита будет "ДинамическийСписок". В свойствах реквизита в разделе Объект поставим галочку - "Произвольный запрос" и нажмем на ссылку Настройка списка: В появившейся форме нам необходимо будет написать запрос который будет отображаться в таблице "Дерево". Текст запроса будет выглядеть так: ВЫБРАТЬ
Номенклатура. Наименование КАК Группа
ИЗ
Справочник. Номенклатура КАК Номенклатура
ГДЕ
Номенклатура. ЭтоГруппа Теперь нужно немного изменить настройки для таблицы Дерево, точнее изменить кое какие свойства отображения нашего древовидного списка: 1. Установим галочку на свойство ТолькоПросмотр 2. Установим галочку на свойство РежимВыбора 3. ПоложениеКоманднойПанели - Нет 4. Отображение - Дерево 5. Режим выделения - Одиночный 6. Начальное отображение дерева - Раскрывать верхний уровень 7. Выбор групп и элементов - Группы 8. РазрешитьВыборКорня - Галочка Посмотрим что у нас получилось:

Неплохо. Следующим шагом будет создание таблицы где будет отображаться сама номенклатура. Создадим на форме еще отдну таблицу Список и добавим реквизит с таким же названием. Как и в случае с реквизитом Дерево повторяем те же манипуляции, т. е. тип - ДинамическийСписок, произвольный запрос - Да. Открываем форму редактирования запроса. Тут придется написать запрос чуточку сложнее (подробности можно посмотреть в конструкторе запросов): ВЫБРАТЬ
ЦеныСрезПоследних. Цена,
НоменклатураСписок. Код,
НоменклатураСписок. Ссылка
ИЗ
Справочник. Номенклатура КАК НоменклатураСписок
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. Цены. СрезПоследних КАК ЦеныСрезПоследних
ПО НоменклатураСписок. Ссылка = ЦеныСрезПоследних. Номенклатура. Ссылка
ГДЕ
НоменклатураСписок. Родитель. Ссылка В(&Группа)
СГРУППИРОВАТЬ ПО
ЦеныСрезПоследних. Цена,
НоменклатураСписок. Код,
НоменклатураСписок. Ссылка Плюс нужно создать событие формы ПриСозданииНаСервере и прописать в нем наш фильтр "Группа": &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Список. Параметры. УстановитьЗначениеПараметра("Группа", Группа);
КонецПроцедуры Форма почти готова. Осталось связать наши таблицы: Дерево и Список. Для этого нужно будет создать еще несколько событий для таблицы Дерево: &НаКлиенте
Процедура ОбновитьСписок()
Список. Параметры. УстановитьЗначениеПараметра("Группа", Группа);
КонецПроцедуры

&НаКлиенте
Процедура ДеревоВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
Группа = Значение;
ОбновитьСписок();
КонецПроцедуры
&НаКлиенте
Процедура ДеревоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Группа = ВыбранноеЗначение;
ОбновитьСписок();
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПередРазворачиванием(Элемент, Строка, Отказ)
Группа = Строка;
ОбновитьСписок();
КонецПроцедуры &НаКлиенте
Процедура ДеревоПередСворачиванием(Элемент, Строка, Отказ)
Группа = Строка;
ОбновитьСписок();
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПриСменеТекущегоРодителя(Элемент)
Группа = Элемент. Родитель;
ОбновитьСписок();
КонецПроцедуры Наша форма почти готова: Ну и наконец добавим третий список (тип данных - ТаблицаЗначений), в который добавим 2 колонки - Номенклатура и Цена: а в таблице "Список" добавим событие "Выбор": &НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

ТекущаяСтрока = Элемент. ТекущиеДанные;
НоваяСтрока = Отобранные. Добавить();
НоваяСтрока. Номенклатура = ТекущаяСтрока. Ссылка;
НоваяСтрока. Цена = ТекущаяСтрока. Цена;

КонецПроцедуры Теперь необходимо чтобы эта форма возвращала отобранные значения, обратно в форму документа. Для этого создадим новую кнопку "ОК" и создадим новую команду с таким же названием. Событие будет выглядеть так: &НаКлиенте
Процедура ОК(Команда)
Закрыть(ЗаписатьВХранилище());
КонецПроцедуры
а функция ЗаписатьВХранилище будет такая: &НаСервере
Функция ЗаписатьВХранилище()
Возврат ПоместитьВоВременноеХранилище(Отобранные. Выгрузить());
КонецФункции
Откроем опять форму нашего документа и исправим процедуру Подбор, добавив процедуру получения данных из временного хранилища: &НаСервере
Процедура ПолучитьЗапасыИзХранилища(АдресВХранилище)

ВременнаяТаблица = ПолучитьИзВременногоХранилища(АдресВХранилище);

Для Каждого ЗагружаемаяСтрока Из ВременнаяТаблица Цикл
СтрокаТЧ = Объект["Товар"]. Добавить();
СтрокаТЧ. Номенклатура = ЗагружаемаяСтрока. Номенклатура;
СтрокаТЧ. Цена = ЗагружаемаяСтрока. Цена;
КонецЦикла;

КонецПроцедуры
&НаКлиенте
Процедура Подбор(Команда)

ФормаПодбора = ПолучитьФорму("ОбщаяФорма. ФормаПодбора");
АдресВХранилище = ФормаПодбора. ОткрытьМодально();
Если ЗначениеЗаполнено(АдресВХранилище) Тогда
ПолучитьЗапасыИзХранилища(АдресВХранилище);
КонецЕсли;

КонецПроцедуры Наконец наша форма подбора готова:
Источник материала

Автор статьи: неизвестный | Дата публикации: 15:11 14.12.2016 7-b.Su




Отзывы и комментарии
Ваше имя (псевдоним):
Проверка на спам:

Введите символы с картинки:



Как самостоятельно устроиться на учебно-производственную практику или стажировку с перспективой дальнейшего трудоустройства

Как самостоятельно устроиться на учебно-произ...


Как самостоятельно устроиться на учебно-производственную практику или стажировку с перспективой дальнейшего трудоустройства?Неплохой техникой переговоров для студентов в данном вопросе может быть техн...


Почему Дон-Кихот - Ламанчский?

Почему Дон-Кихот - Ламанчский?


Итак, Сервантес в своей книге без всякой жалости посмеялся над благородными бездельниками, не желающими замечать, что времена уже изменились. Провинциальный идальго Алонсо Кихано, начитавшись рыцарски...


Особенности дизайна выставочных стендов

Особенности дизайна выставочных стендов


Эффективность участия в выставке складывается из многих факторов: правильный выбор выставки, продуманная программа подготовки, качественная работа команды стендистов и, конечно, дизайн выставочного ст...


Рубенс. Портреты герцога Букингема. Почему королевский дворец называется «Букингемский»?

Рубенс. Портреты герцога Букингема. Почему ко...


«Любимец двух королей, обладатель многих миллионов, пользуясь неслыханной властью в стране, которую он по своей прихоти то будоражил, то успокаивал, подчиняясь только своим капризам, Джордж Вилл...


Невеста семи демонов. Глава 2

Невеста семи демонов. Глава 2


Принцесса Александрия не хотела еще просыпаться, но тело ныло и чесалось, и она открыла глаза. Думая об удивительном сне, что приснился ей ночью, она не сразу поняла, что лежит совсем голая. Но когда ...


Значение грудного вскармливания для здоровья матери

Значение грудного вскармливания для здоровья ...


Известо ли вам, что прикладывание ребенка к груди в течение первого часа после родов значительно снижает риск послеродового маточного кровотечения? Но это лишь один из положительных факторов влияющих ...


Читаемые

Медвежата Me to you - самые неотразимые плюшевые т

Наиболее приятным подарком для всех девочек, являются плюшевые медвежата, у которых есть и другое имя игрушки Me to you. Так как наблюдая эту симпотичную рожицу, возможно ли, чтобы кто-нибудь мог оста...

Самый быстрый способ поднять доход

Кому не знакома картина - босс ходит в напряжении по кабинету или сидит за своим столом, нахмурившись, и все его мысли в этот момент об одном - откуда бы ещё срочно получить денег! Деньги вот-вот долж...

Увлекательная история домашнего телефона

Сегодня каждый человек может позволить себе подключение телефона дома или в офисе, но мало кто знает историю изобретения этого столь привычного устройства. Изобретению прибора, который бы для приема и...

Дополнительный пассивный доход вполне реален

В интернете много предложений по дополнительному пассивному заработку. Из них 99% не рабочие. И поэтому многие уже не верят в то, что это реально. Попробую Вас переубедить или хотя бы попасть ...

Вкусные рецепты: Маковые тортини с черешней, Рулет

Маковые тортини с черешнейВ просеянную муку вбить яйцо,добавить молоко,сахар и мак(запаривать его не надо).Быстро замесить тесто,плотное по консистенции.Разделить на 12 шариков и вложить их в формы .Д...

Стеновые откосы пвх глянцевые в Москве

Строительство в России в наше время одна из самых бурно развивающихся областей приложения труда и вложения финансов. Это объясняется тем, что у людей появились свободные финансы, которые они хотят вло...

Халязион, симптомы и лечение

Халязионом называют заболевание, проявляющееся в виде воспалительного процесса вокруг края сальной железы и хряща века. Известно, что сальные железы обычно располагаются внутри века за ресницами. В ка...

Стрекоза - беззаботная, отважная или дьявольская?

Стрекозы в общих чертах очень похожи. А вот отношение к ним людей в разных странах разное. Почтенное отношение к стрекозам характерно для Японии. К примеру, в «Летописи Японии», соста...

Вкусные рецепты: Завтрак для школьника. Оладьи с б

Завтрак для школьника. Оладьи с бананами и апельсиновым гоголь-моголем "Доброе утро, моё Солнышко!".Отделите белки от желтков. В чаше процессора или кухонного комбайна соедините тёплые сливки, яичные ...

К 150-летию сказки про Алису: что вычитывали у Кэр

Совсем недавно мне позвонили из Русской службы BBC, чтобы взять небольшое интервью о Льюисе Кэрролле. А я-то и запамятовал, что этим летом британская (и особенно Оксфордская) общественность празднует ...

О информационном портале:

Наш портал является ресурсом, который включает в себя широкий перечень познавательных и интересных статей. Каждый посетитель найдет для себя что-нибудь полезное. Адаптированный дизайн позволяет вам максимально быстро находить необходимую информацию. Самые разнообразные тематические статьи дают возможность вам совершенствоваться в той или иной сфере. Быть более начитанным и грамотным. Современный дизайн сайта позволяет просматривать статьи на всех существующих планшетах. Теперь найти необходимую информацию стало совершенно просто.

Мы собрали для вас информативные и отличные статьи. У нас сайте вы найдете ответы на необходимые для вас вопросы. Упрощенная система поиска позволяет вам мгновенно отыскать нужную информацию. Адаптированный дизайн позволяет вам просматривать информацию на абсолютно любых электронных устройствах. Теперь, поиск нужной информации будет занимать у вас считанные секунды.