Замена заполнения по одному документу на множественное. БП3

Эта задача интересна еще и тем, что оригинально используется метод ПродожитьВызов.

В документе дополнительных расходов товарную часть можно заполнить кнопкой «Добавить из поступления»:

Пользователям захотелось добавлять сразу из нескольких выбраннных поступлений.

Я реализовал им это, выводя попутно сообщения, из каких документов произошло заполнение:

Код несложный.

В форме документа ПоступлениеДопРасходов включаем множественный выбор:


&НаКлиенте
&ИзменениеИКонтроль("ЗаполнитьТабличнуюЧастьПоПоступлению")
Процедура дор_ЗаполнитьТабличнуюЧастьПоПоступлению(СпособЗаполнения)

	ПараметрыОтбора = Новый Структура("Организация", Объект.Организация);
	ПараметрыФормы  = Новый Структура("Отбор", ПараметрыОтбора);

	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("СпособЗаполнения", СпособЗаполнения);

#Вставка
	ПараметрыФормы.Вставить("МножественныйВыбор", Истина);
#КонецВставки
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ЗаполнитьТабличнуюЧастьПоПоступлениюЗавершение", ЭтотОбъект, ДополнительныеПараметры);

	ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.ФормаВыбора", ПараметрыФормы, ЭтотОбъект,,,, ОповещениеОЗакрытии);

КонецПроцедуры

Я кстати, сначала ошибся и множественный выбор прописал в дополнительные параметры. 1С давала выделять много строк, но выбирала все равно одну.

В обработке поступления 1С ожидает ссылку, поэтому если на вход поступает массив, вызываем функцию для каждого элемента массива в модуле документа ПоступлениеДопРасходов:

&Вместо("ЗаполнитьПоПоступлению")
Процедура дор_ЗаполнитьПоПоступлению(ДанныеЗаполнения)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("Массив") Тогда
		Для Каждого ТекДокумент из ДанныеЗаполнения Цикл
			Сообщить("Заполнение по документу: " + ТекДокумент);
			ПродолжитьВызов(ТекДокумент);
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

Мне понравилось, что ПродолжитьВызов можно вызывать многократно в цикле. Раньше с этим не сталкивался.

Среда: БП Корп 3.0.111.25. Объем: 1 час.

fixin

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

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

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

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