1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API





Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

Публикую 2 обработки по обмену данными из 1С с сайтом/магазином WordPress/Woocommerce. В них показаны принципы позволяющие публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce, получать ответы от сайта/магазина.

  1. ОбменССайтом_RestAPI_БезКомментариев — моя первая рабочая обработка сделанная в декабре 2024, связанная с темой REST API WordPress/Woocommerce. "Голый" код, без комментариев. Разработана под конфигурацию "Альфа-Авто", для "ассов" 1С готовых разбираться в "замусоренном" коде. Присутствует дополнительный код, связанный с обменом непосредственно для "Альфа-Авто" и сайтом, может подчерпнете что-то полезное. Сделана "я его слепила, из того, что было", вопросы, запросы, просьбы о комментариях и т.д и т.п. не поддерживаются.
  2. OsiW_1C_WordPress_RestAPI_Client_InfoStart_FullHelp — потомок обработки из п.1, "вылизанная", оптимизированная, с минимально необходимым кодом для обмена с сайтом/магазином WordPress/Woocommerce, со встроенной справкой по использованию, комментариями к коду. Привязки к какой-то конфигурации нет, подойдет для любой которая использует обычные формы. Сделана под стандарты REST API WordPress: Маршруты (Routes), Конечные точки (Endpoints), Запросы (Requests), Ответы (Responses). В случае необходимости готов написать статью (несколько статей) с подробным описанием работы (может вы только начинаете работать с REST API и вам не всё понятно :), пишите в комментах).

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

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

Демонстрационное видео публикации товара: посмотреть.

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

Версия WordPress : 5.2

MySQL Версия : 5.7.23

PHP Версия : 7.2.14

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

Конфигурации: Альфа-Авто: Автосалон+Автосервис+Автозапчасти, редакция 5.1 (5.1.10.09)
Платформа: 1С:Предприятие 8.3 (8.3.13.1644)

Важное замечание.
Конфигурация должна быть в режиме совместимости не ниже 8.3.6

*Данные обработки подпадают по действие Пользовательского соглашения (и в особенности п.6.1)

Здравая критика приветствуется.

С удовольствием выслушаю предложения и пожелания.

Спасибо за проявленный интерес.

14 Comments

  1. 1segen1

    Голосую за статью.

    P.S. Прошу прошения — по ошибке нажал на «-«

    Reply
  2. capitan

    Чем она от прошлых отличается ?

    Reply
  3. osivv

    (2)Добавлен обмен с магазином, оптимизирован код.

    Reply
  4. MORT32Ram
    В случае необходимости готов написать статью (несколько статей) с подробным описанием работы (может вы только начинаете работать с REST API и вам не всё понятно 🙂

    Здравствуйте, было бы просто замечательно. Скачивал Вашу обработку http://infostart.ru/public/902801/, и ее не смог проверить так как не получилось настроить Rest API со стороны Woocommerce. В настройки зашел галку поставил, токен получил, при обращении к сайту обработкой ответ 404… Цикл статей был бы великим вложением с Вашей стороны в популяризацию отличного Woocommerca среди 1Сников.

    //П.С данную обработку хотелось бы скачать, но боязно что в случае как с http://infostart.ru/public/902801/ настроить не получится.

    Reply
  5. osivv

    (4)

    //П.С данную обработку хотелось бы скачать, но боязно что в случае как с http://infostart.ru/public/902801/ настроить не получится.

    Та обработка давным давно устарела, и морально и физически, т.к. всё изменилось, сейчас генерить токен не надо, логины-пароли юзеров WC не нужны, значительно упростилось, в связи этим код 1С уменьшился.

    Напишу, только не знаю, с чего начать, подкинете план, буду признателен.

    Спасибо за проявленный интерес.

    Reply
  6. Xershi

    У своего клиента внедрили платную обработку для обмена с вукомрцем.

    Решение работает, но они сделали целую подсистему, чтобы продублировать функционал вукомерца и подобных систем.

    Ваше решение я так понимаю реализовало доступ к АПИ вукомерца.

    Статья была бы очень кстати, которая покажет базовые примеры работы с АПИ и опишет в понятиях 1С работу с вукомерц.

    В идеале описание всех методов АПИ и сущностей вукомерца, которые можно заполнить данными 1С.

    Reply
  7. lisrws

    Валерий, спасибо за разработку. Посмотрел ее, есть вопрос. В этой разработке вы авторизуетесь с помощью токена JVT. Возможно подскажете, можно ли использовать для авторизации логин и секретный ключ вукомерса и как этого добиться? в их инструкции есть раздел Authentication over HTTPS, там они вроде как подключаются через HTTP Basic Auth, но у меня никак не получается, может есть какая-то тонкость. Хотел несколько способов авторизации использовать, по желанию пользователя.

    Reply
  8. osivv

    (7)

    Возможно подскажете, можно ли использовать для авторизации логин и секретный ключ вукомерса и как этого добиться? в их инструкции есть раздел Authentication over HTTPS, там они вроде как подключаются через HTTP Basic Auth

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

    (7)

    Хотел несколько способов авторизации использовать, по желанию пользователя

    Зачем?

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

    Reply
  9. lisrws

    (8) ясно. я думал что так может кому-то удобней будет. но видимо нет. спасибо

    Reply
  10. DVBLEX

    А как картинкы крепятса до товару ? и как оны отсилаютса с товаром на сайт ?

    Reply
  11. DVBLEX

    Как прикрепить к товару не одну картинку а несколько ? Можно и без отображения просто штоб в номенклатуре были прикреплены к одному товару ? Вот есть код но он прикрепляет только одну картинку. как из него зделать так штоб можно было прикрепить не одну а хотябы 5 или 10 ?

    &НаКлиенте Процедура ПрикрепитьФайл(Команда) // ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = “”; ДиалогОткрытияФайла.Расширение = “”; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; // ДиалогОткрытияФайла.ВыбранныеФайлы = “”; ДиалогОткрытияФайла.Заголовок = “Выберите файлы”; Если ДиалогОткрытияФайла.Выбрать() Тогда ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; // Получение двоичные данные файла //ПутьКФайлу = ДиалогОткрытияФайла.Расширение; ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); // Имя = Новый ДвоичныеДанные(ПутьКФайлу); //Разширение = Новый ДвоичныеДанные(ПутьКФайлу); // Передача двоичных данные на сервер ПрикрепитьФайлНаСервере(ДвоичныеДанные); Иначе Текст = “ru = “”Файл(ы) не выбран!””; en = “”File(s) not selected!”””; Предупреждение(НСтр(Текст)); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПрикрепитьФайлНаСервере(ДвоичныеДанные) // Трансформируем объект формы в справочник-объект ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); // Присваиваем новое значение реквизиту “Данные” //РегистрыСведений.СопоставлениеДанных. = Новый ХранилищеЗначения(ДвоичныеДанные); ОбъектТекущий.Картинка = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.КартинкаИмя = Новый ХранилищеЗначения(Имя); //ОбъектТекущий.КартинкаРазширение = Новый ХранилищеЗначения(Разширение); //ОбъектТекущий.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.РегистрыСведений.СопоставлениеДанных.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); // Сохраняем изменения ОбъектТекущий.Записать(); // Данные = РегистрыСведений.СопоставлениеДанных.Данные; КонецПроцедуры

    Reply
  12. osivv

    (13)

    Как прикрепить к товару не одну картинку а несколько ? Можно и без отображения просто штоб в номенклатуре были прикреплены к одному товару ? Вот есть код но он прикрепляет только одну картинку. как из него зделать так штоб можно было прикрепить не одну а хотябы 5 или 10 ?

    Зачем вы изобретаете велосипед?

    Давно всё изобретено, используйте штатные механизмы конфигураций, УТ например.

    Вы где взяли этот код?

    Reply
  13. DVBLEX

    Ну а как их добавить в свою розработку? И откуда взять ету УТ ? Еслы купить целый пакет ради Добавленние фалов т оето как то не совсем то што мне нужно, по сколько я не буду ее юзать. Может кто срисовать в общих чертах у кого она есть как такео реализовать?

    Reply
  14. DVBLEX

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *