Как интегрировать СУБД FileMaker и 1С?
========================================

 Есть основная СУБД, в которой сотрудники работают 90% времени, но для выписки счетов и проверки их оплаты (так как вносит бухгалтер) всё равно приходится использовать 1С (8.2 на PostgreSQL). Каким образом лучше автоматизировать этот процесс **(создание счета и получение статуса о его оплате):** обмен через файлы, доступ по ODBC, веб-сервисы, как-то еще?  

  

Многоопытные хабражители, подскажите, как справиться с такой напастью. 

 Кому интересно — сделали через ODBC. Логика обмена реализована на стороне 1С в самописной внешней обработке, которая обращается в FM через ODBC-драйвер. Не без тонкостей, но срослось. 

 Лично я бы делал это из FileMaker: создание счета — через Execute SQL, получение статуса — через Import ODBC. (Предполагается, что Postgres доступен через ODBC.) Если бы это был MS SQL, MySQL или Oracle, то можно было бы подсунуть их FileMaker в качестве внешнего источника данных. 

 1. Непрямой доступ возможен через OLE интерфейс самой 1С- можно получать данные в виде COMSafeArray. Другой способ, но он вам наверное ни к чему, написать внешнюю компоненту к 1С в качестве прокси.  

2. Прямой доступ ч/з ODBC тоже вариант, т.к. быстрее, чем через OLE. Структура SQL-ной базы 1С документирована, просто она генерится автоматом на основе метаданных, следовательно, может меняться при внесении изменений в конфигурацию базы (например, при обновлении).  

Общая концепция структуры таблиц 1С описана в книжке Радченко «Профессиональная разработка на платформе 1С предприятие 8.0», узнать соответствие конкретных объектов 1С и структуры таблиц постгреса можно при помощи функции ПолучитьСтруктуруХраненияБазыДанных().  

  

Это в двух словах, если нужны подробности — спрашивайте, напишу развернуто. 

 Вопрос а если выгружать эту информацию в файл и потом загружать в необходимую вам СУБД?   

У меня как человека работающего с 1С, вырисовывается только такое решение, так как в режиме онлайн это будет долго 

 Топик, конечно, устарел, но наткнулся только сейчас:  

Возможно, наиболее, надежный способ - это обмен файлами (xml или csv).   

Есть еще вариант обратится к FileMaker Server по http-запросу, заставив его исполнить нужный скрипт с нужными параметрами. На выходе вы получите xml с данными того лайота, на котором закончил работать скрипт. То есть FM вернет вам, те данные которые вы у него запросите (в вашем случае, например, новый выписанные счета).   

Подробно техника описана тут:  

[fmteam.ru/vypolnenie-skriptov-na-servere-v-filemak...](http://fmteam.ru/vypolnenie-skriptov-na-servere-v-filemaker-versij-9-12/)