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

09.02.14

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

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

Скачать файлы

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

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

 

Хочу поблагодарить автора 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 Печатная форма Печатная форма управляемое приложение Отладка печатной формы

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119910    656    389    

701

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    7007    20    6    

37

Infostart УДиФ: Управление данными и формами

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

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

10000 руб.

10.11.2023    3244    10    1    

31

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177341    1070    0    

846

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99203    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    17910    6    8    

38

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    27945    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23488    15    15    

31
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DAnry 8 15.01.14 17:59 Сейчас в теме
Спасибо, тема актуальна.
2. SotNick 21 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 35 20.03.14 21:03 Сейчас в теме
15. Anchoret 60 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 27 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 82 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 785 09.09.21 08:29 Сейчас в теме
Единственная нормальная, человеческая статья, написанная простым языком, о том как можно сделать внешнюю печатку. Спасибо!
26. Leoway 166 13.09.21 22:56 Сейчас в теме
(25) Пожалуйста. Статья 100 летней давности. Странно что ее еще читают.
Оставьте свое сообщение