Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.66/35: Рейтинг темы: голосов - 35, средняя оценка - 4.66
Виктория88
1

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

16.03.2010, 09:34. Показов 6572. Ответов 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С:Предприятие.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2010, 09:34
Ответы с готовыми решениями:

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

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

Virtual PC и компоненты интеграции
Установил в Virtual PC Win98 Установка прошла нормально Не могу установить компоненты интеграции...

CMS для интеграции с 1С
Здравствуйте. Необходимо создать интернет-магазин с интеграцией 1C предприятие 8.2. Подскажите,...

12
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
16.03.2010, 18:12 2
Виктория, какие есть варианты интеграции для 1С Базовая бухгалтерия? Кроме загрузки из файлов, конечно.
0
Виктория88
17.03.2010, 10:53 3
Цитата Сообщение от serg42 Посмотреть сообщение
Виктория, какие есть варианты интеграции для 1С Базовая бухгалтерия? Кроме загрузки из файлов, конечно.
Технически - любой из перечисленных. Выбор варианта зависит от того, какие конкретные задачи требуется решить и от конкретных условий (квалификация специалистов и т.п).
Пользователь получил красную карточку за это сообщение.
1664 / 1133 / 80
Регистрация: 21.08.2008
Сообщений: 4,725
Записей в блоге: 1
17.03.2010, 11:22 4
насчет прямого доступа и работы с SQL сервером:
практически все данные в БД хранятся в двоичном виде, и ни одна СУБД не умеет работать с ним запросами (может только хранить), поэтому из того что хранится в явном виде можно делать лишь весьма ограниченные выборки и ни о каком формировании новых объектов (документов, проводок и т.п.) речи быть не может.
Миниатюры
1С и .NET/ Средства интеграции, Обзор средств интеграции  
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
18.03.2010, 15:52 5
Цитата Сообщение от Виктория88 Посмотреть сообщение
Технически - любой из перечисленных. Выбор варианта зависит от того, какие конкретные задачи требуется решить и от конкретных условий (квалификация специалистов и т.п).
Технически, базовая бухгалтерия имеет ограничения, в частности в ней отключен COM.
0
1664 / 1133 / 80
Регистрация: 21.08.2008
Сообщений: 4,725
Записей в блоге: 1
18.03.2010, 16:16 6
Цитата Сообщение от serg42 Посмотреть сообщение
Технически, базовая бухгалтерия имеет ограничения, в частности в ней отключен COM.
при чем здесь бухгалтерия и СОМ ?
Бухгалтерия это всего лишь конфигурация - файл, содержащий описание метаданных.
СОМ реализован в платформе 1С Предприятие, и если его "отключить" (хотел бы я узнать как), то просто напросто ничего работать не будет, т.к. каждый объект в платформе преобразуется из описания метаданных в объект СОМ.
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
19.03.2010, 11:28 7
Цитата Сообщение от oxotnik Посмотреть сообщение
при чем здесь бухгалтерия и СОМ ?
Бухгалтерия это всего лишь конфигурация - файл, содержащий описание метаданных.
СОМ реализован в платформе 1С Предприятие, и если его "отключить" (хотел бы я узнать как), то просто напросто ничего работать не будет, т.к. каждый объект в платформе преобразуется из описания метаданных в объект СОМ.
В описании версии - http://v8.1c.ru/buhv8/324_bp.htm написано, что поддержки COM-соединения и Automation-сервера нет.
0
1664 / 1133 / 80
Регистрация: 21.08.2008
Сообщений: 4,725
Записей в блоге: 1
19.03.2010, 14:37 8
Цитата Сообщение от serg42 Посмотреть сообщение
В описании версии - http://v8.1c.ru/buhv8/324_bp.htm написано, что поддержки COM-соединения и Automation-сервера нет.
Я так предполагаю все это регулируется ключом лицензии, т.е. в самой платформе эта возможность есть, и если вставить другой ключ то COM интерфейс будет создаваться. К сожалению не располагаю базовой версией 1С, но можно в реестре поискать строку "V81.Application" (вроде так она называется), если она есть, значит СОМ зарегистрирован в системе и им можно пользоваться при определенных обстоятельствах (ключах).
0
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
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
19.03.2010, 18:38 10
Цитата Сообщение от Brom Посмотреть сообщение
А с чем вы хотите интегрироваться?
с самописным софтом. конкретно нужна синхронизация с базой на MySQL.
0
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
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 * товарНаСкладе.Количество };
apilyugina
19.10.2011, 06:49 13
Enterra .NET SDK теперь распространяется бесплатно, подробности на сайте компании http://www.enterra.ru/enterra-net-sdk-1s.html
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2011, 06:49

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

Ошибки интеграции ГИС ЖКХ
Я много тут читал форум по интеграции ГИС. На старте, впрочем, как и в последствии возникает много...

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

Настройка при интеграции Lwf C Dd
Всем привет. При попытках запустить из WF агента DD Archive напоролся на такую проблему. DD стоит...

инженер проектов по бизнес интеграции
&lt;P class=MsoNormal style=&quot;MARGIN: 9pt 0cm &lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY:...

Не работает программа численной интеграции
f=inline ('cos*x.^2/2+sin*x.^3/3'); dx=0.01; x=pi/4:dx:pi; yf=feval(f,x); ddfl=diff(yf)/dx;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru