8.х Внешние печатные формы в управляемом приложении 1С 8.3

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Tihonidy, 27 фев 2014.

  1. TopicStarter Overlay
    Tihonidy
    Offline

    Tihonidy

    Регистрация:
    27 фев 2014
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Помогите, пожалуйста! Создала ВПФ в конфигурации Бухгалтерия предприятия 8.3, зарегистрировала её и подключила.
    При попытке вызова ее из документа в режиме 1С:Предприятие вылетает ошибка: {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(170)}: В обработчике печати не был сформирован табличный документ для: ДоговорРеализации ВызватьИсключение(ТекстСообщенияОбОшибке)
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Прикрепите ВПФ попробуем... По Вашему сообщению сложно что-то посоветовать
  3. TopicStarter Overlay
    Tihonidy
    Offline

    Tihonidy

    Регистрация:
    27 фев 2014
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Вот ВПФ.

    Вложения:

  4. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Версия бухгалтерии какая ?
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    У вас в модуле "печать" - экспортная функция, результат которой табличный документ, а в общем модуле "ПечатьПоВнешнемуИсточнику" вызывается процедура. Нужно переделать. Результат формирования печатной формы, как я понял из кода процедуры, нужно добавить в коллекцию "КоллекцияПечатныхФорм"
    Tihonidy нравится это.
  6. TopicStarter Overlay
    Tihonidy
    Offline

    Tihonidy

    Регистрация:
    27 фев 2014
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое! Все получилось!
  7. TopicStarter Overlay
    Tihonidy
    Offline

    Tihonidy

    Регистрация:
    27 фев 2014
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Подскажите, где я ошиблась?Во ВПФ для документа СчетНаОплатуПокупателю ( Бухгалтерия предприятия 3.0) задваивается содержимое табличной части документа.

    НомерСтроки = 0;
    СуммаИтого = 0;

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

    Вложения:

  8. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.758
    Симпатии:
    509
    Баллы:
    204
    Все правильно, у вас две строки - два задвоения. Будет три строки - будет три затроения!!!
    Условие вынесите за цикл. И на будущее. Получать область в цикле - это двойка!!! Садитесь.
  9. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Полагаю потому, что в запросе используете ОБЪЕДИНИТЬ ВСЕ. Попробуйте ОБЪЕДИНИТЬ или если возможно, заюзать соединения.
    Tihonidy нравится это.
  10. TopicStarter Overlay
    Tihonidy
    Offline

    Tihonidy

    Регистрация:
    27 фев 2014
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо! Все получилось. Переделала запрос.
    (Я только учусь)
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не всегда.
  12. sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    У меня тоже такая ошибка помогите. Уже все перекапал. Я только учусь поэтому все сложно дается. Походу тоже что то с экспортной функции. Помогите пожалуйста.
    В обработчике печати не был сформирован табличный документ для АктНаПередачуПрав
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(233)}: В обработчике печати не был сформирован табличный документ для: АктНаПередачуПрав
    ВызватьИсключение(ТекстСообщенияОбОшибке);
    http://rghost.ru/6gLRvSkKF
    --- Объединение сообщений, 25 ноя 2015 ---
    Я походу там всё понапутал.
    --- Объединение сообщений, 25 ноя 2015 ---
    И я не нашел Функцию ПолучитьДанныеДляПечатнойФормыАктНаПередачуПрав поэтому заменил её на ПолучитьДанныеДляПечатнойФормыТОРГ12 они похожи. Поэтому наверно и не может сформировать.
    Последнее редактирование: 25 ноя 2015
  13. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    в внешней печатной форме должна быть процедура :
    Код:
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    "КоллекцияПечатныхФорм" - таблица значений (обычно содержит одну строку), в колонку : "ТабличныйДокумент", нужно вернуть сформированный (в результате работы внешней формы) табличный документ

    Пример процедуры :
    Код:
    // Процедура печати
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
        ТабличныйДокумент = Новый ТабличныйДокумент;
       
        Если НЕ ТипЗнч(КоллекцияПечатныхФорм) = Тип("ТаблицаЗначений") Тогда
           
            Возврат;
           
        КонецЕсли;
       
        Для Каждого СтрокаПечатнойФормы Из КоллекцияПечатныхФорм.НайтиСтроки(Новый Структура("ИмяМакета", "ПечатнаяФормаТ-6")) Цикл
           
            ДокументНаПечать = Новый ТабличныйДокумент;
           
            // Параметры страницы
            ДокументНаПечать.ДвусторонняяПечать        = ТипДвустороннейПечати.Нет;
            ДокументНаПечать.ОриентацияСтраницы        = ОриентацияСтраницы.Портрет;
            ДокументНаПечать.ШиринаСтраницы            = 210;
            ДокументНаПечать.ВысотаСтраницы            = 297;
            ДокументНаПечать.ПолеСлева                = 10;
            ДокументНаПечать.ПолеСправа                = 10;
            ДокументНаПечать.КлючПараметровПечати    = "HRM_Печать_Форма_Т-6";
           
            Для Каждого ЭлементМассива Из МассивОбъектов Цикл // обычно это список документов, по которым пойдет печать
               
                // Дата отчета по умолчанию
                ДатаОтчета = ЭлементМассива.Дата;
               
                // Список сотрудников как параметр для формирования печатной формы силами СКД
                СписокДокументов = Новый СписокЗначений;
                СписокДокументов.Добавить(ЭлементМассива, , , );
               
                // Табличный документ сообщение для вывода в печатную форму
                Документ = Новый ТабличныйДокумент;
               
                // Результат формирования отчета
                СформироватьОтчет(Документ, Новый Структура("ДатаОтчета, СписокДокументов", ДатаОтчета, СписокДокументов));
               
                // Доработка сообщения сотруднику
                ДоработатьРезультатПередВыводом(Документ);
               
                ДокументНаПечать.Вывести(Документ);
               
            КонецЦикла;
           
            СтрокаПечатнойФормы.ТабличныйДокумент = ДокументНаПечать;
           
        КонецЦикла;
    
    КонецПроцедуры
    --- Объединение сообщений, 25 ноя 2015 ---
    Нужно "проапдейтить" обработку так, чтобы можно было проверить, а формируется ли табличный документ вообще ?
    в модуле обработки, добавьте вызов процедуры печати с необходимыми параметрами после всех объявлений процедур и функций. Запустите отладку. Точки останова вам в помощь :)
    Последнее редактирование: 25 ноя 2015
  14. sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    А где мне взять Процедуру и Функции Сформировать Отчет и ДоработатьРезультатПередВыходом?
  15. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Вам этого не надо, у вас в "ВПФ" используются типовые процедуры печати. Вам нужно проверить формирование самой печатной формы
  16. sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Невозможно подключить дополнительную обработку из файла.
    Переменная не определена МассивОбъектов
    Последнее редактирование: 25 ноя 2015
  17. sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Вот на каком месте ошибка возникает:
    // Проверим, все ли макеты были сформированы
    Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
    Если Стр.ТабличныйДокумент = Неопределено Тогда
    ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
    Стр.ИмяМакета);
    ВызватьИсключение(ТекстСообщенияОбОшибке);
    КонецЕсли;
    Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
    КонецЦикла;
  18. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.758
    Симпатии:
    509
    Баллы:
    204
    Вы по коду вообще ориентируетесь ??????????? Смысл его понимаете ?????
  19. sashasasha89
    Offline

    sashasasha89 Опытный в 1С

    Регистрация:
    20 сен 2015
    Сообщения:
    387
    Симпатии:
    0
    Баллы:
    26
    Пока не очень. Это моя вторая ВПФ С 1с работаю 2 месяца.
  20. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.758
    Симпатии:
    509
    Баллы:
    204
    Книжки сначала почитайте по синтаксису, станет многое понятно :)

Поделиться этой страницей