Печать за поставщика не печатала адрес
У меня есть обработка «Печать документов за поставщика«, использующая транзакционную печать.
Пользователь пожаловался, что в УПД, которая печатается из поступления, не печатается адрес.
Контактная информация извлекается в процедуре СоздатьВТКонтактнаяИнформация модуля УправлениеКонтактнойИнформацией.
Запрос выглядит так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
КонтактнаяИнформация.Ссылка КАК Объект,
КонтактнаяИнформация.Вид КАК Вид,
МИНИМУМ(КонтактнаяИнформация.НомерСтроки) КАК НомерСтроки,
МАКСИМУМ(КонтактнаяИнформация.ДействуетС) КАК ДействуетС
ПОМЕСТИТЬ СрезКонтактнойИнформацииОрганизации
ИЗ
Справочник.Организации.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
КонтактнаяИнформация.Ссылка В (&МассивОбъектовОрганизации)
И КонтактнаяИнформация.ДействуетС <= &ДействуетС
И КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка)
И КонтактнаяИнформация.Тип <> ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
КонтактнаяИнформация.Вид, КонтактнаяИнформация.Ссылка
;ВЫБРАТЬ РАЗРЕШЕННЫЕ
КонтактнаяИнформация.Ссылка КАК Объект,
КонтактнаяИнформация.Вид КАК Вид,
КонтактнаяИнформация.Тип КАК Тип,
КонтактнаяИнформация.НомерСтроки КАК НомерСтроки,
КонтактнаяИнформация.ДействуетС КАК ДействуетС,
КонтактнаяИнформация.Представление КАК Представление,
КонтактнаяИнформация.Значение,
КонтактнаяИнформация.ЗначенияПолей,
0 КАК ИдентификаторСтрокиТабличнойЧасти
ПОМЕСТИТЬ ВТКонтактнаяИнформация
ИЗ
СрезКонтактнойИнформацииОрганизации КАК СрезКонтактнойИнформации
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО СрезКонтактнойИнформации.Вид = КонтактнаяИнформация.Вид
И СрезКонтактнойИнформации.ДействуетС = КонтактнаяИнформация.ДействуетС
И СрезКонтактнойИнформации.Объект = КонтактнаяИнформация.Ссылка ГДЕ КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)
Первая ВТ формируется, вторая нет. Казалось бы, в чем ошибка. Я долго размышлял, пока не решил проверить, что хранится в поле Вид.
Оказывается, там хранится ТелефонКонтрагента, а ищется ТелефонОрганизации, например, хотя внешнее оба выглядят как Телефон.
В итоге доработал код создания контрагента и организации, чтобы виды контактной информации переносились корректно:
Процедура ЗаменитьВидыКонтактнойИнформации(Объект, Источник, Результат) ЭКспорт //Подменяем вид КИ Для Каждого Строка ИЗ Объект.КонтактнаяИнформация Цикл ВидКИ = Строка.Вид; ИмяПредопределенныхДанных = ВидКИ.ИмяПредопределенныхДанных; Если Найти(ИмяПредопределенныхДанных, Источник) <> 0 Тогда НовоеИмяПредопределенныхДанных = СтрЗаменить(ИмяПредопределенныхДанных, Источник, Результат); Попытка Строка.Вид = Справочники.ВидыКонтактнойИнформации[НовоеИмяПредопределенныхДанных]; Исключение КонецПопытки; КонецЕсли; КонецЦикла; КонецПроцедуры НоваяОрганизацияОбъект = Справочники.Организации.СоздатьЭлемент(); НоваяОрганизацияОбъект.ОбменДанными.Загрузка = истина; СкопироватьРеквизитыОбъекта(НоваяОрганизацияОбъект, Контрагент); ЗаменитьВидыКонтактнойИнформации(НоваяОрганизацияОбъект, "Контрагента", "Организации"); НоваяОрганизацияОбъект.Записать(); НоваяОрганизация = НоваяОрганизацияОбъект.Ссылка; НовыйКонтрагентОбъект = Справочники.Контрагенты.СоздатьЭлемент(); НовыйКонтрагентОбъект.ОбменДанными.Загрузка = истина; СкопироватьРеквизитыОбъекта(НовыйКонтрагентОбъект, Организация); ЗаменитьВидыКонтактнойИнформации(НовыйКонтрагентОбъект, "Организации", "Контрагента"); НовыйКонтрагентОбъект.Записать(); НовыйКонтрагент = НовыйКонтрагентОбъект.Ссылка;
Среда: УНФ 3.0.5.164. Объем: 0.5 час
1 комментарий
[…] УНФ 1.6.26.172, 3.0.1.248, 3.0.4.88, 3.0.5.164Доработана печать адреса в […]