Шаблонизатор

06.07.20

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

Создание программного кода для заполнения документа по указанному шаблону.

Файлы

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

Наименование Скачано Купить файл
Шаблонизатор:
.epf 11,89Kb
6 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

Поэтому была написана данная обработка, ей указывается документ, для которого надо создать Код заполнения и в ответ в Окно сообщений или в Текстовый документ выдается программный код для программного создания и заполнения этого Документа.

Единственное, с чем не хотелось разбираться - это с Хранилищем, поэтому такие поля обработкой игнорируются.

Обратите на это внимание!

 

Сначала выдаются все реквизиты Документа ( на примере документа Авансовый отчет из УТ 10)

Объект = Документы.АвансовыйОтчет.СоздатьДокумент();
Объект.УстановитьНовыйНомер();

Объект.Дата="02.03.2019 16:11:42";
Объект.ВалютаДокумента=XMLЗначение(ИзXMLТипа("CatalogRef.Валюты",""),"0b8cc73b-1c5b-11df-8c7f-0019dbb74c8d");
Объект.Комментарий= "";
Объект.КурсДокумента=1;
Объект.КратностьДокумента=1;
Объект.Организация=XMLЗначение(ИзXMLТипа("CatalogRef.Организации",""),"0b8cc73f-1c5b-11df-8c7f-0019dbb74c8d");
Объект.ОтражатьВУправленческомУчете=true;
Объект.ОтражатьВБухгалтерскомУчете=true;
Объект.ОтражатьВНалоговомУчете=true;
Объект.Подразделение= "";
Объект.СкладОрдер=XMLЗначение(ИзXMLТипа("CatalogRef.Склады",""),"6697310c-1c5d-11df-8c7f-0019dbb74c8d");
Объект.СуммаВключаетНДС=true;
Объект.СуммаДокумента=9994.98;
Объект.ТипЦен= "";


Потом для каждой Табличной части выполняется следующее:

подготавливается Таблица Значений с нужными Типами в колонках

ТЗ = Новый ТаблицаЗначений;
Массив = Новый Массив;
Массив.Добавить(ИзXMLТипа("string",""));
ТипВидДокВходящий=Новый ОписаниеТипов(Массив,,,);
ТЗ.Колонки.Добавить("ВидДокВходящий",ТипВидДокВходящий);

...

в том числе и с составными типами

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

Далее заполняется эта Таблица Значений данными из документа-шаблона:

НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.ДатаВходящегоДокумента=XMLЗначение(Тип("Дата"),"2019-02-05T00:00:00");
НоваяСтрока.Сумма=105;
НоваяСтрока.Контрагент=XMLЗначение(ИзXMLТипа("CatalogRef.Контрагенты",""),"e92ffee7-50be-11e2-b8ab-5404a6efe539");
НоваяСтрока.ДоговорКонтрагента=XMLЗначение(ИзXMLТипа("CatalogRef.ДоговорыКонтрагентов",""),"e2e49b78-0438-11e5-a57b-1c6f6523ee30");
НоваяСтрока.Содержание="Выезд на место";
НоваяСтрока.СуммаВзаиморасчетов=105;
НоваяСтрока.КурсВзаиморасчетов=1;
НоваяСтрока.КратностьВзаиморасчетов=1;

...

И, наконец, по данным этой Таблицы значений заполняется сама Табличная часть

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

Так сделано специально, чтобы, если у программиста уже есть данные, по которым надо заполнять Документ, то можно удалить из полученного текста код, связанный с созданием и заполнением Таблицы значений, и поменять только конечный цикл на работу со своими данными.

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

Работа обработки проверена в УТ 10.3.10.4 и в ЗУП Базовая 3.1.11.133, а также в демо-базе УНФ от 1С: https://unf.demo.1c.ru/unf/

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

Обработка ОП УФ Универсальная Программирование

См. также

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

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

24900 руб.

20.08.2024    68169    357    164    

312

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

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

16500 руб.

02.09.2020    258690    1428    421    

1165

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

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

15250 руб.

25.08.2025    54955    111    29    

123

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

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

22570 руб.

06.10.2023    38212    102    46    

122

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

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

17000 руб.

10.11.2023    25261    93    46    

102

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3632    13    1    

16

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

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

9500 руб.

17.05.2024    52881    182    63    

216
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 22.01.21 00:01
Сообщение было скрыто модератором.
...
2. пользователь 22.01.21 00:11
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация