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

06.07.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Шаблонизатор:
.epf 11,89Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

 

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

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

12000 руб.

02.09.2020    171738    960    403    

924

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

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

8400 руб.

20.08.2024    14293    108    46    

108

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

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

9360 руб.

17.05.2024    27260    96    48    

137

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

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

22200 руб.

06.10.2023    17264    43    15    

75

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

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

15000 руб.

10.11.2023    11888    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191172    1152    0    

920

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

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

3600 руб.

27.12.2024    1114    2    0    

5

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

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

5000 руб.

07.02.2018    104115    244    100    

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