Открыть прайс-лист по выделенным товарам. УТ 11.4
Клиент хочет выделить в списке номенклатуры позиции и открывать их по нажатию кнопки в прайсе.
В карточке номенклатуры можно нажать «Прайс-лист компании»:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-38.png)
И откроется прайс с отбором по позиции:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-39-1024x197.png)
Подсмотрю код там, чтобы не изобретать самому.
Замером производительности находим нужный участок:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-40.png)
Открывается форма: Обработка.ПрайсЛист.Форма.Форма.
В параметрах формы, увы, только одна номенклатура:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-41.png)
Нашел, где формируется отбор по номенклатуре. Но, к сожалению туда на подлезть расширением:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-42.png)
Поэтому поступим хитро. Вместо номенклатуры будем передавать список номенклатуры. А функцию ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки расширим так, что если туда передан список, в первом элементе которого список, то заменять список на вложенный список:
&Вместо("ДобавитьЭлементКомпоновки") Функция дор_ДобавитьЭлементКомпоновки(ОбластьДобавления, Знач ИмяПоля, Знач ВидСравнения, Знач ПравоеЗначение, Знач Представление, Знач Использование, Знач РежимОтображения, Знач ИдентификаторПользовательскойНастройки) //2023-03-07 заменяем список из одного элемента-списка на список для номенклатуры Если ИмяПоля = "Номенклатура" И ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке И ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") И ПравоеЗначение.Количество() = 1 Тогда Зн = ПравоеЗначение[0].Значение; Если ТипЗнч(Зн) = Тип("СписокЗначений") Тогда ПравоеЗначение = Зн; КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(ОбластьДобавления, ИмяПоля, ВидСравнения, ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки); Возврат Результат; КонецФункции
Правда, чтобы код заработал, необходимо в расширении расширить тип параметра формы «Номенклатура», добавив в него «Список значений»:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-44.png)
На всякий случай пишу об этом внизу формы обработки Прайс-лист чтобы не забыть при обновлениях:
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-45.png)
Вот теперь работает как задумано. Открывается прайс-лист с выбранными позициями.
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-46-1024x299.png)
Как только не приходится извращаться, чтобы не использовать синтаксис &Вместо.
Среда: УТ 11.4.13.46. Объем: 0.5 час.
![](https://geniy1s.ru/wp-content/uploads/2023/03/image-47-1024x685.png)
Свежие комментарии