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