Открыть прайс-лист по выделенным товарам. УТ 11.4

Клиент хочет выделить в списке номенклатуры позиции и открывать их по нажатию кнопки в прайсе.

В карточке номенклатуры можно нажать «Прайс-лист компании»:

И откроется прайс с отбором по позиции:

Подсмотрю код там, чтобы не изобретать самому.

Замером производительности находим нужный участок:

Открывается форма: Обработка.ПрайсЛист.Форма.Форма.

В параметрах формы, увы, только одна номенклатура:

Нашел, где формируется отбор по номенклатуре. Но, к сожалению туда на подлезть расширением:

Поэтому поступим хитро. Вместо номенклатуры будем передавать список номенклатуры. А функцию ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки расширим так, что если туда передан список, в первом элементе которого список, то заменять список на вложенный список:

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

	Результат = ПродолжитьВызов(ОбластьДобавления, ИмяПоля, ВидСравнения, ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки);
	Возврат Результат;
КонецФункции

Правда, чтобы код заработал, необходимо в расширении расширить тип параметра формы «Номенклатура», добавив в него «Список значений»:

На всякий случай пишу об этом внизу формы обработки Прайс-лист чтобы не забыть при обновлениях:

Вот теперь работает как задумано. Открывается прайс-лист с выбранными позициями.

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

Среда: УТ 11.4.13.46. Объем: 0.5 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *