1с форма подбора номенклатуры. Загрузка и выгрузка номенклатуры
Мы привыкли читать и смотреть слева направо, поэтому пользователи при заполнении табличных частей документов в 1С используют кнопку «Добавить». Эта функция добавляет одну пустую строку, и пользователь заполняет необходимые поля, подчеркнутые красным. В процессе работы сотрудники не задумываются о других возможностях 1С, стараясь не ошибиться и быстрее выполнить свои обязанности. Продвинутые пользователи 1С предпочитают использовать не кнопку «Добавить», а воспользоваться механизмом подбора.
Подбор в 1С является полезным механизмом, применимым в различных ситуациях. На примере одной из них рассмотрим реализацию механизма подборов на управляемых формах.
Подбор в стандартной конфигурации 1С
Многие документы в стандартных конфигурациях на платформе 1С имеют табличные части, в которых необходимо указывать несколько однотипных строк. Подавляющее большинство таких документов имеют механизм подборов:
В данном примере запуск окна подбора товаров в документе «ЗаказПоставщику» происходит через кнопку «Подобрать товары». Нажав ее, пользователь видит окно подбора, разделенное на несколько областей:
- Перечень номенклатуры;
- Возможности отбора;
- Выбранная номенклатура.
Форма подбора весьма функциональна, так как позволяет:
- Задать нужный пользователю фильтр (по наличию на складе, цене, сегменту, названию и другим критериям);
- Посмотреть остатки;
- Выбрать сразу несколько номенклатур и их количество;
- Ознакомиться с ценами поставщика, если они загружены в 1С.
После того как подобран нужный перечень номенклатуры и проставлено количество, пользователи нажимают на кнопку «Перенести в документ», и выбранные позиции переносятся в «ЗаказПоставщику», вместе с введенным количеством. Подбор 1С существенно экономит время сотрудникам компании и облегчает их труд.
Распространенное применение подборов в 1С
В процессе внедрения может возникнуть необходимость добавить возможность подбора. Выполнить эту задачу под силу разработчикам даже с небольшим опытом. Для примера, реализуем подбор в 1С остатков номенклатуры на определенном складе при заполнении табличной части документа «РеализацияТоваров».
В первую очередь нужно для справочника «Номенклатура» создать форму выбора и добавить реквизит «Склад» с типом «СправочникСсылка.Склады». Перенесем его на форму и проставим свойство «ТолькоПросмотр» в значение «Истина», чтобы пользователь видел, номенклатуру какого склада он выбирает. Уже существующий динамический список переименуем в «ТоварыДляВыбора»:
Также нам потребуется изменить свойства динамического списка:
- Проставляем галку «ПроизвольныйЗапрос»;
- Открываем свойство «Настройка списка». По умолчанию запрос динамического списка выбирает все поля справочника «Номенклатура»;
- Изменяем запрос таким образом, чтобы в список попадала только номенклатура, положительный остаток которой лежит на конкретном складе.
Фрагмент 1
ВЫБРАТЬ СправочникНоменклатура.Ссылка, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура ПО ТоварыНаСкладахОстатки.Товар = СправочникНоменклатура.Ссылка ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток > 0 И ТоварыНаСкладахОстатки.Склад = &СкладИзменение формы документа в 1С
Переходим к форме документа «РеализацияТоваров» и добавляем команду «ПодборТоваров», размещаем ее на форме и прописываем действие этой команды:
Фрагмент 2
&НаКлиенте Процедура ПодборТоваров(Команда) ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, Склад", Ложь, Истина,Объект.Склад); ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбора", ПараметрыПодбора, Элементы.Товары); КонецПроцедурыВ качестве условия отбора по складу берем значение из документа из поля Склад. Нужно, чтобы новая форма подбора справочника «Номенклатура» получила значение склада, по которому будут отбираться остатки. Для этого в модуле формы подбора необходимо заполнять переменную написанного нами запроса из параметров формы в стандартной процедуре «ПриСозданииНаСервере»:
Фрагмент 3
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТоварыДляВыбора.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад); Склад = Параметры.Склад; КонецПроцедурыДля того чтобы пользователи могли выбирать товары из сформировавшегося списка, необходимо в форме документа продажи для табличной части, куда будут добавляться строки с выбранной номенклатурой, изменить стандартное событие «ОбработкаВыбора»:
Фрагмент 4
&НаКлиенте Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ТоварыОбработкаВыбораНаСервере(ВыбранноеЗначение); КонецПроцедуры &НаСервере Процедура ТоварыОбработкаВыбораНаСервере(ВыбранноеЗначение) Для Каждого вЗнч Из ВыбранноеЗначение Цикл нСтр = Объект.Товары.Добавить(); нСтр.Номенклатура = вЗнч.Значение; КонецЦикла; КонецПроцедурыНапоследок на форме подбора номенклатуры 1С у динамического списка «ТоварыДляВыбора» нужно переопределить событие «Выбор»:
Фрагмент 5
&НаКлиенте Процедура ТоварыДляВыбораВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; парам_Номен = Элемент.ТекущиеДанные.Ссылка; ОповеститьОВыборе(Новый Структура("Номенклатура", парам_Номен)); КонецПроцедурыПроверка реализации подбора в 1С
Все приготовления окончены, остается только обновить конфигурацию и проверить, работает ли подбор в 1С по складу и положительным остаткам. После обновления и отсутствия ошибок, проверяем текущую ситуацию в регистре накопления «ТоварыНаСкладах», где существуют следующие записи:
Создаем новый документ, заполняем обязательные поля, в том числе и «Склад», и нажимаем на кнопку «Подбор товаров». Перед нами появляется только номенклатура, хранящаяся на главном складе с положительными остатками.
При двойном нажатии на конкретную номенклатуру в табличной части документа «РеализацияТоваров» появляется новая строка с выбранной номенклатурой. Пользователь самостоятельно сможет заполнить все остальные поля (количество, цену и другие).
Данный функционал подбора можно доработать с целью не только облегчения труда операторам и менеджерам, но и для других целей: контролировать остатки, рассчитываться с контрагентами и автоматически заполнять остальные поля табличной части документа.
Итак, перед нами начальная страница программы. Слева мы видим разделы меню, находим раздел «Справочники». Нажатием левой кнопкой мыши открывается окно с подразделами данного справочника
Здесь, в разделе «Товары и услуги» находим надпись «Номенклатура»
Нажимаем, открывается пустая страница, в которой мы будем делать заполнения
Многие организации занимаются не только куплей/продажей товаров, но предоставляют услуги по доставке. Для удобства, рекомендуем разделить эти виды деятельности на соответствующие группы. Назовем их «Товары» и «Услуги». Нажимаем «Создать группу»
Перед нами открывается небольшое окно «Номенклатура (создание группы)»
Вводим название данной группы «Товары» в поле «Наименование». Поле «Вид номенклатуры» можно оставить незаполненным. Далее жмём «Записать и закрыть».
Таким же путем создаём группу «Услуги». В графе «Наименование» появились две созданные группы, условно их можно называть папки
Допустим, что продавать мы будем хозяйственные товары. Вводим в поле «Наименование» название товара, которое будет видеть пользователь. Предположим Ведро.
Следующее поле «Полное наименование» подразумевает уточнение по товару. Например, Ведро для мусора 10л. То, что мы здесь напишем, будет отображаться в печатной форме документов.
Ниже есть поле «Артикул». Здесь будет отображаться уникальный артикул номенклатуры, по которому данный товар можно будет искать или различать.
Строка «Входит в группу» заполняется автоматически по названию папки, в которую входит.
Поле «Вид номенклатуры». Обязательно нужно заполнить путем выбора вида из выпадающего окна. На основании выбора задается счет учета номенклатуры. Выбираем «Товары», потому что мы планируем покупать их и продавать.
Следующее поле «Единица». Нам необходимо указать «ШТ.», так как товар у нас штучный.
В следующем поле «% НДС» проставляем процентную ставку – 18%, которая соответствует данной категории товаров согласно стандартам
В следующем поле «Комментарий» мы можем указать любую дополнительную информацию, относящуюся к данному товару.
Заполнение других параметров пока рассматривать не будем. Вернемся к ним при необходимости. Нажимаем кнопку «Записать»
Создадим еще 2 товара. Например, Ведро для мусора 15л и Ведро для мусора 30л.
Видим, что в папке располагаются три товара, которые мы с вами ввели.
Перейдём теперь к заполнению услуг. Входим в папку «Услуги» и нажимаем «Создать». Аналогичным образом, как и при создании группы «Товары» заполняем поля
«Наименование» и «Полное наименование» будут содержать одни и те же данные – Услуги по доставке.
«Входит в группу» так же будет заполнено автоматически.
В поле «Вид номенклатуры» нужно отметить, что это Услуги. Больше здесь ничего не нужно заполнять.
Одно из самых важных понятий номенклатуры, это «Счета учета номенклатуры». В справочнике эту гиперссылку можно найти в верхней части
Здесь указаны основные параметры установки счетов в документы. Например, для нашего вида номенклатуры «Товары» указан номер счета 41.01. Для «Услуги» номер счета не указан. Нажав на саму надпись можно зайти в настройки и прописать его. Сделаем это. Укажем счет учёта 20.01
Сейчас обратим внимание на верхнюю строчку. Если «Вид номенклатуры» не указан, то по умолчанию будет использован счет 41.01
Если зайти в настройки, то здесь помимо номенклатуры можно указать конкретную позицию или целую папку, для которой будет использоваться это правило.
Итак, мы создали номенклатуру, создали счета для учета номенклатуры и разобрались, как с ними работать.
Перед прочтением данной статьи рекомендую ознакомиться с особенностями справочника Номенклатура .
В 1С Бухгалтерии 8 есть очень удобный инструмент, позволяющий ускорить заполнение табличных частей документов — это подбор. Функция эта есть почти везде, где есть табличная часть. Причём это касается не только документов, но и других форм с табличными частями. Тем не менее, как показывает моя практика проведения учебных курсов 1С Бухгалтерии 8 , поначалу пользователи почему-то не хотят пользоваться этой удобной функцией, вбивая строки в табличную часть вручную.
Это выглядит довольно странно, когда человек вводит, к примеру, документ реализации, в котором нужно продать 50 наименований товаров, и при этом каждый товар в табличную часть добавляется через всеми любимую кнопку "Добавить" . Это долго и неэффективно, поэтому на занятиях я с самого начала рекомендую пользоваться кнопкой "Подбор" . Кнопка эта всегда расположена на панели инструментов той табличной части, которую требуется заполнить. Ниже приведён скриншот окна документа "Реализация товаров и услуг" в Бухгалтерии 8.2, на примере которого я рассмотрю применение кнопки "Подбор" для быстрого заполнения табличных частей документов в программе 1С.
Когда нужно пользоваться подбором в 1С Бухгалтерии
Как видите, в данном документе требуется добавить товары табличную часть. Если нужно добавить всего одну позицию, то проще воспользоваться кнопкой "Добавить" — так и правда получится быстрее. Однако, если нужно ввести две или более позиции в документ, то нажимать каждый раз "Добавить" долго и неудобно, поскольку каждый раз будет заново открываться справочник Номенклатура при выборе товара в добавленной строке.
Особое неудобство здесь в том, что справочник Номенклатура каждый раз будет открываться с корня, поскольку он вовсе не запоминает, из какой папки в нём вы последний раз что-то выбирали! А это значит, что каждый раз вам придётся заходить в нужную вам папку, что особенно раздражает, когда вы подбираете элементы из одной папки.
Вот тут-то и выручает кнопка "Подбор" , позволяющая сэкономить время и выбрать все нужные элементы (в данном случае номенклатуру) из справочника за один раз. Конечно, не в смысле за один клик мышки, но, тем не менее, гораздо быстрее .
Используйте кнопку "Подбор" для заполнения табличных частей форм в тех случаях, когда в табличную часть требуется добавить более чем одну строку. Это касается не только подбора номенклатуры, но и других случаев (например, подбор сотрудников).
В случае со справочником "Номенклатура" есть ещё одна выгода использования подбора элементов, в том числе и тогда, когда нужно ввести всего один элемент. Подробности смотрите в видеоролике в конце статьи.
Тут была важная часть статьи, но без JavaScript её не видно!
Как использовать кнопку подбора в 1С Бухгалтерии 8.2
Продолжаем рассматривать пример с добавлением товаров в документ реализации. При нажатии кнопки подбора номенклатуры в 1С Бухгалтерии 8.2 открывается окно, показанное ниже. Оно по умолчанию прикреплено к правой части главного окна программы, что очень удобно.
сайт_В верхней части окна расположены различные фильтры, позволяющие скрыть ненужное в справочнике. Например, можно скрыть все элементы, не относящиеся к определённой номенклатурной группе.
Далее окно состоит из двух частей, верхнее из которых используется для навигации по папкам справочника, а нижнее — для навигации и, собственно, выбора элементов. Мне, например, удобнее пользоваться для подбора номенклатуры в документ только нижним окном, в котором можно видеть не только папки, но и саму подбираемую номенклатуру.
Стоит, тем не менее, иметь ввиду, что использование подбора в ряде случаев не только не ускоряет, но и, наоборот, замедляет ввод строк в табличную часть. Я имею ввиду не только тот случай, описанный выше, когда требуется ввести всего лишь одну строку, но и некоторые другие. Всё это я рассматриваю на своих курсах 1С Бухгалтерии (с особенностями занятий вы можете ознакомиться
Работая с программами 1С, пользователи постоянно создают документы для отражения различных операций с товарами: покупка, продажа, перемещение, инвентаризация и др. Во всех документах пользователю необходимо указывать список товаров. Когда ассортимент номенклатуры компании достаточно большой, заполнение документов может занимать много времени.
В программе «1С:Управление торговлей, ред. 10.3» во всех документах реализован механизм подбора товаров, позволяющий заполнять документы быстро и удобно. Рассмотрим работу данного механизма на примере документа «Заказ покупателя».
Меню: Документы – Продажи – Заказы покупателей
Создадим документ, укажем в нем организацию, склад и контрагента:
Далее необходимо заполнить список заказываемых товаров, их количества и цены. Можно добавлять в таблицу новые строки, выбирать в них номенклатуру и указывать количество, но такой вариант достаточно сложный.
Нажмем на кнопку «Подбор» для открытия окна подбора:
Окно подбора выглядит следующим образом:
Окно подбора состоит из нескольких частей.
Наверху можно выбрать способ подбора, указать номенклатурную группу и сделать поиск номенклатуры:
Ниже располагается список всех групп номенклатуры из справочника:
Вы можете устанавливать курсор на нужную вам группу товаров, и в окне подбора ниже отобразятся товары из выбранной группы.
Под группами располагается сам список товаров и некоторые дополнительные настройки.
Работая с подбором, вы можете выбрать один из вариантов:
Примечание: показываются остатки товаров по складу, который выбран в заказе. Для отображения цен в заказе покупателя должен быть выбрать тип цен.
Установим подбор по остаткам номенклатуры. Для поиска необходимого товара можно воспользоваться полем поиска наверху. Поиск товара возможен по наименованию, артикулу, коду и штрихкоду.
Выберем вариант поиска по артикулу и укажем необходимый артикул. Программа найдет товар с данным артикулом и спозиционируется на нем в списке товаров:
Чтобы добавить найденный товар в заказ покупателя нужно просто сделать по нему двойной клик мышью. При этом программа добавит в заказ строку с нужным товаром, укажет количество – 1 шт. и установит цену (если она установлена в базе):
Повторный двойной клик по товару вызовет увеличение количества в строке до 2 шт. Т. е. если товар уже присутствует в заказе, он не добавляется повторно, а количество товара в заказе увеличивается.
В момент добавления товара в заказ можно указывать необходимое количество и цену. Для этого установим внизу флаги «Запрашивать количество» и «Запрашивать цену»:
В этом случае при двойном клике по товару откроется специальное окно для ввода количества и цены:
Заказ покупателя после добавления вентилятора:
Если по товару ведется учет по характеристикам, то можно также установить флаг «Запрашивать характеристику» там же. С такой настройкой при двойном клике по товару программа откроет окно для ввода количества и цены по каждой характеристике товара:
В поле количество указывается количество товара с данной характеристикой, которое нужно добавить в заказ. А в поле цена – цена на товар с данной характеристикой.
Заказ покупателя после добавления женских босоножек:
Таким образом, вы можете пользоваться подбором, искать необходимые товары и быстро добавлять их в документы, указав количество и цену. Окно подбора вы можете открыть в любом документе, который содержит список товаров. Все настройки, сделанные в подборе, сохраняются в программе (отдельно для каждого пользователя и вида документа).
В данной статье рассматривается технология реализации подбора на платформе 1С 8.2. Статья не претендует на академизм, просто столкнувшись с рядом проблем и не нашедшим «правильной» методологии решения (возможно плохо искал), решил пройти этот путь самостоятельно, естественно пользуясь различными источниками. В основном я опираюсь на материалы мастер-групп Базового курса «Профессиональное программирование в 1С» Евгения Гилева и Насипова Фарита, участником которого я являюсь, а также соответствующей литературы (М.Г. Радченко, Е.Ю. Хрусталева Практическое пособие разработчика).
Итак, предметная область: компания занимается оптовой торговлей товарами имеющими срок годности, который относится к серии, а та в свою очередь принадлежит конкретному товару. Товары поступают на разные склады. Задача: реализовать удобное заполнение табличной части расходного документа. Решение: необходимо реализовать форму подбора, обеспечивающею просмотр остатков товара по срокам годности, возможность выбора соответствующих позиций и последующий перенос в табличную часть документа. Задачи такого плана встречаются в 5 части сборника задач к подготовке экзамена по Специалисту.
Реализация. Создаем форму произвольного типа для документа Продажа товаров. Можно конечно создать общую форму, но в данной ситуации выбираем то, что поближе. На форме создаем реквизиты:
Склад
- тип СправочникиСсылка.Склады
Товары
- Динамический список, в свойствах ставим галочку произвольный запрос.
Выбор
- таблица значений (колонки Товар, Серия - тип ссылки на соответствующие справочники, срок годности, количество - дата, число).
Настраиваем запрос для реквизита Товары. Здесь по идее все просто с помощью конструктора берем два справочника и виртуальную таблицу Остатков регистра Остатки товара. Если нужно видеть весь товар, то используем левое соединение Товаров с остальными источниками, если только с остатками, то полное соединение с регистром:
Код 1C v 8.2 УП ВЫБРАТЬ
Серии.СрокГодности,
ЕСТЬNULL(ТоварыНаСкладеОстатки.КоличествоОстаток, 0) КАК Количество
Справочник.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Серии КАК Серии
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладе.Остатки(, Склад = &Склад) КАК ТоварыНаСкладеОстатки
ПО (ТоварыНаСкладеОстатки.Товар = Товары.Ссылка)
УПОРЯДОЧИТЬ ПО
СрокГодности
Для виртуальной таблицы в параметрах указываем отбор по складу. После этого я 3 часа топтался на одном месте. Когда я запустил данную форму в процессе отладки, то я увидел только одну строчку с товаром, хотя их должно было быть больше. Честно говоря и растерялся, так как по идее все должно быть просто но... И вот около 3 часов я пытался понять почему не выводятся все записи. Конечно, может это и не является серьезной проблемой и большинство практикующих специалистов 1С про нее знают, но только после долгого серфинга по Интернету я нашел, что надо очистить свойство основная таблица в окне настройки запроса динамического списка, и тогда появились все записи. При этом становится неактивным свойство динамическое считывание данных. В книге «Разработка управляемого интерфейса» мне не удалось найти назначение параметра основная таблица и описание это ситуации. Сразу хочу отметить, что в типовой конфигурации управление небольшой фирмой используется не динамический список, а дерево значений.
И так, возвращаемся в нормальное русло решение задачи.
Для того чтобы открыть созданную форму подбора, в управляемой форме документы Продажа товара создаем команду подбор, размещаем на форме о генерируем обработчик, в котором нам необходимо открыть форму. Так как форма должна обеспечивать множественный выбор и отбор по складу, то создаем структуру параметров формы. И открываем форму соответствующей командой.
Код 1C v 8.2 УП
&НаКлиенте
Процедура Подбор(Команда)
ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, Склад", Ложь, Истина, Объект.Склад);
ОткрытьФорму("Документ.ПродажаТоваров.Форма.ФормаПодбора", ПараметрыПодбора, Элементы.Товары);
КонецПроцедуры
Соответственно в форме подбора при создании заполняем параметр запроса склад из параметров формы:
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Товары.Параметры.УстановитьЗначениеПараметра("Склад",Параметры.Склад);
Склад = Параметры.Склад;
КонецПроцедуры
Теперь необходимо реализовать функционал формы подбора. При выборе соответствующей строки она должна переносится в таблицу значений, так же должен работать механизм перетаскивания. Для решения первой задачи необходимо создать обработчик события Выбор нашего динамического списка.
Код 1C v 8.2 УП &НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Для каждого НомерСтроки Из ВыбраннаяСтрока Цикл
ТекСтрока = Элемент.ДанныеСтроки(НомерСтроки);
Строка.Количество = 1;
Пока Строка.Количество > ТекСтрока.Количество Цикл
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В нем имеется параметр ВыбраннаяСтрока представляющий собой массив, элементами которого являются номера строк списка Товары. В цикле проверяем не дублируются ли выбранные строки и запрашивается количество.
Для реализации перетаскивания необходимо проверить настройку следующих параметров: Для таблицы Товары - РазрешитьНачалоПеретаскивания, для Выбранные товары - РазрешитьПеретаскивание.
Так же необходимо создать обработчик события Перетаскивание для элемента формы ВыбранныеТовары.
Код 1C v 8.2 УП &НаКлиенте
Процедура ВыбранныеТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
Для каждого НомерСтроки Из ПараметрыПеретаскивания.Значение Цикл
ТекСтрока = Элементы.Товары.ДанныеСтроки(НомерСтроки);
Поиск = Новый Структура("Товар, Серия",ТекСтрока.Товар,ТекСтрока.Серия);
МассивСтрок = ВыбранныеТовары.НайтиСтроки(Поиск);
Если МассивСтрок.Количество() = 0 Тогда
Строка = ВыбранныеТовары.Добавить();
Строка.Товар = ТекСтрока.Товар;
Строка.Серия = ТекСтрока.Серия;
Строка.СрокГодности = ТекСтрока.СрокГодности;
Строка.Количество = 1;
ВвестиЧисло(Строка.Количество, "Введите количество");
Пока Строка.Количество > ТекСтрока.Количество Цикл
ВвестиЧисло(Строка.Количество, "Введите верное количество!");
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Так как код обработчика похож на предыдущий, то для оптимизации можно создать процедуры и вызывать ее из обоих обработчиков.
На рисунке приведен внешний вид формы подбора:
Для завершения подбора создана команда формы, с обработчиком, выполняющим оповещение о выборе:
Код 1C v 8.2 УП &НаКлиенте
Процедура Перенести(Команда)
ОповеститьОВыборе(ВыбранныеТовары);
Закрыть();
КонецПроцедуры
Соответственно, в форме документа реализован обработчик события ОбработкаВыбора:
Код 1C v 8.2 УП &НаКлиенте
Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ВыбранноеЗначение.Количество() > 0 И Объект.Товары.Количество() > 0 Тогда
Режим = РежимДиалогаВопрос.ДаНет;
Текст = "Очистить табличную часть?";
Ответ = Вопрос(Текст, Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
Объект.Товары.Очистить();
КонецЕсли;
КонецЕсли;
Для каждого Подбор Из ВыбранноеЗначение Цикл
Строка = Объект.Товары.Добавить();
Строка.Товар = Подбор.Товар;
Строка.Серия = Подбор.Серия;
Строка.Количество = Подбор.Количество;
КонецЦикла;
КонецПроцедуры
Кроме того, есть еще несколько тюнинговых настороек, про которые писать особого смысла нет, но для формы подбора желательно не забыть настроить свойство РежимОткрытияОкна - Блокировать окно владельца, чтобы пользователь не смого ее случайно вернутся в документ не закрыв окно подбора, при этом доступ к основному окну будет.
В целом хочется еще раз подчеркнуть, что целью данной статьи не является проповедование истины, а просто поделится полученной информацией. Буду благодарен за конструктивные советы и рекомендации, так как тема управляемых форм достаточно новая, но похоже надолго, и ряд вопросов (особенности работы с произвольными запросами) требует дополнительной информации.