1с внешняя печатная форма ошибка печатная форма недоступна

Обновлено: 07.07.2024

Здравствуйте, подскажите пожалуйста, форма перестала выводится на печать, хотя её код никто не трогал. Другая с таким же кодом выводится а эта стала недоступна Что ей не так??

Причём ставишь остановку по ошибке, не останавливается, в сразу пишет печатная форма недоступна

ну и еще бы узнать платформу, конфу, да и что печатается тоже.

Это встроенный макет. 1С:Предприятие 8.3 (8.3.10.2168) конфа МИС

Печатается документ Направление, он выводился на печать, к нему добавили ещё одну печатную форму макет, его самого не трогали, но он перестал выводится, код сравнивал, вроде один и тот же с другим документом, но тот выводится, а этот стал недоступен

>к нему добавили ещё одну печатную форму макет добавили в самом конфигураторе?

это название нового или старого макета? Если нового, то ты название в коде писал или копировал из названия макета?

Выводятся на печать двумя действиями: Одна форма ПФ другая Памятка, маккеты разные, код похожий, Памятка делалась по подобию формы ПФ. И какое то время были обе доступны, но что случилось не понял. это не новый макет, от просто макет, я пробовал все названия ПФ во всех местах привести в единобразие копировал из названия макета и менял здесь, не помогло, надеялся что названия разные и поэтому, но нет

Мож по этому пути такого макета нету? - Документ.Направление.ПФ_MXL_Форма057у_04

А покажи процедуру "печать" из модуля менеджера документа.

РегистрСведений.ПользовательскиеМакетыПечати тут оно есть?

аааа, стоп в РегистрСведений.ПользовательскиеМакетыПечати ,сама форма Пф?

в регистре стандартные описания, причём типовые, да и памятка работает же

нет его там, ссори я погорячился, я имел ввиду что регистр такой есть

А что показывает отладчик? А какой момент ошибка вываливается?

В момент окончания процесса, в пользовательском режиме, просто пишет,что печатная форма недоступна

пройдись отладчиком еще раз. У тебя точно не пустой табличный документ получается?

Создала внешнюю печатную форму Бухгалтерия предприятия, редакция 3.0 (3.0.37.32)
Добавила в доп отчеты и обработки, при выводе из документа, пишет "Печатная форма недоступна". в чем может быть проблема?

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Наименование", "Т-53");
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Информация", "Любая дополнительная информация");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Версия", "1.0");

МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.РасходныйКассовыйОрдер");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

тзКоманды = Новый ТаблицаЗначений;
тзКоманды.Колонки.Добавить("Идентификатор");
тзКоманды.Колонки.Добавить("Представление");
тзКоманды.Колонки.Добавить("Модификатор");
тзКоманды.Колонки.Добавить("ПоказыватьОповещение");
тзКоманды.Колонки.Добавить("Использование");

строкаКоманды = тзКоманды.Добавить();
строкаКоманды.Идентификатор = "Т53";
строкаКоманды.Представление = "Т-53 внешняя";
строкаКоманды.Модификатор = "ПечатьMXL";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовСерверногоМетода";

Возврат ПараметрыРегистрации;
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Т53") Тогда

ТабличныйДокумент = ПечатьТ53(МассивОбъектов, ОбъектыПечати);

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Т53",
НСтр("ru = 'Расходный кассовый ордер'"),
ТабличныйДокумент,
,
"РасходныйКассовыйОрдер"
);
КонецЕсли;

Функция ПечатьТ53(МассивОбъектов, ОбъектыПечати)


ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВедомостьНаВыплатуЗарплатыВКассу_Т53";

Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_Т53");
НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм();

// получаем данные для печати
ВыборкаШапок = ВыборкаДляПечатиШапки(МассивОбъектов);
ВыборкаСтрок = ВыборкаДляПечатиТаблицы(МассивОбъектов);

ПервыйДокумент = Истина;
Пока ВыборкаШапок.Следующий() Цикл

// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

// подсчитываем количество страниц документа - для корректного разбиения на страницы
ВсегоСтрокДокумента = ВыборкаСтрок.Количество();

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

Если НастройкиПечатныхФорм.ВыводитьПолнуюИерархиюПодразделений И ЗначениеЗаполнено(ОбластьМакетаШапкаДокумента.Параметры.Подразделение) Тогда
ОбластьМакетаШапкаДокумента.Параметры.Подразделение = ОбластьМакетаШапкаДокумента.Параметры.Подразделение.ПолноеНаименование();
КонецЕсли;

