Обмен с сайтом: POST запрос и создание счета, с возвратом его номера в ответе

03.04.25

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

Пошаговый пример обмена с сайтом путем POST запроса и создания счета, с возвратом его номера в ответе с описанием некоторых ошибок, и обработка с примерами get и post запроса.

Скачать файл

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

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

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

Ниже пример настройки обмена с нуля с использованием Апач, по справочнику номенклатура.

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

В модуле http сервиса пишем максимально мало - желательно только вызов процедуры с общего модуля, на этом моменте глючит часто.

Ставим другой порт, не стандартный, для безопасности.

Также авторизацию через логин + пароль или токен.

В обработке пример get и post запроса + формирование json и заполнение в 1С. Освещу некоторые моменты:

АдресРесурса = "/InfoBase/hs/products/Create_DOC/";

Например - база опубликована под именем InfoBase, products - имя http сервиса, Create_DOC - имя метода.

 

Настройка и публикация веб-сервиса 1С на Apache с тестированием через Postman

 

1. Установка веб-сервера Apache

Для работы веб-сервиса на 1С потребуется веб-сервер. Рассмотрим установку Apache.

 

1.1 Установка Apache на Windows

  1. Скачать Apache
    Перейдите на https://www.apachelounge.com/ и загрузите последнюю версию.

  2. Распаковать и настроить

    • Распакуйте архив в C:\Apache24

    • Перейдите в C:\Apache24\conf\httpd.conf и откройте его в блокноте.

    • Найдите строку и измените:

      Listen 80

      Listen 8080

      (или другой порт, если 80 уже занят - полезно для безопасности сервера).

  3. Запуск Apache

    • Открываем командную строку (cmd) от имени администратора.

    • Переходим в каталог Apache:

      cmd

      cd C:\Apache24\bin

    • Запускаем сервер:

      cmd

    • httpd.exe -k start

    • Проверяем работу: откройте браузер и введите http://localhost:8080/ – должна отобразиться стандартная страница Apache.


2. Публикация веб-сервиса 1С

Теперь настроим веб-сервис на стороне 1С.

 

2.1 Включение веб-сервисов

  1. Открываем Конфигуратор 1С.

  2. Переходим в Администрирование → Поддержка и обслуживание → Параметры веб-сервера.

  3. Включаем поддержку HTTP-сервисов. - убеждаемся что наш сервис с галочкой.

 

2.2 Публикация конфигурации

  1. В Конфигураторе переходим в меню Администрирование → Опубликовать на веб-сервере.

  2. Указываем:

    • Каталог публикации: C:\Apache24\htdocs\1c

    • Адрес публикации: http://localhost:8080/1c

  3. Нажимаем ОК, ждем завершения публикации.


3. Настройка обработчика в 1С

Теперь создадим HTTP-сервис для приема POST-запросов.

 

3.1 Создаем общий модуль

  1. В конфигурации создаем Общий модуль HTTPОбработчик и выставляем ему Серверный, Внешний вызов.

  2. Вставляем код обработки запроса:

Процедура ОбработатьPOST(Запрос, Ответ) Экспорт                                                                     Ответ = Новый HTTPСервисОтвет(200);

ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку(); // Разбираем JSON Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(ТелоЗапроса);

Данные = ПрочитатьJSON(Чтение, Ложь);

Если ТипЗнч(Данные) = Тип("Массив")

Тогда Данные = Данные[0]; // Берем первый элемент массива может прислать структуру - тогда ОК

КонецЕсли; // Создаем новый элемент справочника "Номенклатура"

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

НовыйЭлемент.Наименование = Данные.Наименование;

НовыйЭлемент.Код = Данные.Код;

НовыйЭлемент.Записать(); // Формируем ответ

РезультатJSON = Новый Структура;

РезультатJSON.Вставить("ID", НовыйЭлемент.Ссылка.УникальныйИдентификатор());

РезультатJSON.Вставить("Наименование", НовыйЭлемент.Наименование);

РезультатJSON.Вставить("Код", НовыйЭлемент.Код);

Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); Ответ.УстановитьТелоИзСтроки(ЗаписатьJSON(РезультатJSON));

КонецПроцедуры

 

3.2 Создаем HTTP-сервис

  1. Создаем новый HTTP-сервис (СервисPOST).

  2. Добавляем метод ОбработатьPOST и связываем его с модулем HTTPОбработчик.ОбработатьPOST.

  3. Публикуем.


4. Тестирование через Postman

  1. Открываем Postman.

  2. Создаем новый POST-запрос к:

    http://localhost:8080/1c/hs/ServicePOST/

  3. В Body (raw, JSON) вставляем:

    json

    { "Наименование": "Тестовая номенклатура", "Код": "12345" }

  4. Нажимаем Send.

  5. В ответе получим JSON:

    json

    { "ID": "a1b2c3d4", "Наименование": "Тестовая номенклатура", "Код": "12345" }


5. Решение возможных проблем

 

Ошибка 405 (Method Not Allowed)

  • Убедитесь, что метод POST разрешен в Apache. В httpd.conf добавьте:

    <Directory "C:/Apache24/htdocs/1c"> Options Indexes FollowSymLinks AllowOverride None Require all granted <LimitExcept GET POST> Deny from all </LimitExcept> </Directory>

  • Перезапустите Apache.

 

Ошибка 500 (Ошибка сервера 1С)

  • Проверьте, что код модуля обработчика компилируется без ошибок.

  • Проверьте Права пользователя 1С – он должен иметь права на создание элементов справочника и использование свежесозданного  http сервиса.

 

Ошибка "Поле объекта не обнаружено (Тело)"

  • Используйте Запрос.ПолучитьТелоКакСтроку(), если тело запроса передается в виде строки

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.71.63

Обмен с сайтом http пример создания

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2946    5    0    

11

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35031    69    45    

28

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    2697    2    3    

5

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1023    6    2    

9

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

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

24000 руб.

27.09.2024    4607    4    2    

5

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

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

36000 руб.

03.08.2020    19254    23    22    

20

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    19018    54    50    

31
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 78 03.04.25 13:20 Сейчас в теме
У вас обе базы в локальной сети?
2. Дамир1 5 03.04.25 14:06 Сейчас в теме
Это пример локальной - если нужен доступ через интернет то нужен постоянный IP и вместо localhost будет внешний IP адрес
Оставьте свое сообщение