Добрый день!
Гуру интеграций 1С и сайтов, дайте совет, пожалуйста. Есть самописная 1С, используется в розничном магазине по продаже зоотоваров. Хотят интернет-магазин (далее ИМ) с интеграцией с 1с. Из 1С выгружаются товары и характеристики, статусы заказов ,цены и остатки. С сайта надо получать заказы клиентов. CMS для ИМ пока не выбрали, но скорее всего не битрикс, а какая-нибудь бесплатная или дешевая.
Погуглил, понял, что везде описывается в основном обмен в формате CommerceML. И везде типовая конфа + ИМ на битриксе. Взаимодействие через http.
Еще вариант обмена файлами через ftp или опять же http. Выгружать и загружать файлы обмена формата xml, csv, txt и др. Еще есть варианты через веб-сервисы и другие. Хотелось бы приближенный к реал-тайм вариант. Т.е. чтобы заказы с минимальной задержкой появлялись в 1С. Так же при изменении статуса заказа в 1С, он сразу попадал на сайт. Какой вариант чаще всего используется в таких случаях?
---
zlakizla, Не универсально. Отсутствует явная декларация интерфейса. Нет единой точки контроля внесения изменений. Проблемы с контролем доступа. Могут возникнуть проблемы при возрастании нагрузки на сайт и попытках масштабирования (сложно грамотно спроектировать высоконагруженную систему, когда в базу одновременно пишут два разных приложения, написанных двумя разными дибилами). И это только навскидку. Ясен пень - в суровом продакшене такое решение не канает. Но обычно - дай бог тому магазинчику дорасти до этих проблем. Как дорастут - будут другие деньги, другие потребности и другие решения.
---
zlakizla, В любом случае придется потратить на разработку обмена данных - ориентируйтесь на CommerceML ведь в основном все CMS его поддерживают. Доработка в самописной конфигурации не составит труда (так как можно подсмотреть все обмены и технологию в типовых решениях 1С - ничего сложного). Битрикс выбран в основном потому что там все с комерсэмайлом хорошо и требуется минимум затрат по настройке, но поддержка и обслуживание требует как денег так и знаний, доработка на стороне битрикса немного дороже обойдется если вам что-то специфическое потребуется. В интернете полно бесплатных вариантов, необходимо вам просто посмотреть и выбрать что конкретно необходимо под ваши требования.
---
zlakizla, интегрируйте модуль битрикса в 1С. А потом уже программисты сайта будут сами пилить, то что вы им выгрузите.

Или речь, чтобы и модуль 1С и модуль сайта уже выли написаны, а вам оставалось только интегрировать в вашу систему?
---
Xershi, модуль битрикса я бы не интегрировал.
Он для улучшения обмена с битриксом.
Во всех стандартных конфигурациях есть обмен с сайтом и кстати он может и с битриксом обмениваться спокойно, только меньше возможностей по настройке.
---
capitan, да по большому счету вопрос же не в этом. Мы с битриксом делали интеграцию. Я просто поделился своим опытом.
---
Идеальный вариант - перейти на УТ + битрикс.
Если CMS "какая-нибудь бесплатная или дешевая", то придется много программировать как на стороне 1С, так и на стороне сайта (PHP). А программистам надо платить. Экономия получается сомнительная + попадаете в зависимость от конкретного разработчика.
В любом случае схема такая - 1С по расписанию периодически обращается к сайту и выполняется обмен.
---
Практически все уважающие себя русифицированные интернет магазины имеют в базе или в виде модулей обмен с 1С.
И практически всегда это CommerceML максимально приближенный к стандартному.
ИМХО если битрикс дорого но нужен быстрый старт - стартуйте с 1C-UMI https://portal.1c.ru/applications/46
а если бесплатно - опенкарт
---
Если всё равно делать свою CMS, то можно (и нужно) задуматься о веб-сервисах с обоих сторон.
На сайте он будет принимать справочники, на стороне 1с - заказы. Дёргаться можно будет почти с любой периодичностью и даже практически онлайн.
---
Кстати да, веб-сервисы или http-сервисы это будет оптимально, потому что все онлайн и большой объем можно передавать.
По веб-сервисам с объемом могут быть проблемы если еще и мобильное приложение будете писать. Но пока вы дойдете до этого может платформу обновят и проблем не будет.
---
Если совсем простая и карманная поделка, то можно просто пробросить на сервер 1С прямой доступ к базе сайта через stunnel.
В плюсах - всю бизнес-логику обмена можно сосредоточить в одном месте (в 1С) и работать с БД сайта напрямую (нет ограничений для быстрых "допилок"), практически нет ограничений на выбор CMS, достаточно чтобы структура таблиц была вменяемая.
---
herfis, ну со стороны 1С карманная поделка на коленке. На уровне учебной конфигурации со стандартными объектами + несколько штук для выгрузки на аукцион и в группу вконтакте. Все. А со стороны сайта будут делать нормальный полноценный сайт (интернет магазин). Бюджет на интернет-магазин 100-120 тыс.руб. А как у stunnel дела с защитой данных?
---
zlakizla,
```1c
    А как у stunnel дела с защитой данных?
```

Как положено. Шифрованный канал - SSL, сертификаты, все дела.
Считай тот же VPN, только более удобный в некоторых случаях.
ЗЫ. Stunnel is a proxy designed to add TLS encryption functionality to existing clients and servers without any changes in the programs' code.
---
herfis, читал, что метод прямого подключения к базе редко используется при обмене с сайтом. Не могу сказать почему, просто была статья какая-то) И тут опять же 1С зависит от сайта. Поменяли что-то в структуре БД, запросы сломались.
---
zlakizla, Не универсально. Отсутствует явная декларация интерфейса. Нет единой точки контроля внесения изменений. Проблемы с контролем доступа. Могут возникнуть проблемы при возрастании нагрузки на сайт и попытках масштабирования (сложно грамотно спроектировать высоконагруженную систему, когда в базу одновременно пишут два разных приложения, написанных двумя разными дибилами). И это только навскидку. Ясен пень - в суровом продакшене такое решение не канает. Но обычно - дай бог тому магазинчику дорасти до этих проблем. Как дорастут - будут другие деньги, другие потребности и другие решения.
---
Для веб-сервисов нужно веб-сервер где-то ставить. Еще сайт будет зависеть от 1С, постоянно в нее долбиться. А если вдруг ошибка в 1С или еще что, то обмен вообще вывалиться в ошибку, а то и вообще сайт упадет) например, если вдруг переименуют какой-нибудь объект конфигурации или реквизит, который используется в веб-сервисах (например в запросах), то на сайте будет ошибка при инициализации веб-сервиса. Так же вся работа по обмену будет со стороны сайта, он будет инициатором, а хотелось бы, чтобы 1С была основной программой.
ДУмаю, что неплохой вариант перетащить в эту самописную конфу механизм обмена с сайтом из УТ 11 и УНФ. Там обмен через CommerceML реализован, а потом пускай веб-разработчики разбираются с ним. Для клиента главное, конечно, чтобы работало и было дешевле. При таком раскладе обмен файлами csv или xml через каталог будет лучшим. Или нет?:)
---
При обмене с сайтом обычно достаточно и надежнее всего реализовать офф-лайн режим. А видимость он-лайна реализовывать за счет частоты обмена. Ни одна из систем не должна "стопориться" если вторая "отвалилась". Те же инет-сервисы достаточно поднимать со стороны сайта. 1С выставлять в интернет смысл есть только в одном случае - если требуется какой-то онлайн-интерактив на сайте по доступу к данным 1С (типа отчет из 1С вывести какой-нить).
---
На самом деле, если устроят типовые возможности электронного магазина какой-нить CMS по обмену данными (я просто в них не силен), типа предоставляются подходящие веб-сервисы и интерфейс обмена устраивает - то это идеальный вариант. Не надо ничего изобретать и все стандартно. Но с допилками будут большие проблемы. Потому как нужен разраб, шарящий в этой CMS.
Вариант с прямым подключением к БД обычно удобно использовать в стартапиках, когда на бегу нужно лепить всякую хитрую тесную интеграцию, а запустить надо уже вчера. А когда схема работы устаканится - можно неспеша переписать на сервисы, благо требования уже понятны по итогу. Я так в одной конторе лепил рука об руку с веб-разработчиком. Он в пене допиливал хотелки на сайте - я в 1С. Но до переписывания на сервисы дело не дошло - стартапик сдох раньше :)