1С с {{усами}}

21.02.22

Интеграция - WEB-интеграция

Не так давно товарищ спросил, а можно ли придумать что-то, чтобы не писать одинаковые названия и описания товаров, а просто «р-р-раз!» и всё готово: чтобы из свойств товара и чего-то там ещё всё само скомпоновалось. Сразу на ум пришло слово «шаблонизатор» из мира web. Далее, что из этого получилось.

Скачать исходный код

Наименование Файл Версия Размер
1С с {{усами}}:
.epf 7,03Kb
0
.epf 7,03Kb Скачать

Так как с самого начала хотел реализовать всё локально, то искал что-то на JavaScript, чтобы прикрутить к «ПолеHTMLДокумента». После недолгих раздумий и короткого теста в блокноте выбор пал на «Mustache». Один файл JS — для первых проб годится.

Сохранил скрипт в текстовый макет, динамически формируем html-документ и отдаём его на съедение в ПолеHTMLДокумента, всё работает, всё отображается, но как-то это всё скучно. И тут я вспомнил про облачные функции Яндекс!

Всё настроил, далее короткая инструкция, исходя из того, что регистрация выполнена и мы находимся в «Cloud Functions»:

  1. Создаём новую функцию, даём имя и выбираем среду «node.js».
  2. Из редактора всё удаляем и копируем туда исходник нашего шаблонизатора, удаляем последнюю строчку «export default mustache;».
  3. Далее пишем вызов нашей функции:
module.exports.handler = async function (event, context) {
    return {
        statusCode: 200,
        body: mustache.render(event.template, event.param),
    };
};
  1. Нажимаем «Создать версию». Готово, идём тестировать!
  2. На закладке «Тестирование» пишем:
{
    "template": "{{name}} eat {{fruit}}",
    "param": {"name": "John", "fruit": "apple"}
}
  1. Видим, что всё работает внутри Яндекса.
  2. Делаем функцию публичной, чтобы на время теста было проще обращаться.

На этом настройка облачной функции закончена и начнём пользоваться ей из 1С.

  1. На форме нам необходимо: команда («Шаблонизировать»), строка для вставки шаблона («Шаблон») и таблица значений («ПараметрыШаблона») для указания параметров шаблона. Колонка «Значение» имеет составной тип (Строка, Число, Булево).
  2. Вызываем функцию с передачей в неё шаблона и параметров, упакованных в строку JSON.
  3. Получаем ответ и наслаждаемся результатом) 

Вот весь код обработки:

&НаКлиенте
Процедура Шаблонизировать(Команда)
	
    // Необходимо указать идентификатор своей функции
    ИдентификаторФункции = "";

    Соединение = Новый HTTPСоединение("functions.yandexcloud.net",,,,,,Новый ЗащищенноеСоединениеOpenSSL());        
    Запрос = Новый HTTPЗапрос("/" + ИдентификаторФункции + "?integration=raw");
    Запрос.УстановитьТелоИзСтроки(СформироватьJSON());
    Результат = Соединение.ОтправитьДляОбработки(Запрос);
    ВыводРезультата = Результат.ПолучитьТелоКакСтроку();
	
КонецПроцедуры

&НаКлиенте
Функция СформироватьJSON()
	
	Данные = Новый Структура();
	Данные.Вставить("template", Шаблон);
	Данные.Вставить("view", ПолучитьСтруктуру());
	
	ЗаписьJSON = Новый ЗаписьJSON;			
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, Данные);
	
	Возврат ЗаписьJSON.Закрыть();
	
КонецФункции

&НаСервере
Функция ПолучитьСтруктуру()
	
	НоваяТаблица = ПараметрыШаблона.Выгрузить();
	ВыходнаяСтруктура = Новый Структура;
	Для Каждого СтрокаТЗ Из НоваяТаблица Цикл
		ВыходнаяСтруктура.Вставить(СтрокаТЗ.Имя, СтрокаТЗ.Значение);
	КонецЦикла;
	
	Возврат ВыходнаяСтруктура; 
	
КонецФункции

Остаётся добавить ссылки на источники:

1. Serverless (Faas) в 1С — большая статья про serverless от Яндекс и источник кода вызова облачной функции. Спасибо автору!

2. Mustache на GitHub — исходник брать здесь.

Протестировано на версии платформы 8.3.17.1549.

P.S.

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

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16083    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

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

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18167    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85387    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12992    33    8    

12

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16618    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TMV 14 21.02.22 17:55 Сейчас в теме
Кажется, в УТ11 и так отличный конструктор наименований товаров.
Оставьте свое сообщение