Обработка POST запросов 1С в связке с Apache

13.08.14

Администрирование - Администрирование веб-серверов

Обработка POST запросов 1С в связке с Apache для тех, кто хотел бы получить некоторые практические советы.

Файлы

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

Наименование Скачано Купить файл
POST.zip
.zip 0,66Kb
32 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Приветствую всех читателей infostart’a. Данная статья будет посвящена интересному вопросу обработки POST запросов средствами 1С и HTTP– сервера Apache.

Особенности задачи.

Однажды предо мной встала задача обеспечить обработку POST запросов средствами 1С. То есть 1С должна была принять POST запрос, обработать его, выполнить запись в базу определенной информации и вернуть ответ на запрос в виде XML. Это популярная тема в свете различных терминальных платежей и платежей через интернет. До этого такими задачами я не занимался. Сразу скажу, что база 1С работала в обычном приложении, версия 1С 8.2 файловый вариант. Кроме того было выставлено ограничение, а именно: база 1С не должна быть видна извне.

Поиск необходимой информации.

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

Основная проблема 1С в том, что она одновременно может обрабатывать только один POST запрос. Поясню подробней. Если, например, придет POST запрос и 1С начнет его обрабатывать и что-то там записывать в базу, то запрос,пришедший в это время, пока 1С обрабатывает предыдущий, будет проигнорирован вообще. Это никуда не годилось. Нашел платную обработку, которая к тому же требовала наличия MSNetframework4. Она позволяла обрабатывать несколько запросов одновременно, в порядке очереди, но количество таких запросов было невелико, что-то 4-5. Данный вариант был не приемлем, т.к. объяснения принципа работы были мне не очень понятны и я не знал, поможет ли мне это решить техническое задание, поэтому я решил с ней не связываться. К тому же смущало наличие MSNetframework 4. И я, на самом деле, не знал, насколько это надежно сточки зрения безопасности. А безопасность – выставлялось как основное условие.

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

Решение задачи.

Ища на просторах интернета нужную информацию, я определил для себя, что на самом деле уже есть программы, которые умеют обрабатывать POST запросы очень хорошо. Это HTTP – сервера. К тому же они бесплатны, что немаловажно. Я остановился на Apache. Осталось только придумать, как связать 1С и Apache. Собственно схема, придуманная мной, была такой. POST запрос принимает Apache, обрабатывает,сохраняет в виде txt файла и кладет его в папку, которая расшарена (видна в локальной сети). 1С,соответственно, с периодичностью 1 раз в секунду проверяет эту папку на наличие такого файла, и, найдя его, обрабатывает и возвращает XML ответ. Оговорюсь,что XML ответ – это обычный файл в формате xml. Я это подчеркиваю, т.к. что такое POST запрос, мне было понятно, а вот что такое XML ответ, я сразу понял. Надеюсь, гуру php не будут смеяться. А вот новичкам этого дела – это очень полезная информация. Осталось самое «простое», реализовать задуманное, и я принялся за дело.

Я имел только общие понятие о скриптах php, которые и обрабатывал Apache. Осмотр команд php показал, что в принципе, ничего сложного нет, а все команды ориентированы под нужды интернет сервера. Нужно было написать скрипт php,который создает txt файлы и «подсовывает» их в нужную папку. Это было успешно сделано (пример скрипта с комментариями можно скачать).

Удаление отработанных файлов было положено на 1С. Это важно. Apache только принимает запросы, обрабатывает их и выкладывает txt файлы в расшареную папку. Apache может одновременно обработать очень много запросов, и создать нужное количество файлов и ждать ответа. А 1С, не спеша обрабатывает txt файлы и отвечает XML ответами.

Послесловие.

Надеюсь, статья окажет помощь тем программистам 1С, которые сталкиваются с такими задачами. Также, если статья понравится сообществу infostarta’a, то в продолжение опишу особенности создания XML ответов.
***
В архиве пример скрипта с комментариями, которые позволят программисту понять как создать собственный скрипт.

Вступайте в нашу телеграмм-группу Инфостарт

Apache POST запрос 8.2

См. также

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    9771    42    60    

56

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    1533    2    0    

4

Администрирование веб-серверов Сервера HighLoad оптимизация Системный администратор Программист Бесплатно (free)

Каждый вечер в час закрытия смен 200 касс розничной сети начинали «залипать», и у всех было готовое объяснение: блокировки. Аудит ожиданий в час пика показал: блокировок — ноль. Сессии ждали не друг друга, а свободных потоков: заводские cost threshold for parallelism = 5 и MAXDOP = 0 на 48-ядерном сервере отправляли даже лёгкие запросы разбегаться по всем ядрам, и две трети запросов стояли в очереди за потоками. Разбираем детектив: почему рефлекс «вечером тормозит — значит, блокировки» подменяет диагностику, как читается картина ожиданий, причём тут сосед по инстансу с отчётом на 24 потока и 4,3 часа — и как две динамические настройки без перезапуска сняли проблему в тот же вечер. С чек-листом «блокировки или параллелизм».

28.07.2026    1302    nedomolkov.ivan    4    

8

Администрирование веб-серверов Системный администратор 1С:Предприятие 8 Бесплатно (free)

Альтернатива Fiddler для локальной разработки/отладки/понимания Web-сервисов, чтобы смотреть тело и заголовки запроса/ответа.

02.06.2026    948    gordey_kachurin    0    

0

Администрирование веб-серверов Системный администратор Программист Россия Абонемент ($m)

PowerShell-скрипт автоматической установки Apache HTTP Server 2.4 на Windows. Поддерживает несколько экземпляров на разных портах, бэкап, брандмауэр, логирование. Компилируется в exe. Две версии: RU и EN.

7 стартмани

27.03.2026    1447    4    imiron_ru    3    

5

Администрирование веб-серверов Системный администратор Программист Россия Абонемент ($m)

Apache HTTP Server на Windows. Установка и настройка вручную — пошаговое руководство.

5 стартмани

27.03.2026    4181    imiron_ru    0    

13

Администрирование веб-серверов Системный администратор 1С 8.3 Россия Абонемент ($m)

Публикация http-сервиса через Apache под Windows, с использованием ssl клиентского сертификата p12. База реализующая обработку запросов GET, POST с получением и передачей JSON

1 стартмани

23.01.2026    2608    ЕСТЬNULL    0    

6

Пароли Администрирование веб-серверов Системный администратор Программист Россия Абонемент ($m)

Для запуска базы, опубликованной на вебсервере через тонкий клиент (win/linux) с доменной авторизацией. Подходит для запуска тонкого клиента (база web публикация) с устройств не в домене, например для работы внешних пользователей.

1 стартмани

03.01.2026    4210    1    shooshpanius    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. _smile_ 13.08.14 10:53 Сейчас в теме
Интересно, спасибо!
2. pythonchik 13.08.14 11:07 Сейчас в теме
Так если уже PHP используется, почему не заставить скрипт вместо формирования файлов напрямую дергать web-сервисы самой 1С?
3. profiprog1c 259 13.08.14 11:32 Сейчас в теме
(2) pythonchik, Понимаете, я программист 1С,но не php кодер. Время на изучения php не было, да и не было желания, поэтому и реализовал через 1С.
4. zelevova 20.08.14 16:11 Сейчас в теме
(3) profiprog1c, я так понимаю предыдущий оратор имел ввиду что пусть апач не выбрасывает файлы, а делает запрос к веб-сервису 1с и сразу от 1с получает ответ, который и вернет ответом на исходный запрос. Тем самым мы уходим от использования файловой системы. а собственно веб-сервис реализуется средствами 1с.

Хотя возможно здесь сработает ограничение описанное в самом начале.
5. profiprog1c 259 20.08.14 17:44 Сейчас в теме
(4) zelevova, Тут, понимаете, в чем дело, немного сложнее. Задача ведь не просто получить XML ответ от 1С, а произвести определенные записи в базу данных в зависимости от запроса и только потом дать ответ. Есть еще процесс отладки. Эти все манипуляции по обработке и записи в базу не совсем простые. Поэтому с моей точки зрения механизм файла надежней. Да и отладки в php как таковой нет вообще.
6. nSpirit2 20.08.14 17:44 Сейчас в теме
И тут афтор изобрел очередь. Я всегда жду от таких публикаций чего-то прям сверхестественного. Но ничего не происходит как быть скажем с тем что нарушилась связь 1с и хранилища файлов. Вы дали доступ апатчу. Я Думаю у решения много проблем исходя из того что вы не программист PHP(И это хорошо). Файлы плохо целостность очереди не какая. Как реализован порядок выбора файлов? Как происходит обратная связь? Ну а вообще конечно + тема весьма интересная!
7. profiprog1c 259 20.08.14 19:07 Сейчас в теме
(6) nSpirit2, Понятны Ваши сомнения, в принципе в скрипте который можно скачать есть некоторые ответы на эти вопросы. Да и целостность нормальная - обеспечивается временем создания файлов. Обратная связь лежит на 1С. Я скорее всего создам продолжение этой статьи, если еще накопятся вопросы.
8. GOshaSaveiko 39 20.08.20 11:35 Сейчас в теме
А почему не использовать обыкновенный брокер сообщений из Apache Kafka, RabbitMQ, Amazon MQ? Они ведь именно для этого и предназначены
Для отправки сообщения требуется регистрация/авторизация