Имя: Пароль:
1C
1С v8
область макета не обнаружена,хотя ее и нету(
0 serg-lom89
 
06.06.17
11:11
ДОбрый день
Прошу помощи
Из обработки по кнопке вызываю из справочника внешние печатные формы мой макет.
Определяю сколько у него страниц
            ИмяМакета_ПредПечати = Справочники.ДополнительныеПечатныеФормы.НайтиПоНаименованию("моймакет");
            ИмяФайла_ПредПечати = КаталогВременныхФайлов()+"PrnForm.tmp";
            ОбъектВнешнейФормы_ПредПечати = ИмяМакета_ПредПечати.ПолучитьОбъект();
            Если ОбъектВнешнейФормы_ПредПечати <> Неопределено Тогда
                
                
                ДвоичныеДанные_ПредПечати = ОбъектВнешнейФормы_ПредПечати.ХранилищеВнешнейОбработки.Получить();
                ДвоичныеДанные_ПредПечати.Записать(ИмяФайла_ПредПечати);
                Обработка_ПредПечати = ВнешниеОбработки.Создать(ИмяФайла_ПредПечати);
                Обработка_ПредПечати.СсылкаНаОбъект = текДокумент;
                ТабДокумент_ПредПечати = Обработка_ПредПечати.Печать();
                
                
                КолВоСтраниц = ТабДокумент_ПредПечати.КоличествоСтраниц();
                Если КолВоСтраниц = 1 Тогда
                    ВидФормыПечати = "БезПриложения";
                ИначеЕсли КолВоСтраниц > 1 Тогда
                    ВидФормыПечати = "СПриложением";
                КонецЕсли;


и затем как определил какой формы,вызываю дальше по печ формы.

                        ИмяМакета = Справочники.ДополнительныеПечатныеФормы.НайтиПоНаименованию("Макет2");
            
            текДокументОбъект.Печать(ИмяМакета);
            
            Предупреждение("Вставьте белые листы для печати приложения!!!");
            
            ИмяМакета = Справочники.ДополнительныеПечатныеФормы.НайтиПоНаименованию("Макет3");
            
            текДокументОбъект.Печать(ИмяМакета);


и на второй печ форме вылетает ошибка что область макета  не обнаружена.
Иду в макет,и оказывается этой области нету,и если вызвать ее из макет,то все ок.
1 serg-lom89
 
06.06.17
11:13
схема такая сложная,но сам вопрос остается открытым !)
2 Альбатрос
 
06.06.17
11:15
текДокументОбъект.Печать(ИмяМакета);

Сюда надо именно ссылку на справочник передавать, а не строковый идентификатор макета?
3 serg-lom89
 
06.06.17
11:17
(2) да не,Все ок.
Там получается смотрит макет является ли ссылкой на спр внешние печ формы
4 serg-lom89
 
06.06.17
11:27
перед ()+"PrnForm.tmp"; надо добавлять какой нить уникальный номер,вроде помогло
5 dezss
 
06.06.17
11:30
>>Иду в макет,и оказывается этой области нету,и если вызвать ее из макет,то все ок.

Какой-то поток сознания. Не ленись описывать проблему более полно, а не только копипастой кода.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн