


Как интегрировать 1с 7.7 с сайтом на php так, чтобы связь между ними была двусторонняя?
Есть сайт сделанный на php-фреймворке.
Мне предстоит решить две непростых задачи.
1) Есть форма с полем выбора контрагента. При написании чего-либо в этом поле под ним появляется select с выбором возможных агентов. (пример того, как это выглядит, см. на прикреплённом скрине)
Контрагенты берутся из базы в 1с 7.7, их около 5к.
Необходимо получить и вывести названия контрагентов в этом самом select-е.
Для начала нужно хотя бы просто _получить_ их в каком-то виде. Неважно, можно даже в бинарном.
2) На сайте есть создание заказа. Заполняется информация о контрагенте (даже если он физ. лицо) и все нужные поля для того, чтобы потом занести их в базу на 1с.
На стороне 1с заказы хранятся в журнале "Заказы".
Необходимо после создания заказа на сайте продублировать заказ в базе 1с.
Оборудование для работы:
- дописанная конфигурация 1с 7.7 "Торговля и склад", редакция 8.7. Дописывалась в 5 веке до н. э.
- сервак с 1с на борту (не VPS). На него же будет поставлен сайт.
Если у вас есть опыт двусторонней интеграции с 1с 7.7, пожалуйста, поделитесь как бы вы реализовали данные задачи) Или подкиньте идеи, как будет лучше сделать, чтобы всё работало, но не было так костыльно.
На данный момент вторую задачу решил очень костыльным методом, но он настолько костыльный, что даже рассказывать стыдно)
Создал общую для 1с и сайта папку (к примеру D:/Common/), с помощью внешней компоненты vk_ChangeNotification отслеживаю события в папке.
При создании заказа создаю файл с названием new_order, в который пишу id заявки с сайта. В 1с проверяю название созданного файла и в ней же делаю запрос к сайту на получение заявки по id, после чего сохраняю.
На компе с 1с создан скрытый юзер и 1с с обработкой, описанной выше, поставлена на автозагрузку винды.
Т. к. одновременно может быть больше чем 1 заявка, то думал ещё по поводу сервера очередей, который по очереди обработает одновременно пришедшие заявки ввиду однопоточности пыхи.
Есть ещё один вариант решения задачи: в общей папке создать файл, в котором хранить список id заказов с сайта, и по крону каждые X минут/часов запускать выгрузку с сайта.
Первую задачу пока не решил, но есть вариант решения.
Т. к. контрагенты примерно одни и те же (база на один маленький город в 500к человек + область), то по крону делать выгрузку на сайт из 1с каждые X минут/часов.
Гуглил по поводу CommerceML, но в примерах есть лишь интеграция с сайтом на битриксе, у меня же сайт на Yii2. Поэтому ввиду ограниченного времени решил не заморачиваться и сделать вот такой вот костыль.
Но чувствую, что очень сильно всё усложнил и что можно было сделать всё проще. К тому же, система скорее всего будет нестабильна.

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