Не заполняются упаковки в установке цен УТ 11.5

В УТ 11.5 была сделана доработка, чтобы можно было на основании приходного ордера к поступлению делать установку цен. Однако в создающемся документе установка цен не заполнялись упаковки.

При открытии документа упаковки в табличной части Товары заполнены, однако при выборе видов цен упаковки уже базовые.

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

Поэтому вначале я сохраняю текущие упаковки товаров, расширяю модуль УстановкаЦенСервер:

&Перед("ПоместитьЦеныВТабличнуюЧасть")
Процедура доп_ПоместитьЦеныВТабличнуюЧасть(Параметры)
	
	//Сохраняем исходные переданные в ТЧ упаковки прежде, чем ТЧ очистится
	
	СооУпаковки = Новый Соответствие();
	Параметры.Вставить("_ИсходныеУпаковки", СооУпаковки);
	
	Если Параметры.Свойство("Форма") Тогда
		Попытка
			ТЧ = Параметры.Форма.Объект.Товары;
			Для Каждого Строка ИЗ ТЧ Цикл
				СооУпаковки.Вставить(Строка.Номенклатура, Строка.Упаковка);	
			КонецЦикла;
		Исключение
		КонецПопытки;
	КонецЕсли;
	
КонецПроцедуры

Ну и далее заполняю эти упаковки в этом же модуле:

&ИзменениеИКонтроль("ПоместитьСтрокуЦенВТабличнуюЧасть")
Процедура доп_ПоместитьСтрокуЦенВТабличнуюЧасть(Параметры, СтрокаЦен)
...
			Если Параметры.Форма.ИспользоватьУпаковкиНоменклатуры Тогда
				Если ЕстьКолонка(СтрокаЦен, "Упаковка" + ИмяКолонки) Тогда
					НоваяСтрока.Упаковка = СтрокаЦен["Упаковка" + ИмяКолонки];
				ИначеЕсли Параметры.Форма.ИспользуетсяЦенообразование25 
					И СтрокаЦен.ЕдиницаИзмерения <> СтрокаЦен.УпаковкаЦО Тогда
					НоваяСтрока.Упаковка = СтрокаЦен.УпаковкаЦО;
#Вставка	
				Иначе 
					//Осипов - чтобы подставились упаковки, переданные при загрузке товаров
					//Причем она вызывается только при первом заполнении, когда еще нет колонок упаковок у цен
					Если Параметры.Свойство("_ИсходныеУпаковки") Тогда
						НоваяУпаковка = Параметры._ИсходныеУпаковки[СтрокаЦен.Номенклатура];
						Если ЗначениеЗаполнено(НоваяУпаковка) Тогда
							НоваяСтрока.Упаковка = НоваяУпаковка;
						КонецЕсли;
					КонецЕсли;
#КонецВставки
				КонецЕсли;

...
		КонецЕсли;

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

Проблема документа установка цен в том, что он сильно завязан на интерфейс. Поэтому и выстреливают такие ошибки.

Среда: 11.5.7.394 Объем: 1.5 час.

fixin

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

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

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

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