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

09.02.14

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

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

Скачать файл

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

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

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

 

Хочу поблагодарить автора 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С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

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

12000 руб.

02.09.2020    172052    964    403    

924

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

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

8400 руб.

20.08.2024    14534    109    46    

108

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

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

22200 руб.

06.10.2023    17343    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

9360 руб.

17.05.2024    27362    96    48    

138

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

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

15000 руб.

10.11.2023    11954    45    33    

67

SALE! %

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191339    1153    0    

920

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

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18112    7    32    

42

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1152    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DAnry 9 15.01.14 17:59 Сейчас в теме
Спасибо, тема актуальна.
2. SotNick 22 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 67 19.12.14 12:33 Сейчас в теме
(5) Alik_1c, что было, как решил?
7. z-alexey 1198 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 45 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 57 26.06.16 19:02 Сейчас в теме
Хороший шаблон. Решил воспользоваться. В результате сократил время на создание ВПФ.
25. frkbvfnjh 808 09.09.21 08:29 Сейчас в теме
Единственная нормальная, человеческая статья, написанная простым языком, о том как можно сделать внешнюю печатку. Спасибо!
26. Leoway 166 13.09.21 22:56 Сейчас в теме
(25) Пожалуйста. Статья 100 летней давности. Странно что ее еще читают.
Оставьте свое сообщение