Если ВыборкаШапок.СуммаПоДокументу <> 0 Тогда
ОбластьМакетаШапкаДокумента.Параметры.СуммаДок = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ВыборкаШапок.СуммаПоДокументу, ВалютаУчета);
ОбластьМакетаШапкаДокумента.Параметры.СуммаДокРублей = Цел(ВыборкаШапок.СуммаПоДокументу);
ОбластьМакетаШапкаДокумента.Параметры.СуммаДокКопеек = (ВыборкаШапок.СуммаПоДокументу - Цел(ВыборкаШапок.СуммаПоДокументу)) * 100
КонецЕсли;

ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаШапок); // Подвал документа.
// Строка не локализуется т.к. является частью регламентированной формы, применяемой в РФ
ОбластьМакетаПодвал.Параметры.РКО = "Расходный кассовый ордер № _______ от ""___"" ___________ 20 ___ г.";

// выводим данные по строкам документа.
НомерСтроки = 0;
ВыборкаСтрок.Сбросить();
Пока ВыборкаСтрок.НайтиСледующий(ВыборкаШапок.Ссылка, "Ведомость") Цикл

НомерСтроки = НомерСтроки + 1;

ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаСтрок);
ОбластьМакетаСтрока.Параметры.НомерСтроки = НомерСтроки;
ОбластьМакетаСтрока.Параметры.ТабельныйНомер =
ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(ВыборкаСтрок.ТабельныйНомер, Истина);

Если НастройкиПечатныхФорм.ВыводитьПолныеФИОВСписочныхПечатныхФормах Тогда

ОбластьМакетаСтрока.Параметры.Физлицо = СокрЛП(ВыборкаСтрок.Фамилия)
+ ?(ПустаяСтрока(ВыборкаСтрок.Имя), "", " " + ВыборкаСтрок.Имя)
+ ?(ПустаяСтрока(ВыборкаСтрок.Отчество), "", " " + ВыборкаСтрок.Отчество);

Иначе
ОбластьМакетаСтрока.Параметры.Физлицо = ФизическиеЛицаКлиентСервер.ФамилияИнициалыФизЛица(Неопределено,
ВыборкаСтрок.Фамилия, ВыборкаСтрок.Имя, ВыборкаСтрок.Отчество);
КонецЕсли;

// разбиение на страницы
ВыведеноСтрок = ВыведеноСтрок + 1;

// Проверим, уместится ли строка на странице или надо открывать новую страницу
ВывестиПодвалЛиста = Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, ВыводимыеОбласти);
Если Не ВывестиПодвалЛиста и ВыведеноСтрок = ВсегоСтрокДокумента Тогда
ВыводимыеОбласти.Добавить(ОбластьМакетаПодвал);
ВывестиПодвалЛиста = Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, ВыводимыеОбласти);
КонецЕсли;
Если ВывестиПодвалЛиста Тогда

КонецЦикла; // по строкам документа

// В табличном документе необходимо задать имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаШапок.Ссылка);

КонецЦикла; // по документам

Функция ВыборкаДляПечатиШапки(Ведомости) Экспорт

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

// Установим параметры запроса
Запрос.УстановитьПараметр("Ведомости", Ведомости);

