Интеграция 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 174 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 174 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 174 02.05.20 11:40 Сейчас в теме
(18)
то есть тереотически лимит можно расширить получается..

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

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

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

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

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

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

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

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

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

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

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

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

Конечно легче, только есть парочка "но".
На мой, сугубо личный, взгляд, работать по IP - моветон. Для этого и придуман DNS. Вы с базой 1С тоже по IP соединяетесь?
Как с безопасностью?
Соединение постоянное? Если да, то как поддерживать постоянно?
Наверняка надо писать процедуру "прослушки" MySQL, если какие-то изменения.
14. Diversus 2108 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 2108 29.04.20 19:50 Сейчас в теме
(7) Открытие доступа к MySQL во вне - это плохо с точки зрения безопасности (даже если соединение на определенный IP).
На крупных проектах такое не подойдет.
21. iliabvf 05.05.20 09:40 Сейчас в теме
(13) Тут по подробнее, почему?
22. FreeArcher 98 07.05.20 04:23 Сейчас в теме
А как насчет другой истории. Не из 1С отправлять данные на сайт, а с сайта забирать данные из 1С посредствам HTTP сервисов? Мне кажется это более гибкое решение.
23. osivv 174 07.05.20 11:12 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

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

10.03.2016    55727    Serginio    33    

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

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

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

сегодня в 09:30    147    hpi    2    

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

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

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

вчера в 12:00    925    hpi    2    

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

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

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

вчера в 08:30    221    malikov_pro    4    

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

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

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

10.03.2017    25840    ruha    14    

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

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

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

18.09.2020    294    R_o_n_n_y    0    

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

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

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

11.09.2020    1778    malikov_pro    11    

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

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

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

24.08.2020    798    ComboBoy    0    

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

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

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

11.04.2013    41219    YPermitin    41    

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

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

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

24.08.2020    1260    malikov_pro    26    

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

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

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

12.08.2020    1379    pavelpribytkin96    10    

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

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

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

07.08.2020    4124    YPermitin    18    

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

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

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

03.06.2013    30426    anig99    6    

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

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

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

06.08.2020    1115    pavelpribytkin96    0    

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

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

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

08.07.2020    1931    malikov_pro    6    

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

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

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

03.07.2020    2868    IMihalev    10    

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

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

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

02.07.2020    5913    malikov_pro    0    

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

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

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

27.06.2020    1540    malikov_pro    0    

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

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

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

24.06.2020    1092    malikov_pro    3    

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

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

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

23.06.2020    3222    malikov_pro    11    

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

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

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

21.05.2020    6801    CyberCerber    14    

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

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

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

20.05.2020    3302    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    1065    1    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    2801    osivv    3    

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

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

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

13.05.2020    2065    osivv    0    

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

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

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

12.05.2020    3465    zhichkin    19    

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

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

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

27.04.2020    5964    nbeliaev    22    

Хранение статистики публикаций автора сообщества Инфостарт ® (мобильное приложение И ++)

Мобильная разработка WEB v8 1cv8.cf Бесплатно (free)

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

24.04.2020    2289    capitan    15    

Интеграция УАТ с топливными сервисами

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

Интеграция конфигурации Управление автотранспортом с топливными веб-сервисами.

21.04.2020    7175    RPGrigorev    2    

Интеграция 1С с веб-сервисами Лукойл ЛИКАРД

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

Описание интерфейса взаимодействия сервиса Лукойл- ЛИКАРД с информационной системой 1С.

20.04.2020    3875    RPGrigorev    0    

Ошибка инициализации модуля: HTTPСервис

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

Решение проблемы "Ошибка при работе с HTTP сервисом 500. Ошибка инициализации модуля".

13.04.2020    3001    VipDim    10    

COVID-19. Динамика эпидемии

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

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

01.04.2020    3258    Alejandro_V    6    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    12546    informa1555    31    

Коронавирус COVID-19. Статистика по странам

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

В связи с COVID-19 люди поделились на две категории: те, кто осознал, и те кто ЕЩЕ не осознал. Единственное наше преимущество перед Коронавирусом заключается в том, что информация распространяется быстрее, чем расползается "невидимка".

25.03.2020    6233    Evgen.Ponomarenko    60    

Получение html-кода страницы. JS из 1С

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

Получение исходника страницы, выполнение произвольного js-кода. Теперь с WebKit от 1С.

18.02.2020    6107    Yashazz    1    

Отладка конфигурации в режиме веб-клиента

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

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

12.02.2020    4802    gamletspb    3    

Анализ работы внешней обработки сервиса МодульКасса применительно к задаче фискализации чеков при доставке

Кассовые операции WEB v8 УТ11 Россия Бесплатно (free)

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

11.02.2020    2693    malikov_pro    0    

Вариант реализации работы с сервисом Dadata применительно к конфигурации УТ 11.4 и подобным

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

В статье описывается реализация получения данных с сервиса DaData при работе с формами справочников в конфигурации УТ 11 для дополнения информации по ФИО, ИНН, Адресу.

22.01.2020    3194    malikov_pro    7    

Двусторонний обмен с поставщиком через интернет-магазин для реализации товаров с ответственного хранения (с 01.02.2020 "Партии" не используются)

Файловые протоколы обмена, FTP WEB v8 УНФ Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Рассмотрены реализация двустороннего обмена данными с использованием API-сервиса сайта поставщика при продаже товаров со склада ответственного хранения, алгоритм движения товаров и обмена документами на примере конфигурации 1С: УНФ у партнера, который взаимодействует с поставщиком "ООО Пауэр-Интернэшнл-шины" - одним из крупнейших в России поставщиков автомобильных шин и дисков.

16.01.2020    4377    chkurs    0    

Получение номера ВСД по идентификатору 1С: Меркурий

Производство готовой продукции (работ, услуг) WEB v8 УТ11 Пищевая промышленность Россия Бесплатно (free)

Код парсинга веб страницы для получения номера ВСД в системе Меркурий.

24.11.2019    4393    ohyen    0    

Немного о интеграции с CRM AMO

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

Немного информации о том, как настроить интеграцию с CRM AMO. Пример функций для подключения к АМО и обновления заказа. Пример на основе API авторизации.

15.11.2019    4414    xxxAndricxxx    6    

Ещё немного о ИНН и сервисе DaData

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

Об использовании сервиса dadata и немного информации о возможностях получать данные по ИНН. Возможно, кому-то будет полезным.

14.11.2019    7202    xxxAndricxxx    21    

Вариант реализации клиента SOAP на примере получения остатков из MERLION

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

В статье приведу пример клиента к сервису SOAP, функции которого принимают несколько значений типа строка или массив строк.

14.11.2019    3484    malikov_pro    0    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

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

13.11.2019    9001    user665435_al.windstorm    15