Очередная попытка взаимодействия с JavaScript из клиента 1С. Расширение "Подключаемые Скрипты"

Публикация № 1259487

Разработка - Системная интеграция - Интеграция с WEB

JavaScript WebKit

Хотелось бы поделиться своими наработками в части использования возможностей HTML + JS из клиента 1С. Показанная в статье идея будет интересна тем, кто использует карты Yandex... или ещё какие-нибудь HTML извращения в конфигурациях 1С. Тестировал подход в тонком клиенте на версии платформы 8.3.18.1289, но должно работать на любой 8.3.14+ (движок webkit).

Сразу прошу прощения за не самую лёгкую подачу информации - мне всегда сложно давалось написание текста. Просто хотелось поделиться своими идеями.

Я думаю, все со мной согласятся, что для решения почти любой бизнес-задачи возможностей экосистемы 1С Предприятие более чем достаточно. Однако, изредка, могут появиться особо требовательные к интерфейсу заказчики, которым кровь из носу надо кликать по карте и автоматически заполнять данные адреса в карточке контрагента и тд. К сожалению для реализации таких требований приходится плясать с бубном вокруг нового типа "ВнешнийОбъект". Как потом отлаживать и поддерживать решения, написанные наполовину на javascrу я вообще молчу . В результате таких плясок и родилась идея написания подсистемы, которая позволит реализовать бОльшую часть логики на 1С, где будет легко её отлаживать, расширять и поддерживать. В статье изложу основную идею, и приложу первую версию моей подсистемы. Конечно там ещё много чего надо сделать и имеется куча идей куда можно развиваться. Итак, приступим.

Для начала необходимо реализовать возможность вызова функции eval из контекста 1C, так как она в ПолеHTML изначально не работает. При этом eval доступна при вызове из javascript. Это открывает перед нами возможность перехитрить платформу и переопределить вызов функции.

Для добавления скриптов к документу ХТМЛ я использую событие формы "ПриСозданииНаСервере". Добавим к нашему ХТМЛ документу тег SCRIPT в котором переопредели вызов функции eval так, чтобы он стал доступен из 1С.

Перед подключение дополнительных скриптов к html документу надо учесть следующее ограничение:

  • Реквизит поля ХТМЛ должен содержать текст HTML документа, а не  адрес расположения страницы (чтобы мы могли программно изменить DOM модель документа и подключить дополнительные файлы скриптов). Идея с добавлением тега script с помощью вызова функций addChild у меня почему-то не сработала. Видимо WebKit не выполняет скрипты, если они были добавлены после загрузки страницы. А без возможность вызова функции eval мы не можем добавлять свои функции в контекст js динамически. Получается замкнутый круг.
 
 Переопределим вызов функции eval:

Теперь нам доступно выполнение произвольного кода javascript из 1С. Для примера вычисление суммы с помощью функции eval:

 
 Пример вычисления суммы:

Вызов javascript из 1С мы реализовали. Теперь надо реализовать вызов кода 1С из javascript. Данные из JS можно передать в 1С, если перехватывать событие элемента формы "ПриНажатии". Для этого добавим функцию вызова 1С из контекста JS.

 
 Вызов события "ПриНажатии" с передачей произвольных данных

 

Таким образом мы заложили основу. Имея возможность выполнять произвольный код JS и перехватывать события - мы можем реализовать любую логику в коде 1С. Несомненным плюсом является нормальная отладка решения в контексте 1С, без необходимости использовать отладчик WebKit (который частенько роняет платформу). Однако для реализации сложной логики придётся добавить кучу новых событий и их обработчиков, в итоге получится не самый простой и читаемый код.

Я же хотел сделать универсальный программный интерфейс в 1С, который позволит практически без использования кода на JS создавать решения с HTML интерфейсом.

Моя основная идея заключается в использовании системы событий javascript (addEventListener), в связке с использованием объектов 1С "ОписаниеОповещения". Для этого необходимо выполнить следующую последовательность действий:

  1. создать описание оповещения с присвоением ему уникального идентификатора.
  2. "Закешировать" в клиентской переменной идентификатор и обработчик оповещения (в моей подсистеме я использую глобальную клиентскую переменную, но можно использовать и переменную на форме).
  3. создать обработчик события на элементе DOM модели документа, и присвоить ему обработчик, который будет вызывать функцию sendEvent и передавать в данные события идентификатор конкретного описания оповещения.
  4. Реализовать обработчик, на стороне 1С для события документа "ПриНажатии", который по идентификатору обработчика оповещения найдёт в клиентском Кеше и вызовет обработчик 1С, передав в него данные события JS.

Плюсы такого подхода очевидны - почти вся логика реализуется кодом 1С, решение легко поддаётся отладке и его намного проще расширять и дорабатывать при необходимости. Не затрагивая при этом основной блок взаимодействия 1C <-> JS.

Сам проект доступен в репозитории на github. Буду рад, если кто-то захочет помочь в развитии, так как сам не особо шарю в javascript, да и свободного времени не столь много.

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

В подсистему включён макет, добавляющий функции js. Сейчас реализовано:

  1. функция Eval, предоставляющая доступ к вызову функции eval и возвращающая объект с результатом выполнения или описанием ошибки.
  2. переопределение прототипа функций addEventListener и removeEventListener, для возможности получения списка активных подписок на события по каждому элементу DOM модели документа.
  3. добавлен объект, для управления текущими интервалами и таймаутами, с возможностью получения списка обработчиков. (setTimeout и setInterval).
  4. функции, для исследования объектов, переданных в метод (можно передавать объекты типа ВнешнийОбъект и получать структуру всех методов , свойств и итераторов объекта).
  5. функции, для вызова события элемента формы "ПриНажатии" с передачей особых управляющих событий. Сейчас реализованы события 
    • message1C(вызывает функцию 1С Сообщить в контексте текущей формы, позволяет показывать сообщения из кода js)
    • error1C(вызывает исключение с текстом, переданным из js)
    • log1C(производить запись в журнал регистрации из js)
    • callback1C(вызывает определённый обработчик оповещения в 1С по сохранённому идентификатору). Реализует основную идею моей подсистемы.
  6. функция, позволяющая вызывать у объекта с типом ВнешнийОбъект любой метод по имени с передачей произвольного количества параметров. Параметры также могут представлять из себя Внешние Объекты (например ссылки на другие функции).
  7. Функция, позволяющая прочитать текущее свойство внешнего объекта по имени. По сути вызов функции идентичен получению значения свойства из ВнешнегоОбъекта через точку, но есть подозрение, что js выполняется в отдельных потоках и не привязан к основному потоку выполнения клиента 1С. А значит текущее значение в поле внешнего объекта может отличаться от реального...Но это не точно.. возможно 1С реализовали опрос текущего значения свойства внешнего объекта каждый раз при обращении, так как по сути внешний объект является ссылкой на конкретный объект JS и вполне реально при каждом обращении к его свойствам зачитывать текущее состояние из js.

Для кеширования обработчиков оповещения используется глобальная клиентская переменная. Хранения данных в ней реализовано в разрезе конкретной формы и поля с типом ДокументHTML. Тоесть в случае использования нескольких форм у нас сохранённые данные не перемешаются.

Чтобы использовать возможности расширения в своих разработках достаточно на форме при создании на сервере вызвать метод расширения ПодключитьРасширенныеСкрипты (чтобы изменить документ HTML и 1С его перезагрузила, тем самым выполнив наши подключаемые скрипты - надо делать это с сервера).

 
 Примеры использования расширения:

Ну и на сладенькое - Реализация обмена с 1С через WebSocket в пару строк:

 
 Обмен через WebSocket:

 

Ну вот и всё, что на данный момент реализовано.

В планах на будущее:

  • Реализация справочника "Подключаемые библиотеки", который позволит сохранять внешние библиотеки JS и CSS. Типа Amcharts, Bootstrap и тд..
  • Доработка программного интерфейса, для подключения внешних библиотек в конкретным формам и полям HTML.
  • Реализация обработки для настройки способов подключения файлов, указание порядка загрузки файлов. Настройка места подключения - в header или в теле документа.
  • ну и на самую далёкую перспективу - реализация конструктора html, для создания интерфейса в самой 1С, визуальная настройка, привязка обработчиков и событий элементов DOM модели js к именам обработчиков 1С - думаю по имени модуля и имени процедуры обработчика. Как будут настраиваться дополнительные параметры при создании описания оповещения пока не придумал... (сейчас довольно призрачное представление, как всё это будет выглядеть).

Скачать файлы

Наименование Файл Версия Размер
Расширение "Подключаемые Скрипты"

.cfe 36,01Kb
16
.cfe 36,01Kb 16 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Дата
1. John_d 3151 10.02.21 09:47 Сейчас в теме
за статью плюс.
я так делал взаимодействие с js:
https://infostart.ru/1c/articles/1355214/
Что думаете о моем способе?
2. savelievD 60 10.02.21 10:53 Сейчас в теме
(1) имеется в виду использовать какой-нибудь объект DOM модели документа, для передачи в него текста и последующего чтения этих данных из 1С? Как по мне, то в такой схеме инициатором события может быть только 1С, что существенно ограничивает возможности. Ну а вообще конечно - всё зависит от задачи, которую хотим решить. Если способ работает, то почему бы и нет))
3. VitaliyCeban 415 10.02.21 12:09 Сейчас в теме
Насчет библиотек: Делаю РМК (на основе РМК из Розницы) на HTML + Vue.js. Естественно, там куча файлов. Хранить всё это в 1С не разумно, да и отладка - сущий ад.

Пошел по другому пути: разрабатываю в Visual Studio Code, как обычный проект Vue, с хранением в репозитории Git. Отладка в Google Chrome (это дает: отладку javascript / HTML / CSS, доступ к DOM, доступ к console, замеры производительности, поключение расширений браузера конкретно для отладки Vue). Ничего этого при разработке прямо в 1С - нет.

На стороне 1С, при включенном режиме разработки (константа 1С) в поле HTML документа загружен минимальный документ-прослойка, который общается с Chrome по WebSocket-у (при запуске отладки проекта на Vue, запускается простенький WebSocket-сервер, единственная функция которого - переправлять сообщения от одного клиента другому, и к нему подключаются документ из Chrome и документ из поля html документа).

Когда настает момент сделать production версию, весь Vue проект собирается в один единственный файл (и html, и css, и js), и уже этот файл помещаю в макет обработки 1С. Константу "Включен режим разработки" выключаю, и в поле HTML документа открывается уже не прослойка, а этот полноценный макет, и общаюсь уже не по websocket, а непосредственно вызовом функций. Программный интерфейс у прослойки и у собранной production версии - одинаковый, РМК на стороне 1С даже не знает (кроме момента выбора - какой макет загружать - dev или prod) где открыт документ, в поле HTML или в Chrome.
unichkin; portwein; JohnyDeath; AleksandrFil; +4 Ответить
4. savelievD 60 10.02.21 12:23 Сейчас в теме
(3) Интересное решение. Раз так много логики зашито в РМК, то думаю лучше делать морду РМ в виде микросервиса, а не запаковывать всё это дело в макет 1С.
5. VitaliyCeban 415 10.02.21 12:33 Сейчас в теме
(4) Так смысл в том чтобы работать в тонком клиенте 1С, а не в браузере (хотя и это можно, пока только в режиме разработки). Работать в 1С нужно для того, чтобы можно было бесшовно открывать нативные объекты/формы 1С. Например, те же отчеты на СКД. На данном этапе, скажем, форма простой оплаты у меня уже на html, а форму комбинированной оплаты я еще не переделал, и пока открывается 1Сная форма, "бесшовно". А если перейти на связку "браузер + http-сервис" - думаю что быстродействие будет страдать, надо будет играться с пулом сеансов и временем засыпания сеанса 1С. Ну и СКД не сделать, разве что только визуализацию готового отчета в PDF.
6. savelievD 60 10.02.21 12:47 Сейчас в теме
(5)я и имел в виду работать через клиента 1с. Просто храниш в константе адрес микросервиса. И открываешь его в поле хтмл документа)
7. VitaliyCeban 415 10.02.21 12:54 Сейчас в теме
(6) Ну это уже не универсально, надо будет на клиентской машине разворачивать собственно этот микро-веб-сервер, и еще поддерживать его запущенное состояние. А в текущей реализации, в production режиме никакие приложения, помимо 1С - запускать не нужно. С макетом работает почти отлично - разве что нашел (не)один баг в платформе, из макета документ открывается в Quirks Mode (BackCompat), а если по URL - то в Standards Mode (тут зарепортил: https://partners.v8.1c.ru/forum/topic/1970293 ), но можно обойти.
8. savelievD 60 10.02.21 12:58 Сейчас в теме
(7)во всем есть свои плюсы и минусы) микросервис можно дорабатывать без обновления 1с, если не нарушать api. Да и поднимать его не на клиенте а на сервере. Но это более глобальная разработка)
9. John_d 3151 11.02.21 09:19 Сейчас в теме
(2) можете подсказать как пользоваться расширением.
Что нажимать чтобы получить результат?
Нажимаю на кнопки получаю разные ошибки
Прикрепленные файлы:
10. savelievD 60 11.02.21 09:33 Сейчас в теме
(9) расширение предоставляет в основном программный интерфейс, для разработки своих решений. У вас открыта форма тестирования. Текст, который вы вводите в поле будет выполнен не в 1С, а в javascript. попробуйте
alert("Привет мир")
11. John_d 3151 11.02.21 10:04 Сейчас в теме
(10) ошибку выдает
Прикрепленные файлы:
12. savelievD 60 11.02.21 10:07 Сейчас в теме
(11) жми сюда..
Прикрепленные файлы:
13. John_d 3151 11.02.21 10:09 Сейчас в теме
(11) а все понял нужно зеленую кнопку нажимать.
Но я бы хотел получить результат как у вас в статье. Какие действия нужно сделать чтобы получить ответ от сокета?
Прикрепленные файлы:
14. savelievD 60 11.02.21 10:21 Сейчас в теме
(13) ещё раз повторю - это форма для тестирования и делал я её на скорую руку, просто, чтобы показать как это работает.
Если хочется попробовать, то проверь/укажите свой адрес сокет сервера в процедуре "КомандаНовыйВебСокет".
далее по нажатию на кнопку КомандаНовыйВебСокет в контексте js будет создана переменная "f", которой присвоится новый объект WebSocket. далее через строку ввода команды можно посылать данные серверу - f.send("Привет мир"). при получении сообщений от сервера они выведутся в сообщение на клиенте. закрыть сокет можно командой f.close(). ну или вызвав процедуру пс_СкриптыКлиент.ЗакрытьСокет(сюда передать переменную внешний объект - ссылку на сокет)
15. AleksandrFil 11.02.21 22:05 Сейчас в теме
(3) Интересно было бы посмотреть как визуально выглядит ваше РМК на Vue. И еще, сборка проекта на Vue в один файл каким образом осуществляется?
16. VitaliyCeban 415 11.02.21 22:55 Сейчас в теме
Видео РМК см. в вложении. Продолжаю активно разрабатывать.
Снималось на экране с разрешением 1024х768, чтобы симулировать реальные условия рабочего места. Точнее, на FullHD мониторе, с разрешением 1024х768, странно почему разрешение видео получилось 1512x1080.

Сборка осуществляется с помощью Vue CLI, который в свою очередь использует Webpack.
Часть файла vue.config.js, ответственная за сборку в один файл: https://pastebin.com/hmfqZWDQ
Прикрепленные файлы:
SLRestoran.mp4
pm74; Neitron4ik; Dach; AleksandrFil; JohnyDeath; +5 Ответить
17. VitaliyCeban 415 11.02.21 22:56 Сейчас в теме
18. AleksandrFil 12.02.21 10:32 Сейчас в теме
(16) Очень круто! Насколько я понимаю это тиражное решение?
19. Dach 306 12.02.21 14:46 Сейчас в теме
(16) Красиво! А статью не планируете написать?
20. Neitron4ik 12.02.21 16:01 Сейчас в теме
21. portwein 15.02.21 09:44 Сейчас в теме
Интересное решение.
Но я в какой то момент понял, что если решение требует участия технологий не относящихся к 1С, то такие решение лучше всего выносить в отдельную разработку не на 1С. Так повышается удобство разработки и поддержки, главное изначально определить некий контракт и описание api микросервиса и далее четко его соблюдать. Сам сервис не обязательно писать на чем то тяжелом (Java/Spring), иногда достаточно простого сервиса на Node/Express - эта связка тоже очень неплохо держит нагрузку. А уже сам сервис общается с 1С посредством http запросов и отдает только нужную информацию.
Оставьте свое сообщение

См. также

Интеграция с бонусной программой лояльности ManyBonus Промо

Управление взаимоотношениями с клиентами (СRM) Розничная торговля WEB v8 Розница УУ Абонемент ($m)

ManyBonus.com - бонусная программа лояльности на базе мессенджеров. Позволяет регистрировать клиента в программе лояльности через Telegram, Viber, VK, отправлять коды скидок в мессенджеры, получать уведомления при списании/начислении бонусных баллов, альтернатива сообщениям СМС.

3 стартмани

07.01.2021    2834    4    Anton64    0    

Выполнение задач через браузер в КА, ERP, ЗУП и БП (расширение)

Управление задачами WEB v8 8.3.14 ERP2 БП3.0 КА2 ЗУП3.x УУ Абонемент ($m)

Расширение позволяет с помощью http сервиса выполнять простые задачи в браузере из КА 2, ERP 2, ЗУП 3 и БП 3. Стояла задача: руководителям оперативно выполнять задачи по согласованию, от мобильного приложения отказались, т.к. у всех разные телефоны и сложности сборки, в частности, для IOS. Решили делать через http сервис, который реализует веб-морду по просмотру и выполнению задач. Расширение может использоваться как готовое (проверял на демо базах работу), так и как основа для доработки под свои нужды.

2 стартмани

13.04.2021    413    2    77dream77    2    

Расширение конфигурации для Web-доступа к 1С (1С в роли back-end)

WEB v8 1cv8.cf Россия Абонемент ($m)

Для реализации того, чтобы 1С формировала и отдавала страницу, которую можно было бы открыть через браузер было написано расширение, которое позволяет публиковать из 1С произвольные ресурсы, будь то API, сайт или изображения / прочие файлы.

1 стартмани

01.04.2021    3115    4    SaschaG    3    

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Практика программирования Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    2533    6    Parsec1C    8    

BIM: взаимодействие с платформой Autodesk Forge Промо

WEB v8 1cv8.cf Строительство Абонемент ($m)

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

1 стартмани

25.11.2020    15426    4    kandr    2    

Загрузка курсов валюта с сайта НБРБ для конфигураций "Управление торговлей для Беларуси 3.4" и "Бухгалтерия для Беларуси 2.1"

Банковские операции WEB 8.3.14 1cv8.cf Беларусь БУ УУ Абонемент ($m)

Расширение по загрузке курсов валют с сайта НБРБ. Не требуется подключение к сервисам!

1 стартмани

12.03.2021    502    0    Serega456    0    

Выгрузка в M.E.Doc налоговой накладной через Эксель и Универсальный импорт

Оптовая торговля WEB v8 8.3.14 1cv8.cf Украина НДС Абонемент ($m)

Пример выгрузки Налоговой накладной из 1С (в моем случае это регистр т.к. розница) используя Эксель и УниверсальныйИмпорт Медка.

1 стартмани

25.01.2021    1139    2    ATA    0    

Расширение для работы с ЭДО через API : Диадок, СБИС, Честный знак. Загрузка, отправка УПД в ЭДО. Вывод из оборота.

Документооборот и делопроизводство WEB Оптовая торговля 8.3.14 1cv8.cf БУ УУ Абонемент ($m)

Расширение для работы с ЭДО и сервисами: 1) Диадок, 2) СБИС, 3) Честный Знак. Авторизация и получение данных производится с помощью http-запросов. Внешние компоненты и COM для подключения к сервисам не требуются. Варианты авторизации: по сертификату, по логину и паролю. Для подписания, отправки документов требуются дополнительные обработки. Пример "ручного" формирования файла УПД (КНД 1115131) и сохранение в СБИС, Диадок (как черновика). Как пример приложено дополнительное расширение для конфигураций "Бухгалтерия 3.0", "Управление торговлей 11.4" и "Комплексная Автоматизация 2.4", позволяющее загружать УПД из ЭДО (только БП), и сохранять УПД в ЭДО без манипуляций с файлами. Если синхронные вызовы разрешены, либо сертификаты установлены на сервере 1с, тогда документ будет не только сохраняться в ЭДО, но и сразу подписываться и отправляться получателю.

1 стартмани

16.12.2020    3619    54    user610386_nadis_n    6    

Односторонний файловый обмен с сайтом по ftp (1C 2 Web) Промо

Обмен данными 1С Файловые протоколы обмена, FTP WEB v8 Розница УНФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

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

3 стартмани

09.12.2019    6631    8    LamerSoft    0    

Загрузка курсов валют для РБ Бухгалтерия для Беларуси, редакция 1.6 через https

Банковские операции WEB 8.3.14 БП1.6 Беларусь БУ Абонемент ($m)

После перехода сайта nbrb.by на работу через https в "старых версиях" Бухгалтерия для Беларуси, редакция 1.6 перестала работать загрузка курсов валют. Обработка позволяет загружать курсы валют по протоколу https.

1 стартмани

09.12.2020    1518    6    1c.transport    13    

Выгрузка видео на YouTube посредством 1С

WEB 8.3.14 1cv8.cf Абонемент ($m)

Обработка позволяет выгрузить файл на сервис YouTube, используя YouTube Data API v3. Никаких внешних компонент - только 1С (обычные формы).

5 стартмани

09.11.2020    1092    1    sdemon72    9    

Генератор маршрута по "документам отгрузки" в Google.Maps

Оптовая торговля Розничная торговля WEB v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Данная обработка будет полезна для построения маршрута по документам реализаций за выбранный период.

7 стартмани

08.11.2020    4544    9    quazare    16    

"Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3 Промо

Обработка документов WEB v8 v8::УФ 1cv8.cf Россия БУ УУ Абонемент ($m)

Расширение конфигурации Бухгалтерия предприятия, редакция 3.0 (при минимальных изменениях любой типовой конфигурации), позволяющее вести историю данных по штрафам ГИБДД для справочника транспортных средств компании. Бонусом поставляется внешняя обработка, способная загружать эти данные из открытых источников в интернет.

4 стартмани

30.12.2019    12157    18    capitan    11    

Автотесты алгоритмов по работе со сторонними http сервисами через юнит-тесты и мок сервер soapUI

Сценарное тестирование WEB v8 8.3.14 1cv8.cf Россия Абонемент ($m)

Полезный кейс по использованию скриптов в soapui и тестированию http-сервиса с конкретным практическим примером.

1 стартмани

02.11.2020    1568    0    dvissarov5    5    

Чатбот WhatsApp

WEB v8 1cv8.cf Абонемент ($m)

Внешняя обработка для написания чат-бота WhatsApp

1 стартмани

21.10.2020    6051    23    ripreal1    20    

1С + react native

WEB v8 1cv8.cf Абонемент ($m)

Пример реализации клиента для 1С на react native.

1 стартмани

09.10.2020    6461    6    van_za    6    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    30373    38    Ditron    90    

Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

WEB Практика программирования v8 1cv8.cf Абонемент ($m)

Пошаговое руководство по созданию http сервиса (часть третья). Передача нескольких параметров в http сервис, a также формирование сложных JSON строк.

1 стартмани

02.10.2020    7516    2    hpi    16    

Подключаем WhatsApp к 1С

WEB v8 1cv8.cf Абонемент ($m)

Обработка для быстрого подключения WhatsApp к любой конфигурации 1С.

1 стартмани

30.09.2020    7012    36    andrew_shamin    58    

Загрузка файлов на сервер с использованием HTTP-сервиса 1С (multipart/form-data).

Практика программирования WEB Абонемент ($m)

Вариант загрузки файлов в составных данных методом POST (multipart/form-data) на примере демонстрационной базы.

1 стартмани

12.08.2020    6016    16    ltfriend    5    

Работа с релизами 1С и договорами ИТС Промо

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    16740    52    RocKeR_13    35    

HTTP сервисы по OpenAPI спецификациям

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Начинаем путь разработки HTTP сервисов с создания спецификаций OpenAPI. Автодокументация сервисов формата Swagger UI без зависимостей. Настройка сервисов в режиме предприятия.

1 стартмани

29.06.2020    10708    9    shmalevoz    20    

Конструктор HTTP-соединений в 1С (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Иногда возникают мысли о том, чтобы прикрутить сервисы, связанные с HTTP-соединениями, в 1С. Необходимо писать обработку и анализировать результат.

1 стартмани

02.06.2020    6148    25    Denr83    0    

DaJet QL - расширяемый язык запросов

Интеграция WEB v8 Абонемент ($m)

DaJet QL поддерживает практический полный синтаксис SQL Server 2005-2016. Кроме этого это расширяемый язык запросов. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям этого языка запросов реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    8954    11    zhichkin    16    

Проверка VAT номеров Промо

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    14901    3    wtlz    1    

Обмен данными между OZON и 1С

Оптовая торговля WEB v8 v8::ОУ УТ11 УУ Абонемент ($m)

Данная подсистема позволяет загружать отправления «с моего склада» из OZON (в статусе «Ожидают сборки») в 1с Управление торговлей 11 по API. Так же есть возможность выгружать статусы отправлений «awaiting_deliver, т.е. Ожидает отгрузки» и «cancelled, т.е. Отменен» из 1с в OZON по API.

10 стартмани

09.04.2020    20387    190    vex2865    129    

Пример работы с Trello из 1С

WEB v8 1cv8.cf Россия УУ Абонемент ($m)

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

1 стартмани

15.02.2020    13503    47    terrorion    14    

Взаимодействие HTML (COM объект, WebKit) с 1С (обычные и управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования HTML (COM объект, WebKit) в 1С (8.3).

2 стартмани

18.01.2020    10103    28    Deniskinr83    0    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

Относительно недавно Почта России стандартизировала и описала сервисы получения информации о регистрируемом почтовом отправлении (РПО). Представляю вашему вниманию конфигурацию-обертку над сервисами Почты России. Она позволяет просто (http-запросы) и без изменений конфигурации подключить сервисы отслеживания к своим информационным системам.

2 стартмани

28.03.2016    29313    38    Smaylukk    3    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    12093    35    zykov_vitaliy    26    

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

WEB v8 1cv8.cf Абонемент ($m)

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    8283    1    John_d    10    

Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное и управляемое приложение)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

2 стартмани

20.11.2019    15060    134    Denr83    0    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты Промо

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка для работы с картами в 1С. Получения изображения с публичной кадастровой карты России, построения тематических карт

1 стартмани

31.08.2017    21107    8    vipchep    0    

Пример взаимодействия HTML (COM объект, WebKit) с 1С (динамический отбор) (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования WebKit в 1С (8.3).

2 стартмани

18.11.2019    11630    16    Denr83    0    

Яндекс сервисы [Расширение]

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    12985    10    noprogrammer    12    

Telegram бот на 1С

WEB v8 1cv8.cf Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    19540    40    budidich    19    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

С каждым годом становится все очевидно, что использование онлайн-сервисов намного упрощает жизнь. К сожалению по картографическим сервисам условия пока жестковаты. Но, ориентируясь на будущее, я решил показать возможности API выше указанных сервисов: Инициализация карты Поиск адреса на карте с текстовым представлением Геокодинг Обратная поиск адреса по ее координатами Взаимодействие с картами - прием координат установленного на карте метки Построение маршрутов по указанным точками Кластеризация меток на карте при увеличении масштаба Теперь также поддержка тонкого и веб-клиента

1 стартмани

28.12.2012    111280    2696    Smaylukk    365    

Выгрузка номенклатуры в социальную сеть Вконтакте

WEB Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf Абонемент ($m)

Обработка для быстрой и легкой выгрузки товаров Вконтакт. Так просто еще не было)))

2 стартмани

14.08.2019    17694    56    kaliuzhnyi    48    

Путеводитель по истории релизов

WEB v8 1cv8.cf Абонемент ($m)

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    15766    13    YPermitin    18    

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

WEB v8 1cv8.cf Абонемент ($m)

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

1 стартмани

12.08.2019    19703    37    MaxPowerr    5    

Пример использования REST API Яндекс Диска Промо

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    28953    46    MKFreeUser    15    

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

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

4 стартмани

08.07.2019    15720    33    miha-28    17    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    22112    81    MarkoSokolov    48    

1С и WebKit. Вариант взаимодействия

WEB v8 1cv8.cf Абонемент ($m)

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    34544    83    mi1man    58    

Работа с публикациями "Инфостарт" Промо

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    24378    13    RocKeR_13    16    

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

WEB v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    30411    115    Ditron    94    

Яндекс карта в документе "Заказ клиента" на закладке "Доставка". (Расширение) УТ 11.4

Обработка документов WEB Оптовая торговля Оптовая торговля v8 УТ11 Россия УУ Абонемент ($m)

Показ яндекс карты в документе "Заказ клиента" на закладке "Доставка" и печать карты для курьера с контактными данными. (Расширение)

3 стартмани

05.02.2019    12665    12    ret    7    

Конфигурация для просмотра публичных телеграм каналов Промо

WEB v8 Абонемент ($m)

Просмотр и каталогизация в более удобном виде публичных телеграм каналов, групп и чатов.

1 стартмани

02.06.2018    19940    13    DO_WHILE_LOOP    7