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



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

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

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

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

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

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

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

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

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

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

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

Автор статьи: неизвестный | Дата публикации: 23:35 24.03.2017 Okayinfo.Ru




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

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



Наступающий год: елочные игрушки москва и большая елка

Наступающий год: елочные игрушки москва и бол...


Искусственные елки, гирлянды оптом, новогодние пластиковые шары, елочные украшения и игрушки… У любого эти слова ассоциируются с самым долгожданным и любимым праздником – Новым Годом. Важнейший атрибу...


Как приготовить плов без особых хлопот? Усовершенствованная технология

Как приготовить плов без особых хлопот? Усове...


Плов — одно из наиболее востребованных блюд не только для праздничного стола, но и для ежедневного потребления в России и других странах бывшего СССР. Считается, что наиболее правильно гото...


Перфоратор bosch

Перфоратор bosch


Если Вы читаете эту статью, то Вы наверняка искали перфоратор bosch pbh, gbh, gsh, русскими буквами (бош) через поисковые системы, с целью его покупки. Почему Вы попали на сайт компании электромотор...


Появилась сосудистая сеточка, что делать?

Появилась сосудистая сеточка, что делать?


Сосудистая сеточка – одна из наиболее распространенных проблем современных женщин. Каждая вторая рано или поздно начинает замечать у себя признаки этого явления. Но далеко не каждая знает, что делать ...


Голливудская диета

Голливудская диета


Свое название этот метод похудения получил не сразу, а спустя определенное время после того как стал весьма популярен среди знаменитостей Голливуда. Звезды полюбили эту диету за то, что с её помощью о...


Как красить стеклообои?

Как красить стеклообои?


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


Популярное

Гостиницы в Домодедово: где стоит забронировать но

Если вы путешествуете транзитом через Москву, вас непременно будет волновать вопрос, где в столь большом мегаполисе остановиться на пару суток. Альтернатив вблизи аэропорта Домодедово огромное количес...

Отправляйтесь в автобусные туры по Европе

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

Заказчик сайта тоже должен поработать

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

Что такое темари, или Как мяч принцессы стал искус

Немного истории… Давным-давно бережливые китайские бабушки и мамы нашли применение старым изношенным кимоно. Они стали делать из них… мячики для детей. В 8 веке китайские мячики завезли...

Картины в интерьере

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

Туры в Иерусалим

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

На страже чистоты настоящая система

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

Картридер. Как выбрать?

Со школьной скамьи нас учат, что за универсальность надо платить: либо скоростью, либо сложностью, либо деньгами. Но у специализированных вещей тоже есть свой недостаток – они заточены под одну конкре...

Наружная реклама

«Реклама – двигатель торговли». И, уже давно не те времена, когда нет конкурентов, и можно было бы смело, при плохом качестве продукции безнаказанно повышать цены. Сейчас, при жёсткой конкуренции сред...

Зачем нужен копирайтинг?

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

Развивая портал:

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

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