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

21.02.22

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

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

Скачать файл

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

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

Так как с самого начала хотел реализовать всё локально, то искал что-то на 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.

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

См. также

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

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

36000 руб.

03.08.2020    17780    19    22    

16

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

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

5040 руб.

04.05.2021    19844    13    17    

16

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

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

22656 руб.

25.05.2021    14421    42    8    

18

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1168    1    0    

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