В процессе разработки печатных форм или отчетов на обычных формах разработчики 1С часто использовали команду «ПолучитьМакет» на стороне клиента. В управляемых же формах платформы 1С 8.3 эта команда доступна только на сервере или толстом клиенте. Так как подавляющее большинство пользователей работают в режиме тонкого, программистам придется изменить процесс, чтобы получить макет внешней обработки 1С.
Как получить макет на клиенте?
В этом нам поможет отдельная функция, работающая на стороне сервера. С помощью функции «РеквизитФормыВЗначение()» мы передадим объект в виде нашей внешней обработки в серверную функцию и там получим макет. В качестве реквизита формы выступает основной реквизит, выделенный на самой форме жирным шрифтом. Подробный код функции содержит следующие строки:
Передача объекта с клиентской формы на сервер;
Получение макета по наименованию. Наименование задается при добавлении макета во внешнюю обработку;
Возвращаем полученный макет на клиент;
Это изменение призвано оптимизировать работу тонкого клиента и перенести «тяжелые» операции на сервер. Подобные разграничения пропагандирует компания 1С, стараясь оставить на стороне клиента лишь работы по прорисовке интерфейса. Чуть больше строк кода даст нам прирост производительности и более стандартизированный код. Если придерживаться единых стандартов 1С при разработке, то будет намного удобнее и понятнее поддерживать сложные конфигурации.
Общий макет 1С — объект конфигурации 1С, предназначенный для формирования печатных форм электронных документов, и доступный из любого места конфигурации (разных программных модулей).
Общие макеты печатных форм располагаются в ветви «Общие» дерева конфигурации, в отличие от печатных форм объектов конфигурации (справочников, документов, журналов документов, планов счетов, планов видов характеристик, планов видов расчетов, регистров, отчетов и обработок и др.), которые располагаются в подчиненных объектах «Макеты», а также во внешних файлах (в этом случае должно быть установлено свойство табличного документа Макет ).
Макет объекта конфигурации «Справочники»:
Таким образом, «Общие макеты» (шаблоны печатных форм) не принадлежат конкретному объекту конфигурации, и могут используются из разных программных модулей.
Типы макетов 1С:
- Табличный документ – использование стандартной технологии создания и использования макетов: подготовка макета производится с помощью табличного редактора.
- Текстовый документ – использование текстового документа в качестве макета: подготовка текстового макета производится с помощью редактора текстовых макетов.
- Двоичные данные – используются двоичные данные.
- ActiveDocument – использование технологии OLE Active document (документы Microsoft Office OpenXML не могут быть использованы в качестве макета ActiveDocument).
- HTML-документ – использование редактора HTML-документа.
- Географическая схема – использование в качестве макета географической схемы, подготовленной в редакторе географических схем.
- Графическая схема – использование подготовленной в редакторе графической схемы.
- Схема компоновки данных – использование схемы компоновки данных, подготовленной в конструкторе.
- Макет оформления компоновки данных – предполагает использование макета оформления системы компоновки данных.
- Внешняя компонента – хранение внешних компонент, используемых в мобильном или обычном прикладном решении.
Внешняя компонента — это механизм интеграции, сторонняя программа, которая используется для решения задач, недоступных встроенному языку 1С:Предприятия (например, для настройки низкоуровневого взаимодействия с операционной системой или подключаемым оборудованием).
Внешняя компонента поставляется в виде dll-библиотеки, и расширяет встроенный язык новыми методами.
При работе с внешней компонентой после программной загрузки объекты внешней компоненты подключаются к «1С:Предприятию 8».
В платформе 1С:Предприятие имеется достаточно удобный механизм, позволяющий централизовано хранить различные пользовательские шаблоны да и просто файлы, а также осуществлять доступ к ним по имени. Это механизм макетов. В настоящее время платформа OneScript не имеет такого механизма, поэтому была написана библиотека, частично реализующая этот механизм в http-сервисах OneScript.
Отличия от 1С:Предприятие
Поддерживаются макеты только нижеследующих типов: Текстовый документ, Двоичные данные и HTML документ.
Для типа ОболочкаHTMLДокумента, возвращаемого при получении макета типа HTML документ, реализована только одна функция – ПолучитьТекст.
Библиотека входит в состав набора библиотек, расширяющих возможности http-сервисов OneScript. В платформе 1С:Предприятие есть два вида макетов – Общие макеты, которые находятся в одноименной ветке конфигуратора, а также макеты, принадлежащие соответствующим объектам конфигурации. В нашем случае – это макеты обработок.
Общие макеты
Представляют собой файлы, которые хранятся в определенной папке на диске, и имеют следующую схему именования:
ИмяМакета.Расширение
Где ИмяМакета – это имя макета, которое используется для доступа из внутреннего языка.
Расширение – принимает значения: txt — для макетов типа Текстовый документ, bin – для макетов типа Двоичные данные и html – для макетов типа HTML документ.
Для доступа к общим макетам, реализована функция глобального контекста ПолучитьОбщийМакет(ИмяМакета), которая возвращает объект соответствующего типа данных, в зависимости от типа макета.
Макеты обработок
Представляют собой файлы, которые хранятся в папке обработок, совместно с модулями, которые имеют следующую схему именования:
ИмяОбработки.Макет.ИмяМакета.Расширение
Где ИмяОбработки – это имя обработки на внутреннем языке, Макет – признак того, что файл является макетом, ИмяМакета – имя макета, которое используется для доступа из внутреннего языка.
Расширение – принимает значения: txt — для макетов типа Текстовый документ, bin – для макетов типа Двоичные данные и html – для макетов типа HTML документ.
Следует отметить, что для обработок, написанных по технологии внешних компонент OneScript, реализация функции ПолучитьМакет, а также место хранения макетов и их формат, полностью на совести разработчика.
Установка осуществляется копированием файлов dll в папку Bin веб-приложения. Затем, необходимо внести нижеследующие изменения в секцию , файла web.config:
Использование макетов в http-сервисах OneScript аналогично их использованию в 1С:Предприятие. Пример использования макетов в OneScript представлен ниже:
Надеюсь, что настоящая библиотека позволит вам использовать преимущества стандартных механизмов 1С:Предприятие в ваших web-приложениях OneScript.