Как сделать подключение к базе 1С из PHP?

Я исследую возможность завязать 1С-приложение (через которое ведется учет товаров, поставщиков, продаж, отгрузок, генерация накладных и т.п.) с веб сайтом.
Чтобы заказчик мог через веб-сайт сгенерировать себе счет для оплаты, узнать наличие товаров и т.п.

Кто-нибудь сталкивался с подобными рода задачами? Возможно ли из php подключиться к базе 1C напрямую? (Я понятия не имею, как устроен 1С и какие БД там используются)

Два программиста с которыми я консультировался сказали что вроде как есть возможность интеграции но как именно это сделать так никто и не ответил. Возможно ли сделать так, чтобы 1C отвечал по какому нибудь интерфейсу на нужные запросы, например выдавал список клиентов или список доступных товаров? Или можно сделать только экспорт в файлик, который потом можно будет прочитать?

UPD: Всем огромное спасибо за помощь! Вопрос закрыт. Будем пробовать подключиться напрямую и выбить из 1С-разработчиков информацию о внутреннем устройстве БД
  • Вопрос задан
  • 29133 просмотра
Решения вопроса 2
shogunkub
@shogunkub
Программист+Инженер-электронщик
Во-первых, неплохо бы версию 1С озвучить. Если это 8, то рекомендую поковырять в сторону Web-сервисов: v8.1c.ru/overview/Term_000000273.htm
Если хотите работать напрямую с БД — то во-первых проблема с тем, что СУБД далеко не одна, в случае 8.2 может быть аж 5 различных:
— MS SQL
— PostgreSQL
— IBM DB2
— Oracle
— Файловый вариант(собственный формат)
С последним практически нереально работать напрямую, с остальным — в принципе возможна прямая работа, но курить придётся много — официальной документации по устройству таблиц нет. Хотя есть внутренний метод GetDBStorageStructureInfo(), который поможет несколько прояснить картину.
В случае 7.7 всё с одной стороны сложней, с другой проще. Сложней — потому что современных средств интеграции нет, проще — потому что устройство таблиц давно расковыряли и документация есть вполне подробная: www.script-coding.com/v77tables.html
Ну и вариантов СУБД меньше — DBF и MSSQL, других вариантов нет.
Ответ написан
Комментировать
@da0c
На сколько я помню, подобный вопрос уже поднимался, но немного в другой формулировке.
Т.е. вам, как я понимаю нужно часть данных из 1С показывть онлайн.

Классическое решение от 1С — Битрикс использует следующую схему — выгрузка из 1С в CommerceML (ну в смысле в XML стандартизированного формата CommerceML) и загрузка этого дела на сайт.
Таким образом вы можете загрузить на сайт актуальный ассортимент, прайс лист и остатки на складах.
С сайта вы можете также в XML выгрузить нужные вам счета/заказы и загрузить их в 1С.
Механизм, который позволяет 1С выполнять обмен данными через сереализацию в XML называется конвертацией данных или обменом, конкретный обмен задается правилами обмена (тоже записанными в XML)/ Единтственное, вам конено придется настроить правила обмена, так чтобы 1С отдавала нужные вам данные, а также настроить правила загрузки данных с сайта. Настройка правил обычно выполняется на основе типового шаблона с использованием для допиливания специальной конфигурации, которая так и называется — «Конвертация данных».

Обмен через XML в этом слчае предпочтителен, т.к. вас наверное сервер 1С и web сервер тереторриально разнесены. Т.е. в таком случае COM однозначно не катит, возможен конечно доступ непосредственно к SQL серверу на котором лжит 1С — но здесь тоже непросто, как минимум, для того чтобвы записать счета/заявки в напрямую в SQL базу 1С придется поколдовать (хотя это возможно, и мы так делали).
Дак, как напиасно выше 1С позволяет использовать SOA обертку, но работа с ней требует большего кода на стороне 1С и в целом более сложный механизм, однако позволяет работать с данным полность в реальном времени. Т.е. если в случае выгрзки XML вы можете обновлять на сайте остатки насайте каждый час, то при использовании веб сервиса 1С вы бдете видеть всегда актуальные остатки. Как правило такой оперативности не требуется, если же это то, что вам надо — пишите, распишу иеханизм веб сервисов.

Если требуется более подробный совет пишите в личку — посоветуем, а если надо и поможем;-)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@cat_crash
1С может работать на нескольких «движках» БД:
— Postgres (не нативно а через костыли)
— MS SQL
— DBase (dbf)
Все перечисленные способы подключения поддерживаются в PHP.

Отвечая на вопрос — да, подключиться к БД можно.

В 1с версии 8 уже есть понятие веб сервисов и можно общаться с 1с через SOAP интерфейс.

Экспорт сделать можно в любой текстовый формат или через COM объект в любой другой
Ответ написан
mix2000
@mix2000
«Будем пробовать подключиться напрямую и выбить из 1С-разработчиков информацию о внутреннем устройстве БД „
В целом бредовая затея.

Если версия 8.1 и выше, то есть смысл попробовать веб-сервисы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы