Имя: Пароль:
1C
1С v8
ЗУП 3.1.18. поломались внешние печатные формы.
0 Target1025
 
05.06.21
09:09
Подключены как внешние обработки, затык в модуле УправлениеПечатьюМультиязычность, фукнция "Функция ЯзыкиМакета(ПутьКМакету) Экспорт", на этом куске кода:

    Если Не ЭтоОбщийМакет Тогда
        ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
        Если ОбъектМетаданных = Неопределено Тогда // тут у нас неопределено.
            ВызватьИсключение ТекстОшибки; // Вылетаем!
        КонецЕсли;
        КоллекцияМакетов = ОбъектМетаданных.Макеты;
    КонецЕсли;

ИмяОбъекта "подъезжает" как "ВнешняяОбработка.ПриемНаРаботу_Т1".

Голову сломал, пытаясь понять, что тут можно сделать. Кто-то столкнулся с подобным при переходе?
1 Вафель
 
05.06.21
09:12
Сделай патч
2 SleepyHead
 
гуру
05.06.21
09:17
(0) Не сталкивался, все работает. Проверил несколько своих печатных форм.
3 SleepyHead
 
гуру
05.06.21
09:19
(0) Этот модуль даже не отрабатывает. Возможно, в сведениях о внешней обработке у тебя что-такое, что влияет. Так глубоко я не копал еще.
4 Бишбармак
 
05.06.21
09:39
(0) Попробуйте вместо
ВызватьИсключение ТекстОшибки
написать
ВызватьИсключение "А может что-то не то в ТекстОшибки?"
5 Target1025
 
05.06.21
09:41
(4) судя по всему, он просто не находит внешнюю обработку. ОбъектМетаданных = Неопределено, а значит все дальнейшние операции бессмысленны: макеты получить невозможно у Неопределено. Что-то не так видимо происходит в регистрации внешних обработок БД  в новой БСП, но что - не известно.
6 Target1025
 
05.06.21
09:43
(2) Можешь пример привести регистрации обработки печатной формы?
7 Target1025
 
05.06.21
09:52
(0) Проблема решена. В Процедуре ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, СинонимМакета, ТабличныйДокумент,
    Картинка = Неопределено, ПолныйПутьКМакету = "", ИмяФайлаПечатнойФормы = Неопределено) заполнялся "ПолныйПутьКМакету" и в итоге 1ска пыталась этот макет найти среди метаданных. Очистка аргумента процедуры решила проблему.
8 Фрэнки
 
05.06.21
10:36
т.е. произошла очередная и ожидаемая подмена БСП. Поэтому внешнее заменили шифр версии 3.1.17.х на 3.1.18.х - это отметка о подмене БСП.
9 serg999
 
05.06.21
10:52
Вчера писал .. БСП 3.1.4.252 - Ошибка печати "Внешние обработки" новая версия БСП 3.1.4.252

Если ВывестиТабличныйДокументВКоллекцию параметр ПолныйПутьКМеакету пустой , то в ОбщийМодуль.УправлениеПечатьюМультиязычность.Модуль.ЯзыкиМакета(ПутьКМакету = "ПФ_MXL_Макет"), и ругается на количество "." , далее в исключение

=====
Функция ЯзыкиМакета(ПутьКМакету) Экспорт
    
    ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru = 'Макет ""%1"" не существует. Операция прервана.'"), ПутьКМакету);
    ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина);
    Если ЧастиПути.Количество() <> 2 И ЧастиПути.Количество() <> 3 Тогда
        ВызватьИсключение ТекстОшибки;
    КонецЕсли;
=====
10 SleepyHead
 
гуру
05.06.21
10:55
(7) Вот, а я этот параметр никогда не заполнял.
11 Target1025
 
05.06.21
12:31
(9) И как у вас выглядит параметр "ПолныйПутьКМакету"?
12 serg999
 
05.06.21
18:11
(11) "Справочник.Сотрудники"
13 Вафель
 
05.06.21
20:41
а ты как макет получаешь в методе печать?
может нужно без вызовов бспшных функций
14 serg999
 
06.06.21
00:05
(13)
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_Макет") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
             "ПФ_MXL_Макет", "ПФ_MXL_Макет",
            ТабличныйДокументСправкаОДоходахПроизвольнаяФорма(ПолучитьМакет("ПФ_MXL_Макет"), МассивОбъектов, ОбъектыПечати), ,
            "Справочник.Сотрудники","ПФ_MXL_Макет");
    КонецЕсли;
КонецПроцедуры
15 serg999
 
06.06.21
00:10
На ИТС для БСП 3.4.1 формируется по другому

https://its.1c.ru/db/bsp314doc#content:4:1:issogl4_пример_внешняя_печатная_форма