Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

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

Доработка печатной формы документа — самая распространенная доработка системы 1С 8.3. Однако при разработке нового функционала приходится снимать конфигурации с поддержки поставщика, что влечет за собой сложности при дальнейшем сопровождении 1С.

Внимание! Если Вам необходима разработка печатных форм любой сложности, но Вы не технический специалист — просто обратитесь к профессионалам. Подробности на странице услуги 1С.

Макет внешней печатной формы

Чтобы избежать таких проблем, фирмой 1С был придуман специальный функционал — подсистема «Дополнительных отчетов и обработок«, которая входит в БСП. Данный функционал позволяет без изменений в конфигурации добавить новую печатную форму или заменить старую.

Механизм заключается в разработке программистом внешней обработки, в которой описан программный код, формирующий нужную печатную форму. Данную обработку необходимо просто загрузить в пользовательском режиме (1С предприятие) в базу данных.

Этот функционал не новый, он достаточно давно используется в типовых конфигурациях. В настоящий момент актуальна версия библиотеки стандартных подсистем версии 2.х, в которой инструменты построены на механизме управляемых форм.

Рассмотрим методику разработки и настройки внешних печатных форм для 1С (8.2 или 8.3) именно в управляемом приложении, и ниже Вы можете скачать полученную внешнюю печатную форму.

Если у Вас нет времени читать, можете просмотреть наш видеоурок по созданию внешних печатных форм и подключению их на примере конфигурации 1С Бухгалтерии:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Пример создания внешней печатной формы в 1С 8.3

В нашем примере мы сделаем образец печатной формы «Счет» для документа «Реализация (акты, накладные)«.

Для начала создадим новую обработку и укажем в ней следующее:

1. Создадим экспортную функцию СведенияОВнешнейОбработке() в модуле объекта, укажем следующий код:

ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Счет на оплату (шаблон)"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0"); 
ПараметрыРегистрации.Вставить("Информация", "Эту ВПФ мы сделали для того что бы посмотреть возможности БСП "); 
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Счет на оплату (шаблон)", "СчетНаОплатуВРТУ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

Формат возвращаемой структуры регламентирован, подробности можно узнать в разделах ИТС.

Функция СведенияОВнешнейОбработке() ссылается еще на одну процедуру и функцию:

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

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

КонецПроцедуры

Они практически всегда одинаковы.

2. Вторым шагом необходимо создать экспортную процедуру Печать(), с помощью которой подсистема будет инициировать запуск печати из общих модулей подсистемы. Процедура содержит 4 параметра:

  • МассивОбъектов — ссылки на объекты, которые планируются для печати (массив);
  • КоллекцияПечатныхФорм — уже сформированные документы (таблица значений);
  • ОбъектыПечати — список значений, в котором значение — это ссылка на объект, а представление — имя области, в которой был введен объект;
  • ПараметрыВывода — произвольные параметры для печати.

Процедура выглядит примерно следующим образом:

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

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВРТУ", "Счет на оплату (шаблон)", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

В ней формируется нужное количество табличных документов и готовится к печати. В нашем примере мы создадим функцию «СформироватьПечатнуюФорму()», которая будет возвращать табличный документ. Для примера мы предполагаем, что у нас всегда 1 печатная форма, поэтому передаём в функцию первый элемент массива (МассивОбъектов[0]).

Вот и всё, подготовительная часть обработки для внешней печатной формы в 1С 8.3 готова, осталось сделать непосредственно саму печатную форму в виде табличного документа, которую будет возвращать нужная функция.

Создание табличного документа

Подробно останавливаться на этом не будем, на эту тему есть большое количество материалов.

Представим лишь внешний вид макета нашего элементарного примера:

Макет счета на оплату

И листинг:

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплатуВРТУ";

МакетОбработки = ПолучитьМакет("СчетНаОплатуВнешний");

//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ОбластьШапка.Параметры.ДатаДокумента = СсылкаНаДокумент.Дата;
ОбластьШапка.Параметры.НазваниеОрганизации = СсылкаНаДокумент.Организация.Наименование;
//выводим шапку в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);

//заполняем строки ТЧ
ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");

Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары Цикл
ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока);
ТабличныйДокумент.Вывести(ОбластьСтроки);
КонецЦикла;

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

ТабличныйДокумент.АвтоМасштаб = Истина;

Возврат ТабличныйДокумент;

КонецФункции

Подключение и тестирование ВПФ в 1С

В нашем примере мы запускаем конфигурации 1С Управление торговлей версии 11.1. Для добавления новой обработки необходимо в разделе «Администрирование» выбрать пункт «Печатные формы, отчеты и обработки». В нужном меню нужно нажать гиперссылку «Дополнительные отчеты и обработки» (если ссылка не активна, включите использование данного функционала — флаг расположен немного левее).

Настройка использования дополнительных обработок

В открытом справочнике необходимо нажать на кнопку «добавить». Программа откроет диалоговое окно выбора файла, в котором необходимо указать файл разработанной нами ранее печатной формы. Если всё было сделано правильно, система автоматически заполнит все параметры, и останется только нажать кнопку «записать и закрыть»:

Добавление внешней печатной формы в 1С

Как видно, параметры скопированы из функции «СведенияОВнешнейОбработке()».

Для того чтобы проверить работу обработки, необходимо в документе «Реализация товаров и услуг» открыть список печатных форм. В нём Вы уведите как «типовые» печатные формы, так и внешние, в том числе и наш добавленный:

Новый шаблон в списке выбора

При нажатии на команду система сформирует нужную нам форму:

Полученная печатная форма

Возможно, она не самая красивая, но как учебный пример, демонстрирующий работу в программе, вполне подойдет :).

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

Скачать получившийся пример внешней печатной формы можно по ссылке — ШаблонВнешнейПечатнойФормыБСП 2.0 (8.2).

Если Вам необходима разработка печатных форм любой сложности, но Вы не технический специалист — просто обратитесь к профессионалам. Мы предлагаем свои услуги на взаимовыгодных условиях. Подробности на странице 1С услуги.

Другие статьи по 1С:

Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 104 на “Внешние печатные формы в управляемых формах 1С 8.3
  1. Большое спасибо. Все очень доходчиво.
    Материал очень помог.

    Ответить

  2. Спасибо, хорошо объяснили, вот только такой вопрос.
    Когда через внешнюю печ. форму вывожу на печать есть возможность менять текст выводимого документа, тогда как в типовых — нет такой возможности. Как запретить?

    Ответить

    • Спасибо!

      По идее так:
      ТабличныйДокумент.ТолькоПросмотр = Истина;

      Напишите, как попробуйте

      Ответить

    • Или поставить защиту на все ячейки табличного документа (макета).

      Ответить

  3. не работает пример :
    Не удалось сформировать внешнюю печатную форму!
    Поле объекта не обнаружено (СсылкаНаОбъект)
    Не удалось сформировать внешнюю печатную форму!
    Обращение к процедуре объекта как к функции (Печать)

    Ответить

    • Странно, реквизита СсылкаНаОбъект даже нет в обработке.

      Можете скинуть строку кода где возникает ошибка?

      Ответить

  4. Спасибо большое.Очень помогло.К тому же это был мой первый опыт разработки ВПФ на управляемых формах

    Ответить

  5. А как в УТ 11 или БП 3.0 заменить встроенную печатную форму на свою? Чтобы в меню Печать не появлялся новый пункт…

    Ответить

    • На вопрос как заменить печатную форму, а не создавать новую — ответа нет.
      Также невозможно отключить ненужную типовую форму, без снятия конфигурации с поддержки! 🙁
      УТ 11.1 это касается точно.

      Ответить

      • В УТ вроде бы нельзя подменять.
        Да и отключить типовой возможности я не нашел — хотя самому очень надо было.

        Количество форм у клиента перевалило за 50 :)) Научили пользоваться комплектами печатных форм. Трудностей не возникает

        Ответить

    • Воспользоваться механизмом расширения конфигурации. Задумано как раз чтобы не снимать конфигурации с поддержки!

      Ответить

  6. Спасибо!
    Пошагово быстро создал печатную форму. Делал для чека акт по доставке.

    Ответить

  7. Спасибо большое. Даже огромное.

    Ответить

  8. Очень понятно и заставляет подумать, вместо copy/paste.
    Спасибо!

    Ответить

  9. Добрый день. Кирилл, вы бы не могли подсказать, как настроить в 1с Бухгалтерия 8.2 печать комплекта документов реализации (ТОРГ-12, ТТН, ТН) так, чтобы можно было одним кликом мыши распечатать полный комплект. Возможно ли это в настройках внешних печатных форм?! Плиз….

    Ответить

    • Ольга, добрый день!

      К сожалению, в 1с Бухгалтерии этой возможности нет. Как вариант — создать единую внешнюю печатную форму, в которую вывести сразу 3 документа. Но тут без программирования не обойтись

      Ответить

  10. Добрый вечер.

    1. Подскажите как найти ошибку во ВПФ? В 8.2 во ВПФ можно было добавить форму, реквизит СсылкаНаОбъект, и через кнопку вызвать функцию «Печать».
    Далее не подключая обработку можно было заниматься отладкой.

    А как сделать подобное здесь?
    (Выдаёт ошибку, потому что я сразу стал использовать свою функцию формирования табличного документа, а исправить не понимаю как)

    2. В Вашем примере в процедуре Печать используется МассивОбъектов[0]
    т.е. данный пример при печати одного документа будет работать а при печати пачки документов просто повторит первый документ несколько раз? Или просто один раз первый из списка?

    PS. Приношу извинения за возможную сумбурность… Что с нас программистов взять в момент творчества? 🙂

    Ответить

    • Добрый вечер! Спасибо за комментарий:)

      1. Я, если надо отладить ВПФ, делаю форму с ссылкой на документ и кнопкой, в обработчике которой прописываю примерно такой код:

      МассивОбъектов = Новый Массив;
      МассивОбъектов.Добавить(СсылкаНаДокументСФормы);
      СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати).Показать();

      Отрабатывается функция по формирования табличного документа и откроется сам табличный документ

      2. Это для упрощения примера, конечно же так лучше не делать :)))
      Лучше передавать туда массив и в запросе отбирать документы с помощью конструкции «В (&МассивДокументов)»

      Ответить

  11. Не работает команда ПолучитьОбласть() — пишет «Метод не определен на тонком клиенте
    Я начинающий Программист 1С 8.3 . Сделал все как у вас , но получил ошибку. Не подскажете в чем дело ? Текст посылаю
    Функция ПолучитьМакетНаСервере()
    Объект1 = РеквизитФормыВЗначение(«Объект»);
    Макет = Объект1.ПолучитьМакет(«МХ3Альбом»);
    Сообщить(«Макет=»+Макет);
    Возврат Макет;
    КонецФункции
    Процедура ПечатьМХ3(Команда)
    Сообщить(«Все напечатано»);

    Макет = ПолучитьМакетНаСервере(); Сообщить(«Макет1=»+Макет);
    Область = Макет.ПолучитьОбласть(«ШапкаПервойСтраницы»); Выдает ошибку !!!!!!!!!
    КонецПроцедуры

    Ответить

    • На клиенте нельзя использовать «получитьмакет», только на серверной процедуре.

      Ответить

  12. Спасибо! Тоже получилось!

    Ответить

  13. {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(237)}: В обработчике печати не был сформирован табличный документ для: Маршрутный лист упрощенный
    ВызватьИсключение(ТекстСообщенияОбОшибке);

    почему может возникать?

    Ответить

    • Ошибка во внешней печатной форме.

      Гляньте в журнале регистрации, скорее всего будет более подробная ошибка.

      Ответить

  14. Может глупый вопрос, но не могу сообразить. А можно к внешней печатной форме два макета цеплять и в зависимости от определенного параметра выводить на печать один или другой макет?

    Ответить

  15. Да, конечно можно. Используйте примерно такой код:

    Если <условие> Тогда
    МакетОбработки = ПолучитьМакет(«Счет_1»);
    Иначе
    МакетОбработки = ПолучитьМакет(«Счет_2»);
    КонецЕсли;

    Ответить

  16. Большое спасибо, все получилось!

    Ответить

  17. Добрый день! А как добавить колонку Единица измерения? Какой код должен быть в СтрокаТЧ? Спасибо!

    Ответить

    • Добавьте на макет параметр с таким же названием и тогда код:
      ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока);

      Должен отработать корректно.

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

      ОбластьСтроки.Параметры.<НазваниеПараметра> = <ЗначениеПараметра>;

      Ответить

      • Добрый день! Добавляю печатную форму «Счет на оплату» в Заказ Клиента. У меня такая же задача — добавить колонку Единица измерения.
        В макет параметр добавлен, но код ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока); не работает. Подскажите, куда именно его надо написать?)
        Также еще вопрос: как добавить бик, инн, кпп,кор.счет банка в образец заполнения платежного поручения(наименование банка и расчетный счет удалось заполнить из реквизитов). Подскажите, как это сделать?
        Также просьба подсказать, как заполнить представление поставщика, покупателя, грузоотправителя и грузополучателя?

        Ответить

  18. Добрый день!
    А подскажите, пожалуйста, как отключить кнопку редактирования макета (наверху «Редактирование»)

    Ответить

    • Добрый день!

      В типовом функционале, наверное, только кодом…

      Ответить

      • Добрый день, а как напечатать список однотипных документов, из журнала документов, к примеру прием на работу.
        Пробовал с помощью цикла
        Для каждого СсылкаНаОбъект из МассивОбъектов, но не сработало.

        Ответить

  19. Спасибо большое! Просто и понятно!

    Ответить

  20. Добрый день, подскажите в чем ошибка (1с 8.3 управ.торговлей 2.3)
    в процедуре

    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ВнешняяОбработкаРКО», «Внешняя обработка РКО», СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

    КонецПроцедуры

    выбивает ошибку

    {ВнешняяОбработка.ВнешняяОбработкаРКО.МодульОбъекта(44,3)}: Переменная не определена (УправлениеПечатью)
    <>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ВнешняяОбработкаРКО», «Внешняя обработка РКО», СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); (Проверка: Толстый клиент (обычное приложение))

    Ответить

    • Добрый день, Юлия,

      Я уже вам ответил на форуме — проверьте наличие модуля «УправлениеПечатью». Возможно, у вас какая то другая версия библиотеки стандартных подсистем.

      Ответить

      • У меня было то же, что у Юли. Пока не поставил &НаКлиенте над процедурой «Печать»

        Ответить

        • Спасибо за помощь, это верно — УправлениеПечатью клиентский модуль

          Ответить

  21. Спасибо за ваш сайт!
    Наконец-то стоящие материалы с рабочими примерами.

    Ответить

  22. Добрый день. Этот пример работает хорошо, когда макет — mxl. А если макет — Active Document

    Регистрируется внешняя обработка — прекрасно. Даже функционал отрабатывает, но после того как word заполняется прекрасно и выводится — вылезают ошибки БСП типа
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(239)}: Поле объекта не обнаружено (КоличествоЭкземпляров)
    ПечатнаяФорма.ТабличныйДокумент.КоличествоЭкземпляров = ПечатнаяФорма.Экземпляров;

    Но, КоличествоЭкземпляров у com объекта нет …

    Ответить

    • Добрый день!

      Механизмы БСП заточены под тип данных именно «Табличный документ» (xml), обмануть программу и подсунуть ей «Active Document» мне кажется будет более трудозатратно, чем просто внести изменения в документ конфигурации (например, с помощью расширений конфигурации).

      Ответить

  23. Очень доступно и познавательно, спасибо. Скажите пожалуйста, а чего-то подобного по платформе 7.7 нет? Еще раз огромное спасибо.

    Ответить

    • Евгений, на 7.7 писал очень мало и давно. Но на сколько я знаю, механизмы есть, но информации дельной для вас не нашел 🙁

      Ответить

  24. Можете помочь почему не работает ВПФ? https://yadi.sk/d/UlUzv_CpxsAco

    Ответить

    • Напишите какая ошибка и что не получается. Ут под рукой нет

      Ответить

  25. Добрый день. Пытался подключить внешнюю печатную форму документа в УТ 11.3 и не смог (((
    Там все пункты меню как -то по другому выглядят чем в предыдущих версиях.
    Подскажите как теперь подключать ВПФ?

    Ответить

    • Алексей, если сильно отличается, скорее всего скоро напишем инструкцию. Пока сами не сталкивались с новой БСП, поэтому не написали 🙂

      Ответить

  26. Здравствуйте, делаю в ЗУП 8.2 по вашему примеру, выдает ошибку:

    {ВнешняяОбработка.РазовыеНачисления.МодульОбъекта(38,5)}: Переменная не определена (УправлениеПечатью)
    <>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( (Проверка: Толстый клиент (обычное приложение))

    Общего модуля УправлениеПечатью там нет, как можно обойти эту проблему?

    Ответить

  27. Спасибо

    Ответить

  28. Здравствуйте!
    Подскажите, как подключить ВПФ к базовой УТ 11.3?

    Ответить

    • Екатерина, честно говоря пока руки не дошли до новой редакции. Как будет время напишем инструкцию обязательно.

      Ответить

  29. Добрый день! Скажите, а есть возможность подключить список печатных форм? т.е. не подключать каждую печатную форму отдельно, а подключить, например, сразу 10 печатных форм?

    Ответить

  30. Начинающий программист 1с При проверке выдает {ВнешняяОбработка.ЗаказВнешний.МодульОбъекта(46,2)}: Переменная не определена (УправлениеПечатью)
    <>УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( (Проверка: Сервер)… делал все по примеру, в чем может быть причина?

    Ответить

  31. Кирилл, подскажите, пожалуйста, что необходимо изменить чтобы отчет работал на обычных формах?

    Ответить

  32. Добрый день.
    Пытаюсь подобное сделать для «Акт выполненных работ» и не получается. Пишет «Поле объекта не обнаружено (Товары)».
    Подскажите, что нужно изменить? А в «Реализации товаров и услуг» норм работает.

    Ответить

    • В акте выполненных работ нет табличной части товары.

      Ответить

  33. Задача:
    В конфигурации есть документ самодельный «ПечатьТТН»
    К документу Реализации нужно подключить внешнюю как бы печатную форму, которая будет открывать документ ПечатьТТН с заполнением поля ДокументОснование текущим документом реализации. Как это сделать во внешней печатной форме?

    Ответить

    • возьмите за основу Обычную ТТН,а ссылку на документ основание прописываете:
      СсылканаОбъект = ДанныеПечати.Ссылка.ДокументыОснования[0].ДокументОснование;

      Ответить

      • Ну и дальше используете код СсылкаНаОбъект.ВашРеквизит

        Ответить

  34. Каким образом в вашем примере можно добавить номер телефона клиента, в шапке после «организации»?

    Ответить

  35. Здравствуйте, сделал форму по вашему видео, скопировал все коды, пишет вот такую ошибку:{ВнешняяОбработка.АктУслугВнешний.МодульОбъекта(121,14)}: Недостаточно фактических параметров (СформироватьПечатнуюФорму)- не пойму что нужно еще добавить???

    Ответить

    • Доброго времени!

      Перейдите в функцию «СформироватьПечатнуюФорму» и сравните количество параметров которые вы передаете и которые есть в функции.

      Ответить

  36. Тобишь, те параметры с формы сравнить с кодом, правильно понял?

    Ответить

    • Не очень понял вас.

      У вас есть вызов функции, что-то вроде:
      СформироватьПечатнуюФорму(Параметр1, Параметр2, ….)

      И в модуле есть сама функция СформироватьПечатнуюФорму(Параметр1, Параметр2, ….)

      Вот сравните количество параметров там и там.

      Ответить

      • Простите, конечно новичка, но не совсем понял, где искать вызов функции в не модуля?

        Ответить

        • Ничего страшного 🙂

          Вот тут процедура вызывается:

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

          УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «СчетНаОплатуВРТУ», «Счет на оплату (шаблон)», СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

          КонецПроцедуры // Печать()

          Вот тут она исполняется:

          Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)

          ТабличныйДокумент = Новый ТабличныйДокумент;

          Ответить

          • Может так будет понятней:

            <тут был код>

            Ответить

            • Да нет, вроде всё нормально с тем, на что я думал…

              Тогда не знаю чем подсказать, могу посоветовать только отладить её и посмотреть в чем ошибка. Но про отладку ВПФ в двух словах не рассказать 🙁

              Ответить

              • Спасибо, буду пробовать…

                Ответить

              • Подскажите, данная ошибка Вам что нибудь говорит?
                {ВнешняяОбработка.АктУслугВнешний.МодульОбъекта(122,14)}: Недостаточно фактических параметров (СформироватьПечатнуюФорму)
                КонецФункции <>СформироватьПечатнуюФорму() (Проверка: Сервер)
                эта ошибка выходить при сохранении файла. и в база не загружается по той же причине.

                Ответить

        • То есть в процедуре печать() и в процедуре сформироватьпечатнуюформу() должно быть одинаковое количество параметров???

          Ответить

  37. Подскажите как в ЗКГУ на 8.3 сделать выбор между двумя макетами печати приказа на отпуск в зависимости от того установлена определенная галочка или нет? Я ни разу не 1Сник, пришел поэникееть, людям приспичило, а штатный сотрудник в отпуске, а «тыжпрограммист»

    Ответить

  38. Очень круто объясняете, вот сижу ломаю голову над тем как мне на одном листе распечатать несколько документов на выбор из списка, при выделении. Я уже процедуру печать меня раз 15 и все равно печатает один документ. или что мне нужно изменить, сечас процедура выглядит так : Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    Для Каждого ОбъектПечати Из МассивОбъектов Цикл
    УправлениеПечатью.
    ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    «МаршрутныйЛистПроизводства»,
    «Маршрутный новый»,
    СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати));
    КонецЦикла;

    КонецПроцедуры // Печать()

    Ответить

  39. День добрый, если впф может быть вызвана и из справочника и из документа, как определить откуда она была вызвана?

    Ответить

  40. Добрый день!
    1С:ERP Управление предприятием 2 (2.2.2.113)

    Подскажите, есть ли способ выводить внешнюю печатную форму сразу на принтер?

    В справочнике ДополнительныеОтчетыИОбработки в табличной части «Команды» нету реквизита «СразуНаПринтер», поэтому способ через команду печати не подходит.

    Ответить

  41. Все почти ок только из списка состоящий из 10 элементов вывелся только 1

    Ответить

  42. Добрый день! Вопрос такой: менял типовую ПФ, создал ВПФ, добавил форму с определенными настройками печати, прикрутил к 1с. Когда в выпадающем меню печати выбираешь данную впф, открывается ее форма. Никак не могу понять, как сделать так, чтобы в поле «объект печати» автоматически приходила ссылка на документ, который нужно распечатать (либо из списка документов приходила ссылка на тот док, который выделен)
    ОбъектПечати = Документы.РеализацияТоваровУслуг.ПолучитьФорму(«ФормаВыбора»).Элементы.СписокРеализацииТоваровУслуг.ТекущаяСтрока; не работает 🙁
    УФ. УТ 11.3.

    Ответить

  43. Зачем Вы сделали что при копировании текста вставляется адрес вашего поганого сайтика и при этом теряется форматирование, это не удобно!

    Ответить

  44. Спасибо за статью. А как то можно одну печатную форму прикрепить к документам разного типа? Например что бы одна внешняя печатная форма печаталась из заказа и она же, например из реализации ну и так далее. Для упрощения считаем что все ТЧ симметричны, с них берутся данные,а прочие реквизиты не участвуют?

    Ответить

  45. Спасибо за статью, все получилось. Есть надобность добавить в макет оборотную сторону. Но среди типовых форм в 1С БП 3.0 не могу найти ни одной, чтобы посмотреть в качестве примера.

    Ответить

  46. Добрый день. Подскажите, пожалуйста, как быть вот в такой ситуации. Есть 1C ERP. Есть Реализация товаров и услуг. Надо к ней добавить печатную форму. Все сделал работает. Но есть проблема. Для некоторых реализаций форму выводить нужно, для некоторых нет. Если вот эту строку не выполнять «УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию();» то при вызове печатной формы непосредственно из документа или в пакете документов именно по конкретной реализации будет возникать критическая ошибка, т.к. тут не проверяется добавил ли я что-то в коллекцию при отображении. Но зато при печати пакета из Задания на перевозку все будет правильно печататься, т.к. в большой пакет документов по всем реализациям попадут только нужные и полностью сформированные печатные формы. Если же независимо от необходимости отображения печатной формы добавлять ее в коллекцию всегда, то тогда нормально работает печать из непосредственно документа. Но не работает пакет из задания на перевозку, т.к. там уже не проверяется — не запихал ли я в очередь печати пустой документ. Как правильно сделать анализ, надо ли печатать документ. Или этот анализ надо поместить в какое-то другое место системы? Например, в подписку на событие или еще куда-то?

    Ответить

  47. Здравствуйте, подскажите пожалуйста, как сделать кнопку печати зависимой от галочки, то есть кнопка печать пропадает, если галочка не стоит и наоборот, если стоит, то кнопка печати появляется. Спасибо.

    Ответить

  48. Добрый день! Подскажите, если в УТ 8,3 предусмотрено добавление печатных форм в режиме предприятия, то значит можно написать макет и процедуру. Не будет в дальнейшем проблем с программой? На данный момент одна форма уже запущена.

    Ответить

  49. Не получается сделать ВПФ. Все делаю по инструкции, подставляя только значения своего документа и мне выдает «В обработчике печати не был сформирован табличный документ для Соглашения»
    Конфигурация зуп 3.1
    С чем может быть связана подобная ошибка?

    Ответить

  50. . В тексте указано: » …отладки внешних печатных форм», но ссылка не открывается. Исправьте адрес на programmist1s.ru/ kak-otladit-vneshnie-pechatnyih-formyi-v-1s-8-3-upravlyaemom-prilozhenii/

    Ответить

  51. Добрый день!

    {ВнешняяОбработка.ЗаказВнешний.МодульОбъекта(54,28)}: Тип не определен (ТавличныйДокумент)
    ТабличныйДокумент = Новый <>ТавличныйДокумент; (Проверка: Сервер)

    Ответить

  52. Подскажите как начать запуск печатной формы с выбора каталога папки на компе?

    Ответить

  53. Большое спасибо!!!

    Ответить

  54. Спасибо, получилось. Делал печатную форму табеля для начисления з.п. в Бух 2.0 дУ

    Ответить

  55. Temic:
    Добрый день, а как напечатать список однотипных документов, из журнала документов, к примеру прием на работу.
    Пробовал с помощью цикла
    Для каждого СсылкаНаОбъект из МассивОбъектов, но не сработало.

    Ответить

  56. Подскажите, пожалуйста, как сделать чтоб товар и услуга печатались в разных ТЧ?

    Ответить

  57. Зравствуйте, поскажите пожалуйста какой параметр нужно передать чтоб заработала внешяя печать и подпись в БП 3.0

    Ответить

  58. Спасибо! Все ясно и понятно!

    Ответить

  59. Спасибо, очень помогло!

    Ответить

  60. Добавьте на сайт кнопку (стрелку) на «Верх»

    Ответить

  61. на рознице нет возможности сделать

    Ответить

  62. Здравствуйте, попробовал Вашу форму на бухгалтерии 3.0.98.11. Печатная форма открывается, но без табличной части с перечнем наименования работ (услуг) не выводиться совсем. Т.е. заполняются только шапка и подвал. Помогите, если сможете.

    Ответить

  63. Спасибо, хорошая статья, очень помогла

    Ответить

  64. Подскажите как сделать так, чтобы я например могла распечатать только 30 таких печатных форм, не более. Тоесть поставить ограничение на количество печати

    Ответить

  65. Подскажите как сделать так, чтобы я например могла распечатать только 30 таких печатных форм, не более. Тоесть поставить ограничение на количество печати

    Ответить

  66. Здравствуйте, Конфигурация ЕРП. Печатная форма открывается, но нет кнопки «печать» . Нужно заходить в «ЕЩЕ». Как сделать что бы кнопка была сверху на печатной форме. Помогите, пожалуйста.

    Ответить

  67. Добрый день. Работаю в УНФ 3.0.2. По тем командам как вы описывали выходит ошибка по полю Номер и Дата. В УНФ какие то другие команды? И второй вопрос. Как вывести Артикул? Номенклатура.Артикул не выводит. Спасибо

    Ответить

  68. Добрый день. Подскажите, а возможно реализовать ВПФ с БСП, для печати в макет Word (Двоичный документ)

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.