Запрос.Текст =
"ВЫБРАТЬ
| ВедомостьВКассу.Ссылка,
| ВедомостьВКассу.Номер,
| ВедомостьВКассу.Дата,
| ВедомостьВКассу.ПериодРегистрации КАК ПериодРегистрации,
| ВедомостьВКассу.Организация КАК Организация,
| ВЫРАЗИТЬ(ВедомостьВКассу.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
| ВедомостьВКассу.Организация.КодПоОКПО КАК КодПоОКПО,
| ВедомостьВКассу.СуммаДокумента КАК СуммаПоДокументу
|ПОМЕСТИТЬ ВТДанныеДокументов
|ИЗ
| Документ.ВедомостьНаВыплатуЗарплаты КАК ВедомостьВКассу
|ГДЕ
| ВедомостьВКассу.Ссылка В(&Ведомости)";

ИменаПолейОтветственныхЛиц = Новый Массив;
ИменаПолейОтветственныхЛиц.Добавить("Руководитель");
ИменаПолейОтветственныхЛиц.Добавить("ГлавныйБухгалтер");
ИменаПолейОтветственныхЛиц.Добавить("Кассир");
ИменаПолейОтветственныхЛиц.Добавить("Бухгалтер");

//ЗарплатаКадры.СоздатьВТФИООтветственныхЛиц(Запрос.МенеджерВременныхТаблиц, Ложь, ИменаПолейОтветственныхЛиц, "ВТДанныеДокументов");

Запрос.Текст =
"ВЫБРАТЬ
| ВТДанныеДокументов.Ссылка,
| ВТДанныеДокументов.Номер КАК НомерДок,
| ВТДанныеДокументов.Дата КАК ДатаДок,
| ВТДанныеДокументов.ПериодРегистрации,
| ВТДанныеДокументов.Организация,
| ВТДанныеДокументов.НазваниеОрганизации,
| ВТДанныеДокументов.КодПоОКПО,
//| ВТДанныеДокументов.Подразделение,
| ВТДанныеДокументов.СуммаПоДокументу,
| """" КАК Руководитель,
| """" как РуководительДолжность,
| """" КАК ГлавныйБухгалтер,
| """" КАК Кассир,
| """" как КассирДолжность,
| """" КАК Бухгалтер
|ИЗ
| ВТДанныеДокументов КАК ВТДанныеДокументов
//| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИООтветственныхЛиц КАК ВТФИОРуководителейПоследние
//| ПО ВТДанныеДокументов.Ссылка = ВТФИОРуководителейПоследние.Ссылка
//| И ВТДанныеДокументов.Руководитель = ВТФИОРуководителейПоследние.ФизическоеЛицо
//| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИООтветственныхЛиц КАК ВТФИОГлавБухПоследние
//| ПО ВТДанныеДокументов.Ссылка = ВТФИОГлавБухПоследние.Ссылка
//| И ВТДанныеДокументов.ГлавныйБухгалтер = ВТФИОГлавБухПоследние.ФизическоеЛицо
//| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИООтветственныхЛиц КАК ВТФИОКассирПоследние
//| ПО ВТДанныеДокументов.Ссылка = ВТФИОКассирПоследние.Ссылка
//| И ВТДанныеДокументов.Кассир = ВТФИОКассирПоследние.ФизическоеЛицо
//| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИООтветственныхЛиц КАК ВТФИОБухгалтерПоследние
//| ПО ВТДанныеДокументов.Ссылка = ВТФИОБухгалтерПоследние.Ссылка
//| И ВТДанныеДокументов.Бухгалтер = ВТФИОБухгалтерПоследние.ФизическоеЛицо
|
|УПОРЯДОЧИТЬ ПО
| ВТДанныеДокументов.Дата,
| ВТДанныеДокументов.Номер";

// Формирует запрос по табличной части документа
//
// Параметры:
// Ведомости - массив ДокументСсылка.ВедомостьНаВыплатуЗарплатыВБанк
//
// Возвращаемое значение:
// Выборка из результата запроса
//
Функция ВыборкаДляПечатиТаблицы(Ведомости) Экспорт

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос.Текст =
"ВЫБРАТЬ
| ВедомостьЗарплата.Ссылка КАК Ссылка,
| ВедомостьЗарплата.Ссылка.Дата КАК Период,
| МИНИМУМ(ВедомостьЗарплата.НомерСтроки) КАК НомерСтроки,
| ВедомостьЗарплата.ФизическоеЛицо КАК Сотрудник,
| СУММА(ВедомостьЗарплата.Сумма) КАК Сумма
|ПОМЕСТИТЬ ВТДанныеДокументов
|ИЗ
| Документ.ВедомостьНаВыплатуЗарплаты.Зарплата КАК ВедомостьЗарплата
|ГДЕ
| ВедомостьЗарплата.Ссылка В(&Ведомости)
|
|СГРУППИРОВАТЬ ПО
| ВедомостьЗарплата.Ссылка,
| ВедомостьЗарплата.Ссылка.Дата,
| ВедомостьЗарплата.ФизическоеЛицо";

//ОписательВременныхТаблиц =
// КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(
// Запрос.МенеджерВременныхТаблиц,
// "ВТДанныеДокументов");
//КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, "ТабельныйНомер, Фамилия, Имя, Отчество");


Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокументов.Ссылка КАК Ведомость,
|"" как ТабельныйНомер,
|"" как Фамилия,
|"" как Имя,
|"" как Отчество,
//| КадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
//| КадровыеДанныеСотрудников.Фамилия,
//| КадровыеДанныеСотрудников.Имя,
//| КадровыеДанныеСотрудников.Отчество,
| ДанныеДокументов.Сумма КАК Сумма
|ИЗ
| ВТДанныеДокументов КАК ДанныеДокументов
//| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
//| ПО ДанныеДокументов.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
//| И ДанныеДокументов.Период = КадровыеДанныеСотрудников.Период
|
|УПОРЯДОЧИТЬ ПО
| ДанныеДокументов.Ссылка,
| ДанныеДокументов.НомерСтроки";

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