Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
Виктория88
0 / 0 / 0
Регистрация: 12.03.2010
Сообщений: 2
1

1С и .NET/ Средства интеграции, Обзор средств интеграции

16.03.2010, 09:34. Просмотров 5583. Ответов 12
Метки нет (Все метки)

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

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

Кроме того, наблюдается выраженная тенденция снижения актуальности тяжелых многофункциональных приложений. Потребность бизнеса сегодня – организация единого информационного пространства компании (группы компаний) с возможностью доступа к необходимой информации с минимальными затратами времени и сил. И в настоящее время все чаще частью этого информационного пространства оказываются программные продукты 1С:Предприятие.

В рамках данного обзора мы рассмотрим вопросы интеграции 1С:Предприятие версии 8.X с приложениями, разработанными на платформе .NET. В частности, разберемся, какие способы подобной интеграции существуют, и для каких случаев подходит каждый из них.

Если вы уже столкнулись с проблемой решения задачи интеграции, то надеемся, что наш обзор поможет вам сделать правильный выбор. Если же такая задача Вас пока миновала, то с нашей помощью Вы сможете встретить ее во всеоружии.

Итак, начнем. Осуществить интеграцию Вашего .NET приложения с прикладным решением на платформе 1С:Предприятие указанной версии можно одним из следующих способов:
- обмен через промежуточные файлы (.txt, .csv, .xml, .dbf);
- выгрузка данных в промежуточное хранилище;
- использование механизма OLE Automation;
- использование COM-соединения;
- публикация Web-сервисов;
- использование Web-расширения для 1С;
- прямой доступ к данным (Elisy.LinqTo1CSql.81);
- Enterra .NET SDK.
В списке представлены не только средства, штатно включенные в платформу 1С, но также и самостоятельные продукты, поставляемые как фирмой 1С (Web-расширение), так и сторонними разработчиками (Enterra .NET SDK, Elisy.LinqTo1CSql.81).

Остановимся подробнее на каждом из указанных способов.

Обмен через промежуточные файлы (.txt, .csv, .xml, .dbf)Здесь все достаточно ясно: в 1С формируется выборка данных, которая выгружается в файл обмена. Сформированный файл может использоваться другими программными средствами. Возможна и обратная ситуация – сформированный сторонней программой файл заданного формата загружается и обрабатывается 1С:Предприятие. Естественно, такого рода обмен потребует создания специальной обработки (либо правил обмена) для выгрузки/загрузки файла. Минусы такого варианта очевидны – любые изменения в конфигурации 1С потребуют внесения изменений в процедуру экспорта/импорта файлов, в случае отложенной загрузки файла выгруженные данные могут устаревать, требуются дополнительные усилия для обеспечения защиты передаваемой информации. Подобный способ подходит для решения небольших интеграционных задач (например, публикация прайс-листа на веб-сайте), для его использования требуется владение приемами разработки в среде 1С.
Стоимость: средства работы с указанными файлами входят в поставку платформы 1С:Предприятие, дополнительных затрат не требуется.

Выгрузка данных в промежуточное хранилище

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

Использование OLE Automation, COM-соединений

Для их использования в Вашем приложении вполне традиционным образом создается Automation-сервер либо Com-соединение. Через Automation-сервер Вы получаете доступ к системным константам, заданным в конфигураторе объектам и переменным, объявленным в модуле приложения. В качестве методов Automation-сервера можно использовать системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом Экспорт.

При использовании COM-соединения вместо процедур модуля приложения и объявленных в нем переменных, Вы получаете доступ к переменным, процедурам и функциям модуля внешнего соединения.

Типичный недостаток данных способов – возможна низкая скорость при передаче больших массивов данных. В случае COM-соединения данная проблема может быть частично решена путем использования пула соединений.

Стоимость: данные средства входят в поставку платформы 1С:Предприятие, дополнительных затрат на их приобретение не требуется.

Web-сервисы

Платформа 1С:Предприятие реализует механизмы создания Web-сервисов, которые могут быть опубликованы на сервере IIS или Apache. Создание Web-сервиса требует профессиональных знаний встроенного языка 1С (и принципов конфигурирования, конечно).
Стоимость: данные средства входят в поставку платформы 1С:Предприятие, дополнительных затрат на их приобретение не требуется.

Web-расширение (http://v8.1c.ru/overview/Term_000000286.htm#1)

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

Web-расширение рассчитано на работу с ASP.NET и построено на использовании технологии Web Forms. Связь с информационной базой 1С:Предприятие осуществляется через ADO.

В вышедшей не так давно версии платформы 1С:Предприятие 8.2., набор функций, связанный с созданием веб-форм и веб-отчетов, реализован штатными средствами платформы. Что же касается разработки .NET приложений, использующих функционал 1С:Предприятие, то здесь имеется ряд ограничений. Во-первых, Web-расширение рассчитано на работу только с ASP.NET, то есть не может использоваться для создания Windows-приложений. Во-вторых, реализация доступа к базе посредством ADO позволяет получить данные, но не дает возможности вызова методов объектов 1С:Предприятие, что существенно снижает сферу применимости продукта.
Таким образом, использование Web-расширения нецелесообразно для решения простых задач. Для решения же более серьезных задач (как например, реализация вызова хранимых процедур 1С из стороннего приложения) его средств может и не хватить. К тому же, очень похоже, что после объединения с Bitrix, а также выпуска платформы 8.2, фирма 1С не собирается развивать Web-расширение, так как последняя его версия рассчитана на работу с Microsoft .NET Framework 1.1, и никаких обновлений для данного продукта 1С не анонсирует.

Стоимость: 26 000 руб. (цена указана в соответствии с официальным прайс-листом фирмы 1С - http://v8.1c.ru/price/)

Прямой доступ к данным (технология 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/...ator.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С:Предприятие.

Таким образом, досконально разобравшись в достоинствах и недостатках существующих способов интеграции, можно сделать следующие выводы:
1. Если перед вами стоят довольно простые интеграционные задачи, и при этом Вы обладаете навыками конфигурирования 1С, то подходящим решением может стать обмен данными через промежуточные файлы, либо выгрузка в промежуточное хранилище.
2. Для решения задач связанных с публикацией данных из 1С в web, имея при этом продвинутые навыки 1С-разработки, можно использовать механизм Web-сервисов.

Надеемся, данная статья окажется полезной для Вас и поможет принять наиболее эффективное решение в выборе способа интеграции Вашего программного продукта с 1С:Предприятие.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2010, 09:34
Ответы с готовыми решениями:

Вопрос по интеграции 1С 8 с Firebird
Мне надо добавить строку в таблицу на FireBird (InterBase). Есть такая завершающая конструкция...

Ищем партнеров для интеграции 1С с КПК-шной программой
Здравствуйте! Я представляю компанию, занимающуюся разработкой ПО. У нас есть программный продукт...

Посоветуйте 1с Программиста Для Интеграции 1с7 С Интернет Магазином.
Посоветуйте 1С программиста для интеграции 1с7 с интернет магазином. Необходимо что бы заказы с...

Отчет по производственной практике "Участие в интеграции программных модулей"
Ребят, может кто делал отчет по по производственной практике 09.02.03 Программирование в...

Настройка бесшовной интеграции ут 10.3 и документооборота 1.4
Всем привет! Кто знает как правильно интегрировать модуль интеграции с документооборотом в ут 10.3,...

12
serg42
120 / 102 / 7
Регистрация: 14.02.2010
Сообщений: 263
16.03.2010, 18:12 2
Виктория, какие есть варианты интеграции для 1С Базовая бухгалтерия? Кроме загрузки из файлов, конечно.
0
Виктория88
0 / 0 / 0
Регистрация: 12.03.2010
Сообщений: 2
17.03.2010, 10:53 3
Цитата Сообщение от serg42 Посмотреть сообщение
Виктория, какие есть варианты интеграции для 1С Базовая бухгалтерия? Кроме загрузки из файлов, конечно.
Технически - любой из перечисленных. Выбор варианта зависит от того, какие конкретные задачи требуется решить и от конкретных условий (квалификация специалистов и т.п).
0
oxotnik
1633 / 1106 / 75
Регистрация: 21.08.2008
Сообщений: 4,644
Записей в блоге: 1
17.03.2010, 11:22 4
насчет прямого доступа и работы с SQL сервером:
практически все данные в БД хранятся в двоичном виде, и ни одна СУБД не умеет работать с ним запросами (может только хранить), поэтому из того что хранится в явном виде можно делать лишь весьма ограниченные выборки и ни о каком формировании новых объектов (документов, проводок и т.п.) речи быть не может.
0
Миниатюры
1С и .NET/ Средства интеграции, Обзор средств интеграции  
17.03.2010, 11:22
serg42
120 / 102 / 7
Регистрация: 14.02.2010
Сообщений: 263
18.03.2010, 15:52 5
Цитата Сообщение от Виктория88 Посмотреть сообщение
Технически - любой из перечисленных. Выбор варианта зависит от того, какие конкретные задачи требуется решить и от конкретных условий (квалификация специалистов и т.п).
Технически, базовая бухгалтерия имеет ограничения, в частности в ней отключен COM.
0
oxotnik
1633 / 1106 / 75
Регистрация: 21.08.2008
Сообщений: 4,644
Записей в блоге: 1
18.03.2010, 16:16 6
Цитата Сообщение от serg42 Посмотреть сообщение
Технически, базовая бухгалтерия имеет ограничения, в частности в ней отключен COM.
при чем здесь бухгалтерия и СОМ ?
Бухгалтерия это всего лишь конфигурация - файл, содержащий описание метаданных.
СОМ реализован в платформе 1С Предприятие, и если его "отключить" (хотел бы я узнать как), то просто напросто ничего работать не будет, т.к. каждый объект в платформе преобразуется из описания метаданных в объект СОМ.
0
serg42
120 / 102 / 7
Регистрация: 14.02.2010
Сообщений: 263
19.03.2010, 11:28 7
Цитата Сообщение от oxotnik Посмотреть сообщение
при чем здесь бухгалтерия и СОМ ?
Бухгалтерия это всего лишь конфигурация - файл, содержащий описание метаданных.
СОМ реализован в платформе 1С Предприятие, и если его "отключить" (хотел бы я узнать как), то просто напросто ничего работать не будет, т.к. каждый объект в платформе преобразуется из описания метаданных в объект СОМ.
В описании версии - http://v8.1c.ru/buhv8/324_bp.htm написано, что поддержки COM-соединения и Automation-сервера нет.
0
oxotnik
1633 / 1106 / 75
Регистрация: 21.08.2008
Сообщений: 4,644
Записей в блоге: 1
19.03.2010, 14:37 8
Цитата Сообщение от serg42 Посмотреть сообщение
В описании версии - http://v8.1c.ru/buhv8/324_bp.htm написано, что поддержки COM-соединения и Automation-сервера нет.
Я так предполагаю все это регулируется ключом лицензии, т.е. в самой платформе эта возможность есть, и если вставить другой ключ то COM интерфейс будет создаваться. К сожалению не располагаю базовой версией 1С, но можно в реестре поискать строку "V81.Application" (вроде так она называется), если она есть, значит СОМ зарегистрирован в системе и им можно пользоваться при определенных обстоятельствах (ключах).
0
Brom
5 / 5 / 0
Регистрация: 25.02.2010
Сообщений: 15
19.03.2010, 17:50 9
Цитата Сообщение от serg42 Посмотреть сообщение
Технически, базовая бухгалтерия имеет ограничения, в частности в ней отключен COM.
Именно так.

Цитата Сообщение от serg42 Посмотреть сообщение
В описании версии - http://v8.1c.ru/buhv8/324_bp.htm написано, что поддержки COM-соединения и Automation-сервера нет.
Цитата Сообщение от oxotnik Посмотреть сообщение
Я так предполагаю все это регулируется ключом лицензии, т.е. в самой платформе эта возможность есть, и если вставить другой ключ то COM интерфейс будет создаваться. К сожалению не располагаю базовой версией 1С, но можно в реестре поискать строку "V81.Application" (вроде так она называется), если она есть, значит СОМ зарегистрирован в системе и им можно пользоваться при определенных обстоятельствах (ключах).
А с чем вы хотите интегрироваться?
0
serg42
120 / 102 / 7
Регистрация: 14.02.2010
Сообщений: 263
19.03.2010, 18:38 10
Цитата Сообщение от Brom Посмотреть сообщение
А с чем вы хотите интегрироваться?
с самописным софтом. конкретно нужна синхронизация с базой на MySQL.
0
Brom
5 / 5 / 0
Регистрация: 25.02.2010
Сообщений: 15
21.03.2010, 18:39 11
Цитата Сообщение от serg42 Посмотреть сообщение
с самописным софтом. конкретно нужна синхронизация с базой на MySQL.
Для этого не требуется Com-соединение, действуем следующим образом:

1) Пишем внешнюю обработку, которая через ODBC соединяется с базой MySQL, SQL-запросом выполняет необходимые выборки и на основании выборок создаем объекты в 1С
2) Если нужен автоматический запуск - планировщиком заданий виндовс запускаем 1с с параметром /execute Путь_Имя_Обработки
3) Утром проверяем данные
0
Elisy
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1
22.03.2010, 07:52 12
Цитата Сообщение от Виктория88 Посмотреть сообщение
Способ частично разрешить проблемы прямого доступа предлагают создатели компонента Elisy .Net Bridge (назначение компонента – расширение функциональности 1С возможностями .NET, в частности, возможностью использовать классы .NET из 1С). В качестве решения предлагается обработка Elisy.LinqTo1CSql.81, генерирующая dbml-файл из 1С
(http://www.richmedia.us/post/2009/10/...ator.aspx).
Пожалуйста, измените линк на рабочий, например, на:
1С.Net:Предприятие или на
Использование технологии LinqToSql для прямого доступа к данным 1С:Предприятие
Решение Elisy .Net Bridge не ограничено одной обработкой Elisy.LinqTo1CSql.81. Это комплекс инструментов для подключение .Net framework к 1С:Предприятие.
Здесь можно найти по Elisy .Net Bridge документацию с примерами: Руководство по использованию внешнего компонента Elisy .Net Bridge

Добавлено через 5 минут
Цитата Сообщение от oxotnik Посмотреть сообщение
насчет прямого доступа и работы с SQL сервером:
практически все данные в БД хранятся в двоичном виде, и ни одна СУБД не умеет работать с ним запросами (может только хранить), поэтому из того что хранится в явном виде можно делать лишь весьма ограниченные выборки и ни о каком формировании новых объектов (документов, проводок и т.п.) речи быть не может.
Новая технология LinqToSql, вошедшая в состав .Net Framework 3.5, позволяет в достаточной мере расширить применение прямого доступа к SQLServer. Выглядит это на С# примерно так:

C#
1
2
3
4
5
6
7
8
9
10
DateTime текущаяДата = DateTime.Now;
DateTime началоМесяца = new DateTime(текущаяДата.Year, текущаяДата.Month, 1);
var товарыНаСкладахИтоги = from товарНаСкладе in dc.GetTable<РегистрНакопленияТоварыНаСкладахИтоги>()
where (товарНаСкладе._Period == началоМесяца)
select new { Склад = товарНаСкладе.Склад, Номенклатура = товарНаСкладе.Номенклатура, Количество = товарНаСкладе.Количество };
 
var товарыНаСкладахДетали = from товарНаСкладе in dc.GetTable<РегистрНакопленияТоварыНаСкладах>()
let активность = 1 //товарНаСкладе.Активность.ToArray()[0]
where (началоМесяца <= товарНаСкладе.Период) && (товарНаСкладе.Период <= текущаяДата) && (активность == 1)
select new { Склад = товарНаСкладе.Склад, Номенклатура = товарНаСкладе.Номенклатура, Количество = товарНаСкладе._RecordKind == 0 ? товарНаСкладе.Количество : -1 * товарНаСкладе.Количество };
0
apilyugina
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 1
19.10.2011, 06:49 13
Enterra .NET SDK теперь распространяется бесплатно, подробности на сайте компании http://www.enterra.ru/enterra-net-sdk-1s.html
0
19.10.2011, 06:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2011, 06:49

Концептуальная модель интеграции по API с 100+ поставщиков
Добрый день, уважаемые форумчане. Есть API к сайту, позволяющее отправлять заказы поставщикам +...

Не работает устройство интеграции
У меня возникла такая проблема.Вчера установил себе новый интегратор(X-BASIC TRUSTER...

Система непрерывной интеграции CI
Доброго времени суток! Уважаемые форумчане, помогите разобраться с CI! На данный момент я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru