...Топовые производители современных отечественных систем управления в один голос заявляют, что умеют интегрироваться с 1С. Самая красивая интеграция, естественно, у 1C Битрикс (сходите по ссылке и почитайте! у всех остальных — дела намного хуже!).

Нужно сделать пару настроек, и товары полетят в Битрикс, а заявки — обратно, в 1С-ку.
Когда она так работает — я ее люблю.Естественно, это касается по большей части типовых конфигураций — всего не предусмотришь, ага. Да и маркетинг заставляет говорить, что «это просто!». Иначе корову не продашь.
В реальности сценарий продажи и внедрения интеграции может превратиться в АДъ!:
Фаза пресейла:
Менеджер проекта: | Нужна ли будет в вашем интернет-магазине — интеграция с 1С? |
Клиент: | Да, посчитайте, пожалуйста, может понадобиться. |
Менеджер проекта: | А какая версия 1С у вас использована? |
Клиент: | Я не знаю, там же все просто, из коробки, да? |
Менеджер проекта: | Штатная интеграция не во всех случаях может вам подойти. Давайте либо оставим вопрос интеграции на последующие этапы, либо, для более точной оценки, нам потребуется более детальная информация по вашим настройкам 1С. Есть ли у вас специалист, который занимается 1С? |
Клиент: | Да, приходит мальчик, что-то дописывает... Какая разница — давайте сейчас без этих подробностей. Мне нужна примерная цена. |
Менеджер проекта: | Ок, штатный вариант интеграции будет стоить $N, нетиповая интеграция — порядка $MMM, но возможно и более. |
Клиент (в сторону): | Х#&@се... |
- Менеджер — уже тертый калач и задает правильные вопросы. Но на фазе пресейла такие детали, как правило, неизвестны заказчику, а выяснять их долго и муторно. Проще выбрать того подрядчика, который не станет задавать таких вопросов. Попытка менеджера проекта перенести интеграцию на дальнейшие этапы способствует тому, что фаза пресейла пройдет более гладко.
Но на практике это может привести к большим проблемам уже после запуска системы, когда выяснится, что структура каталога товаров в 1С и его структура на сайте — принципиально разные. Информация о том, что 1С кто-то дописывает — очень тревожный сигнал, равно как и то, что клиент планирует менять версию 1С.
Как правило, это гарантирует, что штатной интеграции не хватит.
Фаза утверждения технического задания:

Менеджер проекта: | Давайте согласуем структуру вашего каталога. Какие разделы ориентировочно там будут? |
Клиент: | <Перечисляет> |
Менеджер проекта: | Это соответствует структуре базы вашей 1С? |
Клиент: | Нет, но на сайте у нас будет другая структура, не такая, как в 1С. |
Менеджер проекта: | Нужно ли будет обновлять цены на товары из 1С? |
Клиент: | Да. |
Менеджер проекта: | Тогда, скорее всего, штатной интеграции не хватит. Можете ли прислать вашу текущую выгрузку из 1С? |
Клиент: | Нет, я без понятия. |
Менеджер проекта: | Ок, а можете ли предоставить временный удаленный доступ к 1С? |
Клиент: | Нет, это запрещено корпоративными правилами и администратор не даст доступ. |
Менеджер проекта: | Для правильной организации структуры каталога нам нужно посмотреть вашу выгрузку и текущее состояние информации. |
Клиент: | Наш программист говорит, что сделает вам выгрузку в таком формате, как вам будет надо. Пришлите нам описание что именно вам от нас нужно. |
Менеджер проекта: | В идеале нам необходима выгрузка из 1С в формате Commerce ML 2, причем еще до начала работ по программированию. |
Клиент: | Ок, я передам нашему программисту. |
- Непредоставление выгрузки или доступа к 1С, к сожалению, — частая проблема. На этом же этапе работ я бы порекомендовал начинать взаимодействие с программистом заказчика (вполне возможны разного рода неожиданности). Порой — это самый дешевый и реальный вариант. Договоритесь с заказчиком, чтобы он организовал вам колл с программистом, добейтесь того, чтобы программист либо дал вам доступ к выгрузке, либо 100% согласился обеспечить выгрузку и настройки под ваши требования.
Фаза разработки:

Программисты студии: | Нам нужна выгрузка, чтобы правильно сделать структуру инфоблоков. |
Менеджер проекта: | Ок, запрошу у клиента. |
Клиент: | Мы вроде бы обо всем договорились? Выгрузка будет позднее, наш программист вам все сделает, скажите только, что конкретно надо. |
Менеджер проекта (программистам): | Ребят, выгрузку сделают такую, как вам надо. Напишите спецификацию, что вам сделать... |
Программисты студии: | Нам бы стандартную... |
Менеджер проекта (программистам): | Сделайте пример, как вам надо, мы отправим ее заказчику. |
Программисты студии: | ОК. Тогда мы делаем структуру каталога на основе ТЗ и отправляем ее клиенту, верно? |
Менеджер проекта (программистам): | Да. |
Менеджер проекта (клиенту): | Вот наша спецификация с примером. Пожалуйста, подтвердите, что все ОК. |
Клиент: | Да, все ок, не волнуйтесь. |
- Практически гарантированный фэйл. Программистам нужно спроектировать структуру каталога, но, если выгрузка из базы будет принципиально другой, — это нужно учесть заранее. Пожалуй, тут еще все можно было бы и спасти, но...
Фаза сдачи проекта:

Менеджер проекта: | Готово, вот ваши разделы каталога. Теперь необходимо его импортировать из вашей базы в том формате, который мы запрашивали, и у вас будет заполненный каталог. |
Клиент: | В каком формате? |
Менеджер проекта: | Я высылал вам пример, такого-то числа... |
Клиент: | Пришлите еще раз, пожалуйста. И поставьте в копию нашего программиста. |
- Ну все, фэйл случился. Теперь проджект-менежер будет пытаться «рулить» удаленным программистом, который не стоит у него в подчинении, и которого он не нанимал. Все зависит от того, какое чувство собственной важности у программиста на стороне клиента... И не дай бох оно будет >9000 :-)
Фаза приемки проекта:

ЧСВ9000+: | Я не могу так сделать, потому что у нас не типовая конфигурация. |
Менеджер проекта: | Да, но вы говорили, что сможете обеспечить поддержку формата. |
ЧСВ9000+: | Я же уже объяснил, у нас — НЕТИПОВАЯ!! конфигурация. Вы должны переделать на своей стороне!!!1 |
Менеджер проекта: | В каком формате вы можете сейчас сделать выгрузку? |
ЧСВ9000+: | В каком вам надо? |
Менеджер проекта: | Мы скидывали вам выгрузку уже дважды. Нам нужен формат Commerce ML, с присланной нами структурой инфоблоков. |
ЧСВ9000+: | Нет! Так нельзя сделать! Этот формат нам не годится! |
Менеджер проекта (клиенту): | Ваш программист говорит, что не может сделать выгрузку в требуемом формате. |
Клиент: | Нет, это вы не можете предоставить ему нормальные требования к формату. Вы срываете нам сроки контракта! |
Менеджер проекта: | Давайте соберем колл на троих и обсудим этот вопрос. |
Далее — события развиваются по любопытному сценарию.
Менеджер проекта: | Добрый день. Цель нашего сегодняшнего разговора — прийти к однозначному формату выгрузки. Мы настаиваем на нашем формате, Commerce ML 2, так как он является стандартом отрасли, де-факто, хорошо документирован, и вся работа по его интеграции уже выполнена. |
ЧСВ9000+: | Мы не можем использовать ваш формат, потому что он не соответствует представлению наших данных в 1С. Кроме того, commerce ml — это проприетарная разработка, предназначенная для обмена коммерческой информацией с топовыми продуктами 1С. В нашем случае идет речь о кастомной интеграции сайта, который вы обязаны нам сделать, с уникальной и заточенной под нас — базой 1С. Поэтому ваш формат не годится! |
Менеджер проекта: | В каком формате вы сможете сделать выгрузку? |
ЧСВ9000+: | В каком вам надо? |
Менеджер проекта: | Клиент, вот смотри — мы ходим по кругу. |
Клиент: | Я не понимаю технических деталей. Вы можете общаться между собой? |
Менеджер проекта: | Пусть, пришлет хоть что-то. Мы посмотрим, насколько это удобоваримо... |
Клиент: | ЧСВ9000+, сможем им сделать? |
ЧСВ9000+: | Я не понимаю, что им от меня надо. Через неделю что-нибудь сделаю. |
- Если давить на программиста заказчика — можно выяснить, что он либо не разобрался в спецификации, либо пробовал, но у него не получилось, либо уже нагородил какого-то своего говнокода или какой-то свой «универсальный» формат, от которого теперь не хочет отступать. Особенная жесть начинается, если ваш клиент платит своему 1С-нику — почасовую ставку, и 1С-ник утверждает, что работа с его стороны займет неделю, из-за ваших «необоснованных» требований (или уникальности «нашей базы»).
Через неделю:
ЧСВ9000+: | Формат будет — три файла CSV: один с каталогом, второй со структурой разделов, третий с остатками на складе. Пока готовы только два файла (прилагаю). Картинки будем загружать в специальную папку по номерам артикулов, транслитом. |
Программисты студии: | У нас все характеристики товаров хранятся в одном поле. Фильтр не будет работать... |
Клиент: | Это не наша проблема. Фильтр должен работать! |
Менеджер проекта: | Проблема на вашей стороне. У вас в базе 1С. Нужно все товары вбить заново, в любом случае. |
ЧСВ9000+: | Это не моя проблема. Это база. |
Программисты студии: | Блять... |
Клиент: | Блять... |
Менеджер проекта: | Блять... |
- Для краткости показаны только самые сильные ходы ПМ-а. На самом деле можно протрахаться значительно дольше. Вырулить можно, но о попадании в бюджет и срок — уже речи не идет. Виноват — клиент, (в договоре формально закреплено, что выгрузка будет предоставлена в требуемом формате), но это неважно, поскольку цель ПМ-а — запустить проект, а не доказать «виноватость». Главное не вестись на разговоры вроде «вы же профессионалы, должны были предусмотреть». Вы предусмотрели и решили продолжить работы, имея открытый риск. А риск, увы, — сработал.
- Лечится, как правило, увеличением цены на 2-3-4 человеко-дня со стороны программистов студии, и еще часов 8-16 нервных переговоров со стороны менеджера проектов и клиента. Собственно, отсюда и разница в цене — $N за штатную интеграцию, $MMM — за нештатную. Нервные клетки не восстанавливаются.
Итого, примерно такой расклад, по основным рискам:
Риск/ситуация | Последствия | Противодействие |
---|---|---|
Выгрузка запрошена на этапе пресейла. |
|
|
Выгрузка не предоставлена на этапе составления ТЗ. |
|
|
Интеграция вынесена в отдельный этап. |
|
|
1С был модифицирован сторонним разработчиком, имеет устаревшую версию или плохо структурированный каталог. |
|
|
Выполнение настроек 1С на стороне клиента своими силами. |
|
|
Студия настаивает на соблюдении протокола. |
|
|
Студия прогнулась и согласилась изменить требования протокола под любой формат. |
|
|
Программист на стороне заказчика — неуправляем. |
|
|