Печать за поставщика не печатала адрес

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

Пользователь пожаловался, что в УПД, которая печатается из поступления, не печатается адрес.

Контактная информация извлекается в процедуре СоздатьВТКонтактнаяИнформация модуля УправлениеКонтактнойИнформацией.

Запрос выглядит так:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
	КонтактнаяИнформация.Ссылка КАК Объект,
	КонтактнаяИнформация.Вид КАК Вид,
	МИНИМУМ(КонтактнаяИнформация.НомерСтроки) КАК НомерСтроки,
	МАКСИМУМ(КонтактнаяИнформация.ДействуетС) КАК ДействуетС
ПОМЕСТИТЬ СрезКонтактнойИнформацииОрганизации
ИЗ
	Справочник.Организации.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
	КонтактнаяИнформация.Ссылка В (&МассивОбъектовОрганизации)
	И КонтактнаяИнформация.ДействуетС <= &ДействуетС
	И КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка)
	И КонтактнаяИнформация.Тип <> ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
	КонтактнаяИнформация.Вид, КонтактнаяИнформация.Ссылка
;ВЫБРАТЬ РАЗРЕШЕННЫЕ
	КонтактнаяИнформация.Ссылка КАК Объект,
	КонтактнаяИнформация.Вид КАК Вид,
	КонтактнаяИнформация.Тип КАК Тип,
	КонтактнаяИнформация.НомерСтроки КАК НомерСтроки,
	КонтактнаяИнформация.ДействуетС КАК ДействуетС,
	КонтактнаяИнформация.Представление КАК Представление,
	КонтактнаяИнформация.Значение,
	КонтактнаяИнформация.ЗначенияПолей,
	0 КАК ИдентификаторСтрокиТабличнойЧасти
ПОМЕСТИТЬ ВТКонтактнаяИнформация 
ИЗ
	СрезКонтактнойИнформацииОрганизации КАК СрезКонтактнойИнформации
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК КонтактнаяИнформация
		ПО СрезКонтактнойИнформации.Вид = КонтактнаяИнформация.Вид
			И СрезКонтактнойИнформации.ДействуетС = КонтактнаяИнформация.ДействуетС
			И СрезКонтактнойИнформации.Объект = КонтактнаяИнформация.Ссылка  ГДЕ  КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)

Первая ВТ формируется, вторая нет. Казалось бы, в чем ошибка. Я долго размышлял, пока не решил проверить, что хранится в поле Вид.

Оказывается, там хранится ТелефонКонтрагента, а ищется ТелефонОрганизации, например, хотя внешнее оба выглядят как Телефон.

В итоге доработал код создания контрагента и организации, чтобы виды контактной информации переносились корректно:

Процедура ЗаменитьВидыКонтактнойИнформации(Объект, Источник, Результат) ЭКспорт
	//Подменяем вид КИ
	Для Каждого Строка ИЗ Объект.КонтактнаяИнформация Цикл
		ВидКИ = Строка.Вид;
		ИмяПредопределенныхДанных = ВидКИ.ИмяПредопределенныхДанных;
		Если Найти(ИмяПредопределенныхДанных, Источник) <> 0 Тогда
			НовоеИмяПредопределенныхДанных = СтрЗаменить(ИмяПредопределенныхДанных, Источник, Результат);
			Попытка
				Строка.Вид = Справочники.ВидыКонтактнойИнформации[НовоеИмяПредопределенныхДанных];
			Исключение
			КонецПопытки;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

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

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

Среда: УНФ 3.0.5.164. Объем: 0.5 час

fixin

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

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

1 комментарий

  1. 01.12.2023

    […] УНФ 1.6.26.172, 3.0.1.248, 3.0.4.88, 3.0.5.164Доработана печать адреса в […]

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

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