Шаблон внешней печатной формы в управляемом приложении. Пример создания печатной формы.

09.02.14

Разработка - Инструментарий разработчика

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Шаблон печатной формы (УП)
.epf 10,33Kb
470 1 850 руб. Купить
СчетНаОплату
.epf 17,99Kb
192 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

 

Хочу поблагодарить автора Stradivari за хорошую статью //infostart.ru/public/180159/, которая помогла мне в написании данной публикации.

Также автор Поручик с обработкой по отладке внешних печатных форм //infostart.ru/public/73691/

Вступление.

Пример будет базироваться на типовом отчете из документа "СчетНаОплатуПокупателю". Файл шаблона можно взять во вложении.

 

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

1. Скачиваем ИСХОДНЫЙ ШАБЛОН приложенный к данной статье "Шаблон печатной формы (УП).epf". 

 

2. Создаем копию ИСХОДНОГО ШАБЛОНА даем ему название на пример "СчетНаОплату.epf", далее открываем его в конфигураторе. Это будет наш ШАБЛОН, с которым мы будем далее работать.

 

3. В дереве конфигуратора находим документ, печатную форму которого мы планируем переделать. В нашем случае - это документ "СчетНаОплатуПокупателю"

 

  4. Копируем в буфер макет

 

5. Помещаем скопированный макет в наш ШАБЛОН "СчетНаОплату"

 

 

6. Открываем модуль менеджера документа "СчетНаОплатуПокупателю"

Находим процедуре "Печать".  Обратите внимание, что в данной процедуре находятся все функции печати документа.

Для примера я возьму одну из них:

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

Итак, как вы можете видеть нам нужна Функция "ПечатьДокумента". Найдем ее в модуле менеджера и скопируем в наш Шаблон.

 

7. Нажимаем на кнопку "Проверка модуля" или сочетание клавиш (Ctl+F7)

Получаем сообщение со списком ошибок:

     {ВнешняяОбработка.СчетНаОплатуПокупателя.МодульОбъекта(118,17)}: Процедура или функция с указанным именем не определена (ПолучитьТекстЗапросаДляФормированияПечатнойФормыСчетаНаОплатуПокупателю)
     Запрос.Текст = <>ПолучитьТекстЗапросаДляФормированияПечатнойФормыСчетаНаОплатуПокупателю(); (Проверка: Сервер)
{ВнешняяОбработка.СчетНаОплатуПокупателя.МодульОбъекта(138,3)}: Процедура или функция с указанным именем не определена (ВывестиЗаголовокПредупреждение)
     <>ВывестиЗаголовокПредупреждение(Шапка.Получатель, ТабличныйДокумент, Макет); (Проверка: Сервер)

Из текста предупреждения видно, что не хватает еще двух Функций/Процедур:

а. ПолучитьТекстЗапросаДляФормированияПечатнойФормыСчетаНаОплатуПокупателю()

б. ВывестиЗаголовокПредупреждение(Шапка.Получатель, ТабличныйДокумент, Макет)

 

Перенесем их из модуля менеджера документа СчетНаОплатуПокупателя в наш ШАБЛОН и повторно нажмем на кнопку "Проверка модуля".

 

8. Пункт 7 необходимо производить до тех пор, пока не появится сообщение:

     Синтаксических ошибок не обнаружено!

9. Остался последний нюанс.

      а. В ШАБЛОНЕ находим функцию ПечатьДокумента(), в ней находим строку где определяется переменная "Макет = " и комментируем ее.

      в. Вместо закомментированной строки определим переменную "Макет = " указав путь к нашему макету см. п.4.

 У вас должно получиться следующее:

      //Макет = УправлениеПечатью.ПолучитьМакет("Документ.СчетНаОплатуПокупателю.ПФ_MXL_СчетЗаказ");
     
Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СчетЗаказ");


10. Заполним сведения о Печатной форме, которая находятся под Функция СведенияОВнешнейОбработке()

      а. Идентификатор    = "СчетНаОплатуПокупателя"   //Идентификатор внешней печатной формы

      б. Представление   =   "Счет";      //Имя команды в интерфейсе

      в. ПрефиксВПФ          = "Внешний";     //Префикс добавляемый к имени команды интерфейса, для отделения от встроенных команд (ХХХХХХХ)

      г. МассивНазначений = Новый Массив; //Массив объектов метаданных, для которых будут определены печатная форма

         МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю");  // в нашем случае - это документ СчетНаОплатуПокупателю. Название копируем из конфигуратора см. п.3. Может быть массив документов, если печатная форма работает с несколькими типами документов.

 

Всего за 10 пунктов мы смогли сделать внешнюю печатную форму, на основе типового СчетаНаОплату.

Далее вы дорабатываете его в соответствии с потребностями вашего предприятия.

 

И теперь самое приятное.

Данная обработка позволяет производить отладку в клиент-серверном режиме (в тонком клиенте).

 

Это был мой первый опыт написания подобных статей, прошу не судить строго.


Спасибо всем, кто дочитал до конца.


Вступайте в нашу телеграмм-группу Инфостарт

Шаблон печатной формы Внешняя печатная форма Бухгалтерия 3.0 Печатная форма Печатная форма управляемое приложение Отладка печатной формы

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    51590    289    145    

263

SALE! %

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 15500 руб.

02.09.2020    229797    1254    415    

1087

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    26664    64    12    

72

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    30623    79    30    

105

SALE! %

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 16000 руб.

10.11.2023    21307    85    42    

96

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    43994    156    63    

195

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    2877    1    2    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DAnry 9 15.01.14 17:59 Сейчас в теме
Спасибо, тема актуальна.
2. SotNick 23 18.02.14 21:41 Сейчас в теме
Очень Вам благодарна! Сколько я промучилась с этими управляемыми формами для Камин 3.0, Ваша статья меня просто спасла:) Так все просто расписано. Спасибо, спасибо, спасибо!
3. Death_eye 27.02.14 17:20 Сейчас в теме
Спасибо, скачал только СчетНаОплату. Его и использую как шаблон.
4. Alik_1c 03.03.14 08:44 Сейчас в теме
Ошибка БП 3,0 (3.0.30.12)

яКлиентСервер.Модуль(759)}: Неправильный формат параметра СтрокаВерсии1: 1.0
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
5. Alik_1c 05.03.14 06:16 Сейчас в теме
6. hillsnake 36 20.03.14 21:03 Сейчас в теме
15. Anchoret 68 19.12.14 12:33 Сейчас в теме
(5) Alik_1c, что было, как решил?
7. z-alexey 1200 22.03.14 13:10 Сейчас в теме
Есть ошибка. В строке:
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0");

нужно заменить:
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
olololeg; rosys2; Apelsinka; elijah.k; +4 Ответить
21. Apelsinka 7 11.03.15 15:47 Сейчас в теме
(7) z-alexey, огромная благодарность)) сэкономила время))
8. kanalex 23 25.03.14 09:26 Сейчас в теме
а вот такой вопрос теоритический...

Можно сделать внешнюю печатную форму и прикрутить ее не к документу, а к справочнику?
Например, кадры просят поправить формы, печать которых вызывается из элемента справочника сотрудников.
9. mikhailovaew 127 08.04.14 17:23 Сейчас в теме
(8) можно, механизм регистрации абсолютно тот же самый
10. pricec 48 13.05.14 20:47 Сейчас в теме
у меня не работает(
при запуске, через файл открыть

поле объекта недоступно для записи(ЭтотОБъект)

бухгалтерия 3.0.30.15

через дополнительные отчеты и обработки работает
11. IrinaU 21.07.14 10:39 Сейчас в теме
Очень Вам благодарна за статью. Действовала аналогично, но не работало. Статья четко раскладывает все по полочкам. Теперь всё работает!!! Спасибо автору.
12. 79123890854 23.09.14 10:13 Сейчас в теме
Бухгалтерия предприятия 3.0.35.24
при запуске, через файл открыть
поле объекта недоступно для записи(ЭтотОБъект), как победить?
Arc; irbek; makcbol1; Yackov; +4 Ответить
14. Yackov 98 21.11.14 09:41 Сейчас в теме
23. Roman_Go 2 30.06.15 10:18 Сейчас в теме
(12) 79123890854, переименую переменную например в фЭтотОбъект
фЭтотОбъект = РеквизитФормыВЗначение("Объект");
	МассивОбъектов = Новый Массив;
	МассивОбъектов.Добавить(Объект.СсылкаНаОбъект);
	
	ОбъектыПечати 		  = Новый СписокЗначений;
	КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(фЭтотОбъект.Идентификатор);
	ПараметрыВывода 	  = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

	фЭтотОбъект.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
	
	ТабДок = КоллекцияПечатныхФорм[0].ТабличныйДокумент;
Показать
13. vlaskin 83 12.11.14 13:56 Сейчас в теме
16. Leoway 166 19.12.14 15:37 Сейчас в теме
Измените имя переменно "ЭтотОБъект", на любое другое.
17. st13 15.01.15 12:21 Сейчас в теме
в новых версиях "ЭтотОбъект" - зарезервировано системой, нужно изменить название переменной и всё будет хорошо.
18. mavom 4 29.01.15 15:21 Сейчас в теме
19. Gremlin 9 02.02.15 16:05 Сейчас в теме
Спасибо тебе, добрый человек. Очень облегчил этот шаблон процесс создания печатных форм для моих капризных бухов.
20. Apelsinka 7 11.03.15 15:46 Сейчас в теме
Спасибо за обработку, для обычного приложения уже попробовали, а тут приспичило для управляемых форм. Супер, все просто и понятно.
22. nnickname 26.03.15 10:42 Сейчас в теме
Использовал для ERP 2.0. Не взлетало при отладке из формы обработки, пока не поменял в модуле формы
ОбъектыПечати = Новый Массив; 

на
ОбъектыПечати = Новый СписокЗначений;

А так хорошая обработка, спасибо!
24. Poplar 26.06.16 19:02 Сейчас в теме
Хороший шаблон. Решил воспользоваться. В результате сократил время на создание ВПФ.
25. frkbvfnjh 817 09.09.21 08:29 Сейчас в теме
Единственная нормальная, человеческая статья, написанная простым языком, о том как можно сделать внешнюю печатку. Спасибо!
26. Leoway 166 13.09.21 22:56 Сейчас в теме
(25) Пожалуйста. Статья 100 летней давности. Странно что ее еще читают.
Для отправки сообщения требуется регистрация/авторизация