Прямой доступ к данным (технология Linq)Данная технология предполагает доступ к данным 1С:Предприятие с помощью прямого запроса к SQL серверу. Основная сложность в случае прямого доступа – «специфический» подход 1С к именованию таблиц и полей в SQL базе, документация на стандарты которого фирмой 1С не распространяется. Кроме того, любое существенное обновление конфигурации может привести к изменению структуры базы данных, а значит к тому, что созданные напрямую запросы станут неработоспособными.
Способ частично разрешить проблемы прямого доступа предлагают создатели компонента Elisy .Net Bridge (назначение компонента – расширение функциональности 1С возможностями .NET, в частности, возможностью использовать классы .NET из 1С). В качестве решения предлагается обработка Elisy.LinqTo1CSql.81, генерирующая dbml-файл из 1С
(
http://www.richmedia.us/post/2009/10/linqtosql-1c-dbml-generator.aspx).
В качестве названий классов используются имена объектов из метаданных конфигурации 1С. Если имена таблиц и полей меняются вследствие обновления конфигурации, требуется заново сгенерировать dbml-файл, изменений в код классов программы при этом вносить не нужно.
Преимущества данного метода – для экспорта/импорта данных не требуется посредников (повышается скорость), получение данных можно осуществлять без временной задержки (гарантирована актуальность данных).
Есть у метода и явные недостатки – всегда существует риск нарушить бизнес-логику прикладного решения 1С, используя метод прямого доступа для записи данных, что может привести к неработоспособности системы в целом. К тому же метод прямого доступа является спорным с точки зрения его соответствия лицензионной политике 1С. Точнее, лицензионное соглашение 1С явно указывает, что «нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными "1С:Предприятия" – например, при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД». Хотя в соответствии с Гражданским Кодексом «изготовителю базы данных, создание которой (включая обработку или представление соответствующих материалов) требует существенных финансовых, материальных, организационных или иных затрат, принадлежит исключительное право извлекать из базы данных материалы и осуществлять их последующее использование в любой форме и любым способом".
В общем, если Вы все-таки решите использовать прямой доступ, помните, что Вы делаете это на свой страх и риск. В случае файл-серверного варианта работы с базой метод прямого доступа неприменим.
Стоимость: Самостоятельное использование прямого доступа – бесплатно (не считая возможных последствий за нарушение лицензионного соглашения 1С).
Использование Elisy.LinqTo1CSql.81 – бесплатно, в дальнейшем разработчиками планируется включить данное средство в состав компонента Elisy .Net Bridge, стоимость которого в настоящее время составляет 50 EUR за 1 рабочее место и 40 EUR за 2-9 рабочих мест (источник -
http://infostart.ru/public/20035/). При этом нужно учитывать, что количество лицензий зависит от числа имеющихся рабочих мест 1С:Предприятие.
Enterra .NET SDK (http://www.enterra.ru/enterra-net-sdk-1s.html)Представляет собой компонент .NET, предоставляющий возможности использования функциональности 1С:Предприятие при создании .NET приложений. Объектная модель 1С:Предприятие представляется в виде набора классов .NET, позволяющих работать с метаданными, использовать свойства и методы объектов 1С:Предприятие, работать со ссылками, реквизитами и табличным частями объектов. Подключение к информационной базе 1С:Предприятие осуществляется посредством технологии COM.
Плюсами данного способа являются возможность работы с 1С конфигурацией без необходмости использования средств разработки 1С, так как работа с данными осуществляется привычными средствами .NET (тем не менее, необходимо знакомство с объектной моделью 1С и понимание принципов бизнес-логики прикладного решения, с которым Вы собираетесь интегрировать свой продукт).
Стоимость: 14 500 руб. Необходимое количество лицензий определяется числом разработчиков, одновременно работающих с компонентом.
Таким образом, досконально разобравшись в достоинствах и недостатках существующих способов интеграции, можно сделать следующие выводы:
1. Если перед вами стоят довольно простые интеграционные задачи, и при этом Вы обладаете навыками конфигурирования 1С, то подходящим решением может стать обмен данными через промежуточные файлы, либо выгрузка в промежуточное хранилище.
2. Для решения задач связанных с публикацией данных из 1С в web, имея при этом продвинутые навыки 1С-разработки, можно использовать механизм Web-сервисов.
3. Если же Вас не привлекает необходимость овладения навыками конфигурирования 1С, то Вам больше подходит Enterra .NET SDK, позволяющая работать с 1С:Предприятие непосредственно из среды .NET, при этом предоставляя возможность решения очень широкого круга интеграционных задач.
Надеемся, данная статья окажется полезной для Вас и поможет принять наиболее эффективное решение в выборе способа интеграции Вашего программного продукта с 1С:Предприятие.