Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

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

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

WordPress WooCommerce RestAPI Интеграция сайтом Rest API обмен данными

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

Интеграция 1С и  CMS WordPress посредством Rest API сайта. Первый шаг.

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

Преамбула.

Эта статья является логическим продолжением и дополнением этой моей статьи. А также полностью с ней взаимосвязанной, отсылки к ней будут периодически здесь появляться.

Рейтинг CMS.

Как и в предыдущей статье WordPress занимает лидирующие позиции по количеству установок и работающих сайтов в мире, и не только не сдает своих позиций, но и понемногу растет:

Рис. 1.1

А так как WordPress является платформой для электронной коммерции, соответственно магазин WooCommerce, так же занимает лидирующие позиции в другом мировом рейтинге:

Рис 1.2

Это конечно прекрасно, но помимо достоинств, описанных в этой статье, есть еще один немаловажный фактор, о котором мне хотелось бы сообщить. Это формат обмена данными между 1С и сайтом электронной коммерции.

JSON vs. XML

Почему JSON и XML? XML является стандартом де-факто в 1С. JSON, на мой взгляд, имеет значительно больше перспектив, проще, удобнее.

От настольных компьютеров до веб-и мобильных устройств, почти все компьютерные приложения, которые мы используем сегодня, полагаются на один из двух основных стандартов сообщений: JSON и XML. Сегодня JSON является наиболее широко используемым форматом, но он обогнал XML только за последние пять лет. Быстрый онлайн-поиск «JSON vs. XML» принесет бесчисленное количество статей и постов в блогах, сравнивающих эти два стандарта и составляющих постепенно расширяющуюся предвзятость, восхваляющую простоту JSON и критикующую многословие XML. Многие статьи настаивают на том, что JSON превосходит XML из-за его краткой семантики и дисконтирует XML как неэффективный и запутанный стандарт прошлого, и здесь мне тяжело не согласиться.

Почему JSON стал более популярным, чем XML

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

История и эволюционный путь интернета сыграли значительную роль в популяризации JSON. Согласно Stack Overflow, теперь больше вопросов задается о JSON, чем о других форматах обмена данными.

Рис 2.1

Согласно Google Trends, похожая ситуация наблюдается при сравнении интереса поиска для JSON и XML.

Рис 2.2.

Основная разница между JSON и XML

JSON

XML

JSON-объект имеет тип

XML-данные не содержат типов

Типы JSON: строка, число, массив, логическое значение

Все данные XML должны быть строковыми

Данные легко доступны в виде объектов JSON.

Данные XML должны быть проанализированы.

JSON поддерживается большинством браузеров.

Кросс-браузерный анализ XML может быть сложным

JSON не имеет возможностей отображения.

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

JSON поддерживает только текстовые и числовые данные.

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

Получить значение легко

Получить значение сложно

Поддерживается многими инструментами Ajax

Не полностью поддерживается инструментарием Ajax

Полностью автоматизированный способ десериализации / сериализации JavaScript.

Разработчики должны написать код JavaScript для сериализации / десериализации из XML

Нативная поддержка объекта.

Объект должен быть выражен соглашениями - в основном пропущено использование атрибутов и элементов.

Он поддерживает только кодировку UTF-8.

Он поддерживает различные кодировки.

Это не поддерживает комментарии.

Поддерживает комментарии.

Файлы JSON легко читаются по сравнению с XML.

XML-документы относительно сложнее для чтения и интерпретации.

Он не обеспечивает никакой поддержки пространств имен.

Он поддерживает пространства имен.

Это менее защищено.

Это более безопасно, чем JSON.

 

JSON Code vs XML Code

Пример JSON

{
  “firstName”: “Jonathan”,
  “lastName”: “Freeman”,
  “loginCount”: 4,
  “isWriter”: true,
  “worksWith”: [“Spantree Technology Group”, “InfoWorld”],
  “pets”: [
    {
      “name”: “Lilly”,
      “type”: “Raccoon”
    }
  ]
}

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

Пример XML

<?xml version="1.0"?>
<person>
  <first_name>Jonathan</first_name>
  <last_name>Freeman</last_name>
  <login_count>4</login_count>
  <is_writer>true</is_writer>
  <works_with_entities>
    <works_with>Spantree Technology Group</works_with>
    <works_with>InfoWorld</works_with>
  </works_with_entities>
  <pets>
    <pet>
      <name>Lilly</name>
      <type>Raccoon</type>
    </pet>
  </pets>
</person>

Помимо того, что XML является более подробным (в данном случае ровно в два раза более подробным), он также вносит некоторую двусмысленность при синтаксическом анализе в удобную для JavaScript структуру данных. Преобразование XML в объект JavaScript (да и в 1С будет не мало) может занять от десятков до сотен строк кода и в конечном счете требует настройки на основе конкретного анализируемого объекта. Преобразование JSON в объект JavaScript занимает одну строку кода (и в 1С три) и не требует каких-либо предварительных знаний о анализируемом объекте.

С точки зрения обычного человека выбор здесь очевиден. Ведь даже судя по размеру встроенной справки 1С по работе с XML и JSON можно сделать вывод, что с JSON работать проще.

Рис. 2.3

За последние 15 лет JSON стал повсеместным в интернете. Сегодня этот формат является наиболее предпочтительным практически для всех общедоступных веб-сервисов, а также часто используется для частных веб-сервисов.

JSON затмил XML как предпочтительный формат обмена данными для веб-приложений и веб-служб.

Возможно, многим покажется, что здесь избыточно рассказывается о преимуществах JSON. Безусловно, у JSON есть свои недостатки, у XML есть свои преимущества. Но я рассказываю об этом «со своей колокольни». Что касается WordPress, там естественно имеется поддержка XML. Но безусловные преимущества JSON над XML, такие как: простота написания кода, объем передаваемых данных, перспектива, однозначно предопределили мой выбор.

Думаю, что, почитав подробнее в интернете об JSON vs. XML, вы тоже сделаете свой выбор.

Но хватит про выбор, давайте начнем и сделаем что-нибудь.

Запрос данных из WordPress из 1С посредством REST API.

С момента написания прошлой статьи ничего лучше плагина Advanced Access Manager (ААМ) не появилось, поэтому продолжим с ним. Все подробности по настройке можно прочитать здесь.

Весь приводимый ниже код использовался в обработке написанной под управляемые формы. С таким же успехом его можно использовать в обычных формах (версия платформы 1С должна быть не ниже 8.3.6).

 Условно постоянные значения, используемые в обработке (константы).

1. СоединениеССайтом_JWTServer. Строка подключения к сайту (host) без https://

2. СоединениеССайтом_JWToken. Токен полученный от сайта

3. СоединениеССайтом_Таймаут. Таймаут (секунд) подключения к сайту

4. СоединениеССайтом_ЭтоHTTPS_Соединение. Флаг указывающий на HTTPS-соединение.

В свой конфигурации вам надо будет их создать.

Небольшая ремарка, HTTP-соединение тестировалось, работает как надо.

Используемые маршруты WordPress.

  1. /wp-json/aam/v2. Выдает полный перечень сервисов плагина авторизации.
  2. /wp-json/aam/v2/jwt/validate. Валидация (проверка валидности) имеющегося токена.
  3. /wp-json/aam/v2/jwt/refresh. Обновление токена.
  4. /wp-json/aam/v2/jwt/revoke. Отзыв токена.
  5. /wp-json/aam/v2/authenticate. Аутентикация пользователя на сайте посредством пары «логин : пароль».
  6. /wp-json/wp/v2/categories/. Запрос категорий постов сайта.
  7. /wp-json/wp/v2/media/. Запрос списка картинок сайта.
  8. /wp-json/wp/v2/posts/. Запрос списка постов сайта.
  9. /wp-json/wp/v2/pages/. Запрос списка страниц сайта

В контексте данной статьи п.п. 3, 4, 5 не используются, за ненадобность (но вы можете поэкспериментировать самостоятельно, «authenticate» работает точно). Остальные приведены справочно, для демонстрации работоспособности кода. См. видео в конце статьи.

Конечные точки WordPress.

  1. POST.
  2. GET.

Процедуры и функции используемые в модуле формы.

 

 
 ПриОткрытии и ПриОткрытииНаСервере используются для получения констант сайта и токена.

 ПриОткрытии и ПриОткрытииНаСервере используются для получения констант сайта и токена.

 

 
 ПослатьЗапросНаСайт и ПослатьЗапросНаСайтНаСервере

используются соответственно для посылки запроса на сайт. Связаны с кнопкой «Послать запрос на сайт». Здесь мы упаковываем исходные данные в структуру и передаем в модуль объекта для обработки, и отсылки на сайт. Получаем ответ также в виде структуры, частично обрабатываем его и передаем ответ от сайта в процедуру «ПолучитьВрДеревоНаСервере». Описание структуры ответа ниже по тексту.

 

 
 ПолучитьВрДеревоНаСервере

ПолучитьВрДеревоНаСервере процедура конвертации дерева значений ответа в реквизит формы «дерево значений», для наглядной демонстрации полученных результатов.

 

Картинка формы обработки

 

Процедуры и функции, используемые в модуле объекта.

Подготовка данных перед отправкой на сайт.

 
 Функция рс_ПолучитьТиповыеЗаголовкиХТТП()

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

 

 
 Функция рс_подготовка_КонвертироватьВСоответствие(ВходДанные)

Предварительная конвертация в соответствие из "таблицы значений" и "структуры" для последующей конвертации в JSON. Если вы будете использовать только соответствие, можно не использовать.

 

 
 Функция рс_подготовка_ОбъектВJSON

Здесь происходит конвертация данных в JSON. И дополнительный обработчик конвертации, на случай если вдруг "прилетела" "структура", "дерево значений" или строка "дерева значений". Если иные данные кроме соответствия не используются можно оставить только строки "лОбъектJSON = ПереданноеДерево;" и код внутри комментария "/////    Привет XML парсеру".

 

 
 Функция рс_подготовка_ПолучитьЗапросHTTP

Здесь формируется штатный запрос 1С "Новый HTTPЗапрос" и в соответствии с входящими данными получаем тот или иной вид. Его чуть позже пошлем на сайт.

 

 
Функция рс_подготовка_СоздатьСтруктуруВозвращаемогоОтвета

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

 

Отправка данных на сайт.

 
 Функция рс_публикация_ПолучитьСоединениеHTTPS

Здесь, мое мнение, комментарии излишни, штатная процедура 1С.

 

 
 Функция рс_публикация_ПодсистемаWordPressПостыСтраницы, комментарии по спойлером

 

Функция рс_публикация_ПодсистемаWordPressПостыСтраницы(_ВхСтруктураПараметров) Экспорт
	/////_ВхСтруктураПараметров структура данных необходимых для действий на сайте, не нужные удаляются
	ВозвращаемыйОтвет=рс_подготовка_СоздатьСтруктуруВозвращаемогоОтвета();
	Если ТипЗнч(_ВхСтруктураПараметров)<>Тип("Структура") Тогда    ////проверка
		ВозвращаемыйОтвет.Вставить("ОписаниеОтвета","Входящие параметры не соответствуют типу данных <Структура>");
	    Возврат ВозвращаемыйОтвет;
	КонецЕсли;
	
	/////  в этом блоке получаем и удаляем из структуры данные необходимые для подготовки к публикации
	_token_			=_ВхСтруктураПараметров["Token"];
	_JWTServer_		=_ВхСтруктураПараметров["Server"];
	_Маршрут_		=_ВхСтруктураПараметров["Маршрут"];
	_КонечнаяТочка_ =_ВхСтруктураПараметров["КонечнаяТочка"];
	
	_ВхСтруктураПараметров.Удалить("Token");
	_ВхСтруктураПараметров.Удалить("Server");
	_ВхСтруктураПараметров.Удалить("Маршрут");
	_ВхСтруктураПараметров.Удалить("КонечнаяТочка");
	/////  в этом блоке получаем и удаляем из структуры данные необходимые для подготовки к публикации
	
	_ТелоЗапроса_=Неопределено;
	Если _ВхСтруктураПараметров.Количество()>0 Тогда        									///// здесь остаются только данные которы надо непосредственно отослать на сайт, статья, товар и т.д.
		_БодиПубликации_=рс_подготовка_КонвертироватьВСоответствие(_ВхСтруктураПараметров);     ////создаем боди/тело с данными для подстановки в ЗапросHTTP 
		_ТелоЗапроса_	=рс_подготовка_ОбъектВJSON(_БодиПубликации_);                           ////конвертируем боди в JSON
	КонецЕсли; 
	_ЗаголовкиHTTP_	= рс_ПолучитьТиповыеЗаголовкиХТТП();                                        ////штатные заголовки  ЗапросHTTP
	_ЗаголовкиHTTP_.Вставить("Authentication", "Bearer "+_token_);                              ////Добавляем заголовок для авторизации
	
	Запрос 			=рс_подготовка_ПолучитьЗапросHTTP(_Маршрут_, _ЗаголовкиHTTP_, _ТелоЗапроса_);     ////получаем  ЗапросHTTP
	Результат		=рс_публикация_ПослатьГотовыйЗапросНаСайт(_КонечнаяТочка_, _JWTServer_, Запрос);  ////посылаем запрос на сайт и получаем результат HTTPОтвет 
	
	/////---получаем результат ответа - соответствие
	РезультатРасшифровка=Контроль_РезультатHTTPЗапросаСодержитОшибку(Результат);       			////Расшифровываем ответ от сайта
	
	/////// преобразовываем  JSON результат ответа в "дерево значений"
	РезультатОтветаДерево=рс_ПостОбработка_ЗаполнитьДеревоJSON(Результат.ПолучитьТелоКакСтроку());
	
	ВозвращаемыйОтвет.Вставить("ЗначениеОтвета",РезультатОтветаДерево);                      ////дерево с ответом из рс_ПостОбработка_ЗаполнитьДеревоJSON
	ВозвращаемыйОтвет.Вставить("КодСостояния",РезультатРасшифровка["КодСостояния"]);         //// код состояния 200, 201, 404, и т.д.  из Контроль_РезультатHTTPЗапросаСодержитОшибку
	ВозвращаемыйОтвет.Вставить("ОписаниеОтвета",РезультатРасшифровка["ОписаниеОшибки"]);     //// краткое описание ошибки из Контроль_РезультатHTTPЗапросаСодержитОшибку
	
	Возврат ВозвращаемыйОтвет;
КонецФункции // ПодсистемаWordPressПостыСтраницы()

 

 

 
 Функция рс_публикация_ПослатьГотовыйЗапросНаСайт

Посылаем запрос на сайт штатными средствами и  получаем ответ.

Ну и последнее.

Постобработка ответа с сайта.

 
 Функция Контроль_РезультатHTTPЗапросаСодержитОшибку

Обработчик ответа от сайта, получаем код успеха/ошибки и описание.

 
 Функция рс_ПостОбработка_ЗаполнитьДеревоJSON

Сначала конвертируем "сырой" ответ из JSON в соответствие.

 
 Функция ЗаполнитьДеревоЖсон

Потом конвертируем "соответствие" в "дерево значений" для последующей обработки. Кому оно не нравится может использовать что-то иное. Мне очень удобно. Функция не моя, скачал здесь, на Инфостарте, понравилась, спасибо, правда не помню кому.

Возвращаем структуру с ответом в модуль формы для последующего понятного отображения.

Хочу отметить, что самый важный код - это Функция рс_публикация_ПодсистемаWordPressПостыСтраницы. А здесь самое важное - создание тела публикации "_БодиПубликации_". Сколько шишек здесь было набито... Отладите его, дальше всё пойдет как по маслу. И использоваться эта функция будет практически для всего, что надо отправить на сайт, или получить с сайта.

Ну и на последок видео, без него сейчас никуда.

На этом всё, первый шаг сделан, подставляйте свои маршруты и дерзайте.

Желаю приятных экспериментов на ниве обмена из 1С с сайтом WordPress. 

Плюсуем, не стесняемся, делимся, комментируем.

Продолжение следует.

Обработка тестировалась:

Тестировалось на моем сайте: перейти.

Версия WordPress: 5.4
PHP Версия : 7.3.15
Платформа: 1С:Предприятие 8.3 (8.3.13.1644).
Минимально необходимый релиз: 8.3.6.

Источники

  1. toptal
  2. guru99
  3. infoworld 
  4. itrack 
  5. builtwith
  6. WordPress

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. baracuda 2 28.04.20 12:18 Сейчас в теме
Спасибо. Познавательно. Я давно хочу сваять интернет магазин на Wordpress. ОДнако останавливает отсутствие в API массового создания товаров bulk_create()
2. osivv 205 28.04.20 13:34 Сейчас в теме
(1)
Спасибо. Познавательно. Я давно хочу сваять интернет магазин на Wordpress. ОДнако останавливает отсутствие в API массового создания товаров bulk_create()

Если это PHP, то не знаю. Но в Rest API есть пакетное создание товаров, до 100 шт единовременно.
15. baracuda 2 01.05.20 02:47 Сейчас в теме
(2) ткните пож-та ссылку на документацию. Я не нашел такого.
16. osivv 205 01.05.20 09:58 Сейчас в теме
(15) Пожалуйста.

Batch update products
This API helps you to batch create, update and delete multiple products.

Note: By default it's limited to up to 100 objects to be created, updated or deleted.
HTTP request
POST /wp-json/wc/v3/products/batch

Link
17. baracuda 2 02.05.20 02:57 Сейчас в теме
18. baracuda 2 02.05.20 02:58 Сейчас в теме
(2) кстати там указано..
Note: By default it's limited to up to 100 objects to be created, updated or deleted.
то есть тереотически лимит можно расширить получается..
20. osivv 205 02.05.20 11:40 Сейчас в теме
(18)
то есть тереотически лимит можно расширить получается..

Не получится, ограничение разработчиков.
Хотя если вы гуру PHP, и код WooCommerce знаете как свои 5 пяльцев, можете попробовать.
Пробовал, возвращается ошибка, и ничего не создается.
3. malikov_pro 697 29.04.20 05:30 Сейчас в теме
(1)
Преимуществ группового создания перед одиночным не вижу.
в woo базово внешние коды не хранятся, поэтому нужно хранить коды в 1С.
При анализе изменений делаю левое соединение к таблице с идентификаторами и если id > 0 то PUT, иначе POST.
6. osivv 205 29.04.20 10:23 Сейчас в теме
(3)
Преимуществ группового создания перед одиночным не вижу.

Конечно!!! Какая разница, отправлять 100 позиций в цикле или одним запросом?
Гуру 1С, напишите свои размышления на этот счет пожалуйста!
4. malikov_pro 697 29.04.20 05:39 Сейчас в теме
1. Странно работаете с JSON, проще создать соответствие и сериализовать его.
2. Используете JWT имеет смысл статья https://infostart.ru/public/611505/ (использовал в своих работах)
3. Для HTTP имеет смысл переиспользовать https://infostart.ru/public/709325/, он есть и в git (сам свой велосипед использую, планирую переходить/использовать наработки)
5. osivv 205 29.04.20 10:19 Сейчас в теме
(4)
2. Используете JWT имеет смысл статья https://infostart.ru/public/611505/ (использовал в своих работах)

Не нашел про JWT ничего кроме описания в 3-х словах. К чему эта отсылка?
Странно не использовать то, что уже есть... Или мы, как истинные россияне, должны идти "своим путём", велосипед уже изобретён, но нам нужен свой?
И ладно бы изобрели лучше, но ведь делаем копию хуже китайской, и потом гордимся "Вот, мы изобрели собственный велосипед!!!"

(4)
Для HTTP имеет смысл переиспользовать

Не имеет, здесь используется "чистый" код 1С, без встраивания сторонних библиотек и прочего, с которыми еще надо разобраться как работают.
По сути вы пересобрали всевозможные варианты работы с HTTP в одну библиотеку...
Не написано, ни где использовалась, ни как использовалась, ни примеры работы, голый код. Да ещё неработающий.
За меня всё сказали другие комментаторы.
8. bonv 1140 29.04.20 13:59 Сейчас в теме
(5) Давайте по пунктам:
Не имеет, здесь используется "чистый" код 1С, без встраивания сторонних библиотек и прочего, с которыми еще надо разобраться как работают.

Что в вашем понимании "чистый" код 1С?

Не написано, ни где использовалась, ни как использовалась, ни примеры работы, голый код. Да ещё неработающий.

Вы же прокрутили дальше заголовка? Собственно вся статья про то как использовать на примерах.
Что в вашем понимании голый код?

Да ещё неработающий.

Вы же попробовали сначала и у вас не получилось? Можно примеры неработающего кода?
10. osivv 205 29.04.20 15:20 Сейчас в теме
(8) У нас с вами разные задачи. У вас вроде универсальный вариант. У меня "заточенный" под WordPress.
Ваш с WordPress работает?
11. bonv 1140 29.04.20 15:31 Сейчас в теме
(10) Прочитайте мои вопросы, они достаточно конкретные. Ответы я на них так и не получил.

Я нигде не утверждал, что моя библиотека заточена под WordPress.
Библиотека заточена на работу с HTTP на клиентской стороне.
12. osivv 205 29.04.20 17:18 Сейчас в теме
(11)
Я нигде не утверждал, что моя библиотека заточена под WordPress.
Библиотека заточена на работу с HTTP на клиентской стороне.

Аналогично. Я просто спросил.
7. iliabvf 29.04.20 10:49 Сейчас в теме
Решил данную задачу через соединение с MySQL на определенный IP. Сделал вывод что легче сразу работать с БД сайта.
vladimirmatancev; +1 Ответить
9. osivv 205 29.04.20 15:12 Сейчас в теме
(7)
Решил данную задачу через соединение с MySQL на определенный IP. Сделал вывод что легче сразу работать с БД сайта.

Конечно легче, только есть парочка "но".
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?
Как с безопасностью?
Соединение постоянное? Если да, то как поддерживать постоянно?
Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.
14. Diversus 2156 29.04.20 20:00 Сейчас в теме
(9)
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?

DNS - это получение IP-адреса по наименованию хоста. Моветона нет и не может быть, если IP-адрес постоянный. И с базой 1С достаточно часто работают по IP. Например, когда компьютер соединяется с рабочей сетью через VPN. Доступ к сети с базой 1С есть, а вот DNS-записей нет, так как используется VPN. Напрасно вы так.

Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.

С MySQL автор комментария наверняка работает через ADODB.Connection, поддерживать соединение постоянно нет необходимости, только когда запускается обмен. А вот с безопасностью беда, как сказал выше.
vladimirmatancev; +1 Ответить
19. iliabvf 02.05.20 09:43 Сейчас в теме
(9) IP клиентский, как раз чтобы была безопасность. Соединение периодическое. Читаются новые заказы, и связанные с ними товары и клиенты.
13. Diversus 2156 29.04.20 19:50 Сейчас в теме
(7) Открытие доступа к MySQL во вне - это плохо с точки зрения безопасности (даже если соединение на определенный IP).
На крупных проектах такое не подойдет.
21. iliabvf 05.05.20 09:40 Сейчас в теме
(13) Тут по подробнее, почему?
22. FreeArcher 111 07.05.20 04:23 Сейчас в теме
А как насчет другой истории. Не из 1С отправлять данные на сайт, а с сайта забирать данные из 1С посредствам HTTP сервисов? Мне кажется это более гибкое решение.
23. osivv 205 07.05.20 11:12 Сейчас в теме
Оставьте свое сообщение

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    57301    Serginio    33    

API ОФД-Я разбор документации с примерами

WEB v8 1cv8.cf Россия Бесплатно (free)

Примеры запросов 1С для получения данных с ОФД-Ярус через API.

20.04.2021    484    www76    0    

Работа через сервис 1С-Отчетность нескольких пользователей

Регламентированная отчетность Зарплата WEB v8 v8::СПР ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

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

05.04.2021    868    keat24    1    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    7956    Nikola23    35    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    26715    ruha    21    

Как отправить сообщение Telegram в группу?

WEB v8 Россия Бесплатно (free)

Отправка сообщения в группу Telegram.

01.03.2021    1107    kite2    2    

Альфа-Авто 5.0 и современные HTTP сервисы

WEB v8 1cv8.cf Автомобили, автосервисы УУ Бесплатно (free)

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

01.03.2021    690    osivv    1    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

WEB v8 Россия Бесплатно (free)

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    761    user823999    6    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42529    YPermitin    41    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB v8 1cv8.cf ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    14112    jenyavp    45    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2507    SizovE    25    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

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

24.11.2020    905    SizovE    4    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30994    anig99    6    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

WEB v8 1cv8.cf УУ Бесплатно (free)

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    5418    markbraer    11    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1875    SizovE    2    

Web Dashboard (мобильная и десктопная версия): оптимальная схема организации взаимодействия с зоопарком систем

WEB v8 Бесплатно (free)

Задача: из множества систем (1С:ERP, 1C:CRM, Кронос:WMS, 1С:Розница, 1С:УПП...) оперативно и онлайн осуществлять мониторинг на телефоне/десктопе/планшете/телевизоре бизнес-аналитику в дашборде для директора. Рассмотрим в статье, как правильно интегрировать между собой все базы, какие для этого инструменты использовать.

10.11.2020    9261    SizovE    2    

Отладка модуля ДиадокПро

WEB v8 1cv8.cf Бесплатно (free)

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    2571    Максим-777    14    

JSON примеры меню B2B web-приложения "Личный кабинет" на движке EDIbot для телефона/десктопа

WEB v8 Бесплатно (free)

Рассмотрим на примерах работу движка EDIbot при организации меню B2B "Личного кабинета" (мобильная версия, версия десктоп) грузовладельца WMS-системы.

29.10.2020    1089    SizovE    0    

Обмен с сайтом посредством Post-запроса, json

WEB v8 1cv8.cf Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    4640    John_d    26    

Организация HTTP публикации каталога товаров используя PostgREST

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу порядок установки настройки и использования PostgREST на примере организации каталога товаров.

05.10.2020    1267    malikov_pro    2    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

WEB v8 Бесплатно (free)

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    2048    dmitry-irk38    4    

Отладка http сервиса

WEB v8 Бесплатно (free)

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    3498    hpi    10    

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

WEB v8 1cv8.cf Бесплатно (free)

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    6671    hpi    7    

Организация данных и вариант обработки для организации обмена с сайтом

WEB v8 1cv8.cf Бесплатно (free)

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

22.09.2020    1639    malikov_pro    4    

Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации

Практика программирования Обмен данными 1С WEB v8 1cv8.cf Бесплатно (free)

В статье показан пример, как реализовать формирование списка документов клиента/пользователя по коду, а затем скачать его (документа) печатную форму по ссылке

18.09.2020    1270    R_o_n_n_y    3    

Формирование HTTP запроса формата multipart/form-data с двоичными данными, используя ПотокВПамяти

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант формирования запроса

11.09.2020    3978    malikov_pro    11    

Ферма приложений на Kubernetes

WEB v8 Бесплатно (free)

При эксплуатации большого количества информационных систем 1С, предоставляющих интернет-сервисы, возникают проблемы, связанные с зависимостью от производительности и стабильности веб-сервера. Как объединить отдельно стоящие веб-сервера с помощью платформы Kubernetes для централизованного мониторинга всех опубликованных интернет-сервисов на конференции Infostart Event 2019 Inception рассказал программист компании BIA Technologies Владимир Кирбаба.

24.08.2020    1958    ComboBoy    1    

Использование шаблонного процессора для формирования HTML страниц

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу использование шаблонного процессора Handlebars запущенного на Node.js

24.08.2020    1814    malikov_pro    26    

Загрузка или обновление файла на яндекс диске через rest-api

Практика программирования Файловые протоколы обмена, FTP WEB v8 Бесплатно (free)

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

12.08.2020    3191    pavelpribytkin96    10    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    8827    YPermitin    22    

Загрузка или обновление файла на гугл диске

Практика программирования Файловые протоколы обмена, FTP WEB v8 1cv8.cf Бесплатно (free)

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

06.08.2020    2269    pavelpribytkin96    6    

Использование Yandex Translate (Яндекс.Переводчик)

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант подключения и использования Yandex Translate.

08.07.2020    5346    malikov_pro    8    

Когда хотим знать IP клиента...

WEB v8 Бесплатно (free)

В процессе разработки web приложения на 1С, и это не шутка))), а пожелание заказчика, возникла ситуации когда понадобилось знать, с какого IP подключался клиент.

03.07.2020    8009    IMihalev    10    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    8134    malikov_pro    9    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    2000    malikov_pro    0    

Вариант использования документа "Операция по Яндекс.Кассе" для других сервисов по оплате через интернет

WEB v8 1cv8.cf Россия Бесплатно (free)

В статье рассмотрю организацию эквайринга в УТ 11.4 и доработки для создания заказов на оплату к стороннему сервису, как пример Сбербанк.

24.06.2020    1694    malikov_pro    3    

Работа с AliExpress через API

WEB v8 Бесплатно (free)

В публикации опишу подход работы с API AliExpress и примеры кода.

23.06.2020    7464    malikov_pro    32    

История создания успешной системы чат-ботов на 1С

WEB v8 Бесплатно (free)

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    8895    CyberCerber    15    

Парсинг html страниц с выводом информации через JavaScript с использованием Selenium

WEB v8 1cv8.cf Бесплатно (free)

Есть девочки как девочки, есть мальчики как мальчики, есть сайтики как сайтики, но странички их обманщики. В целях сохранить информацию, от автоматизированного сбора, многие ресурсы пытаются защитить ее. Один из таких способов - вывод информации на странице через JavaScript. При получении такой страницы в 1С, JavaScript не успевает вывести необходимые данные, и в 1с получаем практически пустую страницу. В статье приведу пример разработки, для парсинга таких страниц, без регистрации и смс.

20.05.2020    7024    platonov.e    25    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Публикация картинок и категорий товаров. Внешняя обработка

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

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции передачи фото из 1С и категорий товаров на сайт. Внешняя обработка с комментариями внутри.

2 стартмани

16.05.2020    1814    6    osivv    0    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров

WEB v8 1cv8.cf Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.

13.05.2020    4040    osivv    3    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг второй, публикация картинок

WEB v8 Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции передачи фото из 1С, с комментариями внутри.

13.05.2020    2622    osivv    0    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5396    zhichkin    30    

Выразительный Web API

WEB v8 Бесплатно (free)

Теория разработки Web API с ожидаемым поведением, за который не будет стыдно за пределами мира 1С.

27.04.2020    8815    nbeliaev    22