Обработка 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 запрос 1С 8.2

См. также

Инструменты администратора БД Администрирование веб-серверов 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Программа для Windows автоматически проверяет выбранные базы 1С:Фреш, скачивает новые ZIP-архивы и контролирует хранение последних и ежемесячных копий. Поддерживает ручное создание копий, управление настройками резервного копирования в сервисе, Планировщик заданий Windows, уведомления об ошибках, журнал, статистику и обновление с возможностью отката. Прерванная загрузка безопасно продолжается через HTTP Range, а готовый файл проходит проверку ZIP.

1 стартмани

16.10.2026    386    2    tgr123    0    

5

Администрирование СУБД Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 Россия Бесплатно (free)

Пользователь не подключается к кластеру 1С или веб-публикации, а ping ничего не говорит о нужном порте. Краткая памятка: telnet, PsPing, tcping и Test-NetConnection с разных точек сети и типовые порты 8.3.

07.10.2026    515    lyudm42ever    0    

3

Администрирование СУБД Администрирование веб-серверов Сервера Системный администратор Разработчик 1С 8.3 Россия Бесплатно (free)

Пошагово собираем двухузловой кластер серверов 1С:Предприятие 8.3.27 на Ubuntu Server 25.04: srv1cv8 и systemd, RAS, добавление worker через RAC, информационная база на внешнем PostgreSQL и публикация веб-клиента через webinst и Apache2.

06.10.2026    703    egor2shub    0    

1

Инструменты администратора БД Администрирование СУБД Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Материал для архитектора и администратора 1С, который выбирает СУБД под 8.3. Внутри условия батла PostgreSQL и MS SQL на одном железе, цифры по загрузке DT, контекст Linux-контура и способ повторить замеры через LOG и счётчики СУБД.

29.09.2026    855    panf8210gr    3    

1

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

Модель подключена к базе 1С через MCP, индикатор в приложении зелёный, а инструмент возвращает ошибку или молчит. Проверьте у себя одним запросом: откройте в браузере адрес вида http://сервер/база/hs/любое-слово: живая база спросит логин, а ответ 409 или 502 значит, что MCP тут ни при чём. Разобрал ответы HTTP-сервиса 1С по этажам: сеть, публикация, модуль веб-сервера, кластер, пользователь базы, сам сервис. 26 сентября из тринадцати подключений не работали три, и все три ломались ниже MCP. Внутри: таблица кодов с местом починки, 500 без текста и проверка модулей конфигуратором, мост, который возвращает ошибку базы успешным ответом, и скрипт на Node, который проходит лестницу сам.

28.09.2026    920    nedomolkov.ivan    0    

0

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

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

26.08.2026    2045    nedomolkov.ivan    0    

2

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

Веб-публикация работает, но сервисы иногда перестают отвечать, изредка прилетает 500, а после простоя первый вход тянется полминуты. Обработка разбирает файл публикации и живые сеансы сама, а по стороне веб-сервера печатает PowerShell-скрипт администратору и разбирает его ответ обратно. По каждому пункту говорит не что там написано, а чем текущее значение кончится. В настройки IIS ничего не пишет.

10 стартмани

26.08.2026    1196    0    nedomolkov.ivan    0    

0

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

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

28.07.2026    3208    nedomolkov.ivan    4    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. _smile_ 13.08.14 10:53 Сейчас в теме
Интересно, спасибо!
2. pythonchik 13.08.14 11:07 Сейчас в теме
Так если уже PHP используется, почему не заставить скрипт вместо формирования файлов напрямую дергать web-сервисы самой 1С?
3. profiprog1c 260 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 260 20.08.14 17:44 Сейчас в теме
(4) zelevova, Тут, понимаете, в чем дело, немного сложнее. Задача ведь не просто получить XML ответ от 1С, а произвести определенные записи в базу данных в зависимости от запроса и только потом дать ответ. Есть еще процесс отладки. Эти все манипуляции по обработке и записи в базу не совсем простые. Поэтому с моей точки зрения механизм файла надежней. Да и отладки в php как таковой нет вообще.
6. nSpirit2 20.08.14 17:44 Сейчас в теме
И тут афтор изобрел очередь. Я всегда жду от таких публикаций чего-то прям сверхестественного. Но ничего не происходит как быть скажем с тем что нарушилась связь 1с и хранилища файлов. Вы дали доступ апатчу. Я Думаю у решения много проблем исходя из того что вы не программист PHP(И это хорошо). Файлы плохо целостность очереди не какая. Как реализован порядок выбора файлов? Как происходит обратная связь? Ну а вообще конечно + тема весьма интересная!
7. profiprog1c 260 20.08.14 19:07 Сейчас в теме
(6) nSpirit2, Понятны Ваши сомнения, в принципе в скрипте который можно скачать есть некоторые ответы на эти вопросы. Да и целостность нормальная - обеспечивается временем создания файлов. Обратная связь лежит на 1С. Я скорее всего создам продолжение этой статьи, если еще накопятся вопросы.
8. GOshaSaveiko 40 20.08.20 11:35 Сейчас в теме
А почему не использовать обыкновенный брокер сообщений из Apache Kafka, RabbitMQ, Amazon MQ? Они ведь именно для этого и предназначены
Для отправки сообщения требуется регистрация/авторизация