Имя: Пароль:
1C
1С v8
Ошибка при формировании печатной формы.
, , ,
0 ibros
 
06.04.17
17:26
Доброго дня.

1С:Предприятие 8.3 (8.3.9.1818), Бухгалтерия предприятия, редакция 3.0 (3.0.49.18), конфигурация не типовая, дописан (не мной) документ, позволяющий аккумулировать в одной строке ссылки на счет, акты, и счет-фактуру по заказу и пакетно все эти документы отправлять сразу на принтер.
происходит это вот так:
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивСчет, Неопределено);

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетФактураВыданный", "СчетФактура1137", МассивСчетФактура, Неопределено);

После обновления конфигурации при попытке отправить пакет на печать возвращается ошибка:
{ОбщийМодуль.УправлениеПечатью.Модуль(1562)}: При формировании печатной формы "СчетЗаказ" возникла ошибка. Обратитесь к администратору. ВызватьИсключение ТекстСообщенияОбОшибке;

Если строку

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивСчет, Неопределено);

закомментить - остальные документы в пакете печатаются корректно.

Если печатать просто счет отдельно (не из самописного документа, а выбрав из "Счет на оплату покупателю" - печатная форма формируется и уходит на печать корректно.

Подскажите, пожалуйста.. с чего начать тестирование? Я не понимаю даже, как ошибку отследить.
1 Михаил Козлов
 
06.04.17
17:38
Не пробовали для отладки взвести флаг "Оставливаться по ошибке"?
2 ibros
 
06.04.17
17:48
пробовал, нет остановки
3 lubitelxml
 
06.04.17
17:51
(2) не может такого быть, галочку установил, отладку (предприятие) из конфигуратора запустил?
4 Михаил Козлов
 
06.04.17
17:56
(2) Проверьте еще Отладка - Подключение и флаги Автоматического подключения.
5 ibros
 
06.04.17
18:04
при любой конфигурации отладчика - кроме ошибки "При формировании печатной формы "СчетЗаказ" возникла ошибка" другой информации нет
6 lubitelxml
 
06.04.17
18:09
УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивСчет, Неопределено); - поставь здесь точку остановки и пройди отладччиком
7 ibros
 
06.04.17
18:16
да пробовал.
отсылает туда же, в общий модуль управления печатью
8 lubitelxml
 
06.04.17
18:19
(7) ну а дальше? где исключение вызывается?
9 ibros
 
06.04.17
18:20
вся процедура вот так выглядит:

Процедура ПечатьДокументов(Команда)
    
    Для Каждого ТекСтрока Из Объект.Документы Цикл
        Если ТекСтрока.Пометка Тогда
            МассивСчет = Новый Массив;
            МассивСчет.Добавить(ТекСтрока.СчетНаОплату);
            
            МассивРеализация = Новый Массив;
            МассивРеализация.Добавить(ТекСтрока.РеализацияТоваровУслуг);
            
            МассивСчетФактура = Новый Массив;
            МассивСчетФактура.Добавить(ТекСтрока.СчетФактураВыданный);
            
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивСчет, Неопределено);
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "Акт", МассивРеализация, Неопределено);
            УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетФактураВыданный", "СчетФактура1137", МассивСчетФактура, Неопределено);
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
10 Михаил Козлов
 
06.04.17
18:21
В модуле менеджера счета на оплату поищите формирование табличного документа (слова "макет", "область", "вывести", "присоединить").
11 ibros
 
06.04.17
18:24
(8) исключение вызывается в формировании печатной формы
        // Вызов исключения при возникновении ошибки.
        Если Отказ Тогда
            ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
                "ru = 'При формировании печатной формы ""%1"" возникла ошибка. Обратитесь к администратору.'"), ИмяМакета);
            ВызватьИсключение ТекстСообщенияОбОшибке;
        КонецЕсли;

(10) ага.. сейчас поищу, спасибо
12 lubitelxml
 
06.04.17
18:26
(11)
        Отказ = ВременнаяКоллекцияДляОднойПечатнойФормы.Количество() = 0;
        // Предполагается одна печатная форма, но для обратной совместимости принимается вся коллекция.
        Для Каждого ВременнаяПечатнаяФорма Из ВременнаяКоллекцияДляОднойПечатнойФормы Цикл
            Если ВременнаяПечатнаяФорма.ТабличныйДокумент <> Неопределено Тогда
                ПечатнаяФорма = КоллекцияПечатныхФорм.Добавить();
                ЗаполнитьЗначенияСвойств(ПечатнаяФорма, ВременнаяПечатнаяФорма);
                Если ВременнаяКоллекцияДляОднойПечатнойФормы.Количество() = 1 Тогда
                    ПечатнаяФорма.ИмяМакета = ИмяМакета;
                    ПечатнаяФорма.ИмяВРЕГ = ВРег(ИмяМакета);
                КонецЕсли;
            Иначе
                // Возникла ошибка при формировании печатной формы.
                Отказ = Истина;
            КонецЕсли;
        КонецЦикла;


Вот здесь в первой строчке поставь точку остановки и посмотри где Отказ = истина
13 ibros
 
06.04.17
18:54
lubitelxml, нигде. не срабатывает остановка
14 Мимохожий Однако
 
06.04.17
18:58
Включи режим отладки для сервера
15 ibros
 
06.04.17
18:58
Михаил Козлов,
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПредварительныйПросмотрПечатнойФормыСчетНаОплату", "Счет на оплату",
            ПечатьТорговыхДокументов.ПечатьПредварительныйПросмотрСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "СчетЗаказ"));
        ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
    КонецЕсли;
16 lubitelxml
 
06.04.17
18:58
(13) у тебя отладка выключена походку
17 ibros
 
06.04.17
19:00
не, ну все может быть, конечно.
но другие точки отрабатывает же корректно
18 ibros
 
06.04.17
19:01
сравню-ко я процедуру печати с предыдущей конфигурацией..
19 ibros
 
06.04.17
19:07
кхм. и правда не включена
20 ibros
 
06.04.17
19:10
спасибо всем большое за помощь.
остановить сервер я смогу только в выходные..
включу отладку и буду дальше проверять
21 Мимохожий Однако
 
06.04.17
19:12
(20) Возьми пустую конфигурацию и в файловом режиме проверь