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

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

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

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

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

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

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

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

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

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

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

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



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

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



Вкусные рецепты: Сырная полента с грибами, базиликом и томатами черри., orexovo-shokoladnye pirozhnye, Горячий шоколад со специями

Вкусные рецепты: Сырная полента с грибами, базиликом...

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

Современные системы видеонаблюдения для безопасности...

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

Как ухаживать за хорьком

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

Туристическое оборудование

 Южнокорейская компания KOVEA начала свою историю в 1982 году и уже более 20 лет радует своих покупателей широчайшим ассортиментом товаров для активного отдыха. За последние пять лет, компания, котора...
Тенденции ресторанного бизнеса: главное - свежесть!

Тенденции ресторанного бизнеса: главное - свежесть!

Исследования, проведенные Национальной ассоциацией рестораторов Америки, выявили еще одну отличительную особенность современной кулинарной моды – тенденция к использованию тех продуктов, которые были ...
Вкусные рецепты: САЛАТИК С ТУНЦОМ, торт "Чёрный принц", Куриные шашлычки-кебабы "Тика"

Вкусные рецепты: САЛАТИК С ТУНЦОМ, торт "Чёрный...

САЛАТИК С ТУНЦОМВыкладывать салат СЛОЯМИ: 1.Тунец (жидкость слить),размять вилкой. -Майонез. 2.Зелёный горошек (жидкость слить через дуршлаг). 3.Маринованный лук.(Лук мелко порезать и положить в марин...
Познавательное

Зачем редактор правит статью, начиная аж с заголов

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

Строительство плитного фундамента

Ленточные фундаменты бывают двух видов: заглубленные (ниже глубины промерзания) и малозаглубленные (...

Дом в наследство

Так уж повелось, что действующие сегодня ГОСТы и СНиПы определяют параметры долговечности построек л...

Вкусные рецепты: Грибной соус, Шоколадно-ореховый

Грибной соусГрибы нарезать. Обжарить на сливочном масле. Лук порезать мелко и тоже обжарить на сливо...

Вкусные рецепты: Салат «Розовые щечки», Брускетта

Салат «Розовые щечки»Охлажденную очищенную отварную свеклу нарезают мелкой соломкой, посыпают солью,...

Были ли русы славянами?

Были ли русы славянами? Странный вопрос, скажете вы. Если уже русские не славяне, тогда кто мож...

Генератор — рациональный выбор для коттеджа

Покупка коттеджа — важное и ответственное событие в жизни каждого человека. Для некоторых людей кот...

Маркетинг в сфере услуг: особенности

Маркетинг в сфере услуг в последнее время получает всё большее распространение за счет роста самой с...

Почему молодые мамы так любят интернет магазины де

Кто активнее всего посещает интернет магазины одежды? Модницы, любители шоппинга, молодежь, живущая ...

Проверка софта на контрафактность

Довольно длительный период, когда в магазине можно было за 80 рублей купить диск с подборкой програм...



О портале:

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

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