Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Интергация с 1С


Автор: GoodBoy 23.4.2008, 10:34
Есть ли модули или какие-нить API для работы из Перла с 1С? Требуется построить интергированный интернет-магазин.

Автор: PanamOS 23.4.2008, 13:46
XML или любой другой текстовый формат удобный для парсинга и там и там. Сейчас 1с8.1 отлично интегрирована с битриксом
http://v8.1c.ru/edi/edi_stnd/131/  принцип работы
http://www.v8.1c.ru/edi/edi_stnd/90/92.htm   описание протокола CommerceML
Если с 1с7.7 работа, то там нужно писать обработку для 1с для выгрузки.

Готовых модулей заточенных именно под 1с, кроме тех, что парсят XML, в природе не наблюдалось, хотя может у кого в заначках и есть.

Автор: shamber 23.4.2008, 13:49
Частично обсуждали http://forum.vingrad.ru/forum/topic-183188/kw-postgresql-экспорт.html

Автор: Itsys 23.4.2008, 20:21
А чем тебе OLE не подходит?

Добавлено @ 20:27
Я конечно не пробовал, но вполне можно получать и писать данные через OLE, единственное что - это долгая загрузка 1С по OLE.
Второй варинат, который релаизовывал я - это смотреть на обмен не с точки зрения Web-части, а с точки зрения 1С - отправляешь запрос по http - получаешь ответ и производишь действия в базе 1С - помоему наиболее быстрый способ, а самое главное надежный.
1С можно зарузить на сервере в качетве демона, который будет опрашивать сервер ну допустим каждые 10 минут на наличие новой инфы, либо инструкций по загрузке/выгрузке информации.

Автор: GoodBoy 24.4.2008, 08:29
Itsys, ситуация такова, что я вообще пока не представляю что мне подходит, а что нет, т.к. не сталкивался пока с этим...  Клиент хочет увязать интернет-магазин с 1С и, естественно, как и любой клиент-заказчик, слабо сам понимает что он хочет...  Это из разряда - "надо, чтобы копало"... А мне, как и любому разработчику, надо сперва понять что же он в действительности хочет, потом попытаться увязать это с реалиями жизни, а потом (самое главное и сложное) объяснить это заказчику!!!

Автор: Itsys 24.4.2008, 10:49
Ну с моей точки зрения проще именно наладить обмен со стороны 1С, т.к. стандартного инрефейса взаимодействия Perl-1C нет, да и я сомневаюсь, что когда-нибудь будет, доступ по OLE - медленно и для этого 1С должен стоять на сервере магазина, а если сам магазин хостится под *nix, то это не реализуемо (если мы говорим про 7.7)

ЗЫ Есть, конечно, вариант получать доступ к фалам DBF (версия 7.7.) - но это вообще неблагодарное занятие - сколько баз было из-за этого порушено
ЗЗЫ В 8.0(8.1), насколько я знаю есть доступ к БД через COM+, насколько говорит сама 1С, довольно быстрый.

Автор: PanamOS 24.4.2008, 11:04
GoodBoy, прямого доступа к серверу базы 1с я так понимаю для интернет-магазина нет. Будет отдельный сервер/хостинг.
Нужный вариант помогут выбрать ответы на следующие вопросы:

1) По типу инициализации:
1. Обмен инициализируется 1с HTTP запросом.
2. Обмен происходит по таймерам, раз в Х времени скрипт проверяет каталог обмена, смотрит флаги или время модификации файла например и производит загрузку, то же делает и 1с.
2) По типу запуска:
1. Ручной запуск обмена пользователем из какой-то обработки
2. Автоматический запуск
3) По протоколу обмена:
1. HTTP полностью
2. Частично HTTP, частично FTP
3. FTP
4. E-mail
4) По среде разработки:
1. Есть специалист по 1с.
2. Специалиста по 1с нет.
3. В конфигурации присутствует стандартная выгрузка на сайт.

Автор: GoodBoy 24.4.2008, 11:16
Как я предполагаюсайт будет совершенно на другой площадке, нежели сервер 1С... И самым логичным мне кажется вариант  с выгрузкой из 1С данных по наличию товара, с последующей его загрузкой в магазин...

Автор: Itsys 24.4.2008, 12:55
GoodBoy, Можно конечно выгружать-загружать файлы - но это не очень удобно и, самое главное, надежно - включается человеческий фактор (не туда файл сохранили, не тот файл загрузили и т.д.) - доступ к данным через HTTP намного мнее ошибко емкий.
А так если делать загрузку-выгрузку через файлы, то любой формат TXT, DFB, XML - можешь пользоваться стандрантыми форматами обмена, как указал PanamOS, можешь разработать свой.

Автор: vadiml 25.4.2008, 10:18
Я бы не привязывался в OLE, парсингу XML и др

1С 8.1 может хранить базу в постгресе, тут весьма удобно работать через DBI::Pg

Автор: GoodBoy 25.4.2008, 10:42
Цитата(Itsys @  24.4.2008,  13:55 Найти цитируемый пост)
Можно конечно выгружать-загружать файлы - но это не очень удобно и, самое главное, надежно - включается человеческий фактор (не туда файл сохранили, не тот файл загрузили и т.д.) - доступ к данным через HTTP намного мнее ошибко емкий.

Зачем????  Пишется функция выгрузки данных в неком формате - хоть табсепарейтед, далее эта функция запускается по шедулеру, после чего другой программкой сохраняется, к примеру по FTP на удалённых хост...  Все...  Никакого человеческого фактора!

Автор: Itsys 26.4.2008, 07:29
vadiml, 7.7 может хранить базу в MS SQL и чего, для доступа в MS SQL МОжно использовать DBD:ODBC, только, как я уже сказал, у 1С своя хитрая система "Инкрементации", т.е. она использует не стандартны механизм инкрементации 1,2,3,4,5,6,7,8,9,10,11,12,13,14 и т.д., осуществляемый SQL сервером, а задает коды полей сама, чуть ли не в 16-ти ричном формате, причем бывают случаи пропуска значений.
С кодами полей это фигня, а вот запутанные связи межу таблицами - это да при регистрации проведения документов изменяются таблицы, связанные с записью самого документа, с записями регистров оперативного (бухалтерского) учета и пересчитываются итоги и все это в десятке различных таблиц, без использования каких-либо триггеров.

Добавлено через 3 минуты и 5 секунд
Цитата(GoodBoy @  25.4.2008,  10:42 Найти цитируемый пост)
после чего другой программкой сохраняется, к примеру по FTP на удалённых хост

Ага, а потом еще одну программку вешаем в шедуллер, чтобы она с этого FTP выкачала, т.к. 1С с FTP дружит только через внешние компоненты, а потом еще пользователю надо как-то сообщить, что типа есть файл для загрузки - грузи  smile 

Автор: tolkien 27.4.2008, 18:57
Крутой видать магазин намечается. Не лучше отказаться от 1С. Сделать все что надо с Mysql. А потом от туда данные переносить только в 1С для создания отчетности в налог и т.д.

Автор: GoodBoy 28.4.2008, 08:37
Цитата(tolkien @  27.4.2008,  19:57 Найти цитируемый пост)
Крутой видать магазин намечается. Не лучше отказаться от 1С. Сделать все что надо с Mysql. А потом от туда данные переносить только в 1С для создания отчетности в налог и т.д. 

Заказчику так и сказать?  smile 

Автор: tolkien 28.4.2008, 11:37
Разве заказчику не всеравно как вы выполните проект? Какие выберете пути и методы решения поставленной задачи. Но только если вам не дали жесткое задание сделать это только имеено вот так. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)