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



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

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

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

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

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

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

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

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

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

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

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

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




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

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



Программное обеспечение Линукс для web-мастера

Программное обеспечение Линукс для web-мастер...


Работа с удаленными файлами Php-редакторы как под Windows, так и под Linux поддерживают работу с файлами через ftp. Как правило, редакторы работают по ftp так: файл скачивается с сервера, помещался во...


Отблагодарила

Отблагодарила


— Милая, й-это я! Т-твой законный супруг. — голос за входной дверью звучал глухо, но было понятно что мой драгоценный провел вечер на «ура». Ну да, я ведь ему сама разрешила встретиться с сокурсникам...


Почему мужчинам нравятся полненькие женщины?

Почему мужчинам нравятся полненькие женщины?


Мужчинам всегда нравилось, нравится и будет нравиться, когда у них всего — «полным-полно»… Читает Дмитрий Креминский Скачать в mp3 (4. 1 Mb / 04:26 мин. ) Если стакан, т...


Как уничтожить зловреда okayinfo.ru?

Как уничтожить зловреда okayinfo.ru?


«Вы не могли бы посмотреть компьютер? Там, кажется, вирус…» Отчего же не посмотреть, тем более что это моя работа и я даже знаю, какой там вирус — очень неприят...


Как получить строительную лицензию в Украине?

Как получить строительную лицензию в Украине?


Согласно Закону «О лицензировании отдельных видов деятельности», обязательному лицензированию подлежит деятельность в сфере строительства. В широком смысле, строительная лицензия означает получение ра...


Еда вместо любви

Еда вместо любви


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


Стоит прочесть

Музыка и Интернет

Интернет дает нам невиданные раньше возможности, мы можем находить новых друзей по всему миру, получать дополнительное образование, развлекаться не выходя из дома, заказывать продукты и технику. Миров...

Коррекционная работа по формированию просодическ

ВведениеЗначение просодической стороны речи подчеркивали многие исследо-ватели. Так, В.М. Бехтерев выделял следующие цели просо¬дического воспи-тания: выявить ритмические рефлексы, приучить организм р...

Как пережить просмотр футбольного матча с мужем-бо

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

Интернет бизнес для чайников

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

Посетителю сайта должно быть удобно его читать

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

Для чего требуется облуживание кондиционеров?

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

Вкусные рецепты: Слойки "Золотое яблочко"

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

От мечты до реальности одни шаг

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

Путевки из Санкт-Петербурга в Турцию: самые лучшие

Для жителей Санкт-Петербурга туры в Турцию давно стали недорогим и удобнымвариантом для отдыха. В эту страну легко поехать даже с детьми, ведь полет длится 3-4 часа. Больше всего восхищает наших сооте...

Ковры в аренду – лучшее решение

Ещё свежи в воспоминаниях мокрые грязные полы в торговых залах зимой, по которым уборщицы без конца возили тряпками. Такая неприглядная картина продолжалась до последнего времени, пока не появились гр...

Новости развития информационнного портала:

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

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