Открыть прайс-лист по выделенным товарам. УТ 11.4
Клиент хочет выделить в списке номенклатуры позиции и открывать их по нажатию кнопки в прайсе.
В карточке номенклатуры можно нажать «Прайс-лист компании»:
И откроется прайс с отбором по позиции:
Подсмотрю код там, чтобы не изобретать самому.
Замером производительности находим нужный участок:
Открывается форма: Обработка.ПрайсЛист.Форма.Форма.
В параметрах формы, увы, только одна номенклатура:
Нашел, где формируется отбор по номенклатуре. Но, к сожалению туда на подлезть расширением:
Поэтому поступим хитро. Вместо номенклатуры будем передавать список номенклатуры. А функцию ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки расширим так, что если туда передан список, в первом элементе которого список, то заменять список на вложенный список:
&Вместо("ДобавитьЭлементКомпоновки") Функция дор_ДобавитьЭлементКомпоновки(ОбластьДобавления, Знач ИмяПоля, Знач ВидСравнения, Знач ПравоеЗначение, Знач Представление, Знач Использование, Знач РежимОтображения, Знач ИдентификаторПользовательскойНастройки) //2023-03-07 заменяем список из одного элемента-списка на список для номенклатуры Если ИмяПоля = "Номенклатура" И ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке И ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") И ПравоеЗначение.Количество() = 1 Тогда Зн = ПравоеЗначение[0].Значение; Если ТипЗнч(Зн) = Тип("СписокЗначений") Тогда ПравоеЗначение = Зн; КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(ОбластьДобавления, ИмяПоля, ВидСравнения, ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки); Возврат Результат; КонецФункции
Правда, чтобы код заработал, необходимо в расширении расширить тип параметра формы «Номенклатура», добавив в него «Список значений»:
На всякий случай пишу об этом внизу формы обработки Прайс-лист чтобы не забыть при обновлениях:
Вот теперь работает как задумано. Открывается прайс-лист с выбранными позициями.
Как только не приходится извращаться, чтобы не использовать синтаксис &Вместо.
Среда: УТ 11.4.13.46. Объем: 0.5 час.
Свежие комментарии