Интеграция сайта с 1С: что реально можно связать
Сайт и 1С связывают четырьмя потоками данных: товары с ценами и остатками идут из 1С на сайт, заказы идут с сайта в 1С, статусы заказов возвращаются обратно, контрагенты синхронизируются в обе стороны. Всё остальное — надстройки над этими четырьмя. Разберу, как это устроено внутри и почему обмен ломается именно там, где ломается.
Из чего состоит обмен
Обмен — это не «сайт видит 1С». Прямого доступа нет ни в одну сторону, и это правильно: учётная система не должна торчать в интернет.
Между ними стоит посредник — файл обмена или промежуточный сервис. Одна сторона выкладывает пакет данных, другая забирает его по расписанию и разбирает.
Из этого следуют два свойства, о которых стоит знать заранее. Данные на сайте всегда немного отстают от 1С: на интервал обмена. И если пакет сформировался с ошибкой, ошибка приезжает целиком, а не по одной позиции.
Поток первый: товары из 1С на сайт
Самый частый и самый простой. 1С формирует пакет с номенклатурой: наименование, артикул, характеристики, группы, цены, остатки.
Сайт разбирает пакет и обновляет каталог. Ключ сопоставления — не название и не артикул, а внутренний идентификатор номенклатуры. Название меняют, артикул перебивают, идентификатор живёт.
Тонкость: цены и остатки меняются часто, а описания и картинки — редко. Поэтому обмен обычно разделяют на два расписания: остатки и цены раз в 15–60 минут, полный каталог раз в сутки ночью. Иначе каждый обмен перемалывает всю базу и нагружает обе стороны.
Вторая тонкость: содержимое карточки на сайте богаче, чем в учёте. Фотографии, описания для покупателя, отзывы, тексты для поиска в 1С не хранятся. Значит, обмен должен обновлять только свои поля и не затирать то, что заводили на сайте. Ошибка «выгрузили прайс и потеряли все описания» происходит именно здесь.
Поток второй: заказы с сайта в 1С
Сайт формирует заказ и передаёт его в учёт: покупатель, состав, количество, цены, способ доставки, адрес, комментарий.
Здесь появляется вопрос, который решается один раз и на всю жизнь проекта: где находится источник истины по заказу. Если заказ дальше ведут в 1С — сайт больше его не меняет и только отображает статус. Если заказ ведут в админке сайта — 1С получает его как документ и не редактирует.
Смешанный вариант, когда правят и там и там, приводит к расхождениям в пределах недели. Практика простая: одно поле — один хозяин.
Отдельно решается вопрос неполных данных. Покупатель ввёл имя «Иван» и телефон — контрагента с такими реквизитами в 1С заводить нельзя без правил. Обычно физлиц сводят в одного служебного контрагента, а юрлиц заводят полноценно по ИНН.
Поток третий: статусы обратно на сайт
Заказ собрали, отгрузили, отменили — покупатель должен это видеть. Обратный поток обычно самый бедный по объёму: идентификатор заказа, новый статус, номер накладной, трек-номер.
И самый ценный для клиента. В мебельной мастерской ToYou Wood сайт после оплаты сам создаёт отправление и печатает этикетку — человеку остаётся приклеить её и отдать курьеру. Работает это ровно потому, что статус и трек-номер возвращаются в карточку заказа, а не живут в отдельной вкладке чужого сервиса.
Поток четвёртый: контрагенты и взаиморасчёты
Нужен оптовикам и B2B. Личный кабинет показывает клиенту его цены по договору, отгрузки, задолженность, акты сверки.
Технически это самый требовательный поток: данные чувствительные, отставание недопустимо, а права доступа должны быть жёсткими. Здесь обычно отказываются от файлового обмена в пользу запросов в реальном времени — сайт спрашивает у промежуточного сервиса баланс конкретного клиента в момент открытия страницы.
Где обмен ломается на практике
Изменили что-то в 1С. Добавили реквизит, переименовали свойство, поменяли структуру справочника. Пакет формируется по-новому, сайт разбирает по-старому.
1С выключена. Обмен не идёт, ошибок нет, никто не замечает три дня, на сайте висят вчерашние остатки.
Совпадение по названию вместо идентификатора. Две позиции с одинаковым наименованием склеиваются в одну.
Разные единицы измерения. В учёте метры, на сайте штуки, коэффициент никто не задал.
Обмен без журнала. Когда нет записи «в 14:20 принято 340 позиций, 12 с ошибками», разбор любой проблемы превращается в гадание. Журнал обмена с фильтром по дате — это не украшение админки, а инструмент, которым пользуются еженедельно.
Как выглядит внедрение по шагам
Сначала инвентаризация. Выписывается, какие справочники и документы участвуют в обмене и какие поля из каждого реально нужны сайту. Обычно на этом шаге список сокращается вдвое.
Затем согласуются ключи сопоставления и формат пакета. Это письменный документ, а не устная договорённость: именно к нему обращаются, когда через полгода обмен перестал работать.
Дальше настраивается односторонний обмен каталогом и запускается на тестовой площадке. Проверяются граничные случаи: товар удалён в 1С, цена стала нулевой, изменилась единица измерения, появился дубль.
Только после этого включается передача заказов. Порядок такой, потому что ошибка в каталоге портит витрину, а ошибка в заказах портит учёт и деньги.
Последним настраивается расписание и журнал. Первые две недели журнал смотрят ежедневно — в этот период вылезает почти всё, что не поймали на тестах.
Кому интеграция с 1С не нужна
Если номенклатура до нескольких сотен позиций и меняется редко — обмен не окупится. Дешевле вести каталог в админке сайта руками.
Если 1С используется только для бухгалтерии и отчётности, а склад и продажи ведутся в другом месте — связывать надо не с 1С, а с тем, что реально управляет остатками.
И если заказов меньше нескольких десятков в день — ручной перенос заказа в учёт занимает минуту и не оправдывает разработку двустороннего обмена. Ориентиры по стоимости таких работ есть в разделе цен: интеграции такого класса живут в диапазоне сайта с админкой и выше.
Коротко
Обмен с 1С — это четыре потока: каталог вниз, заказы вверх, статусы обратно, контрагенты в обе стороны. Между системами всегда стоит посредник, поэтому данные на сайте отстают на интервал обмена. Сопоставление ведётся по идентификаторам, у каждого поля один хозяин, обмен разделяется на быстрый по ценам и ночной по каталогу. Обязательный элемент — журнал обмена, иначе разбор сбоев невозможен.
Первый разговор — разбор задачи: нужна ли вам система или хватит одной страницы. Без обязательств и без счёта.
Частые вопросы
Нужен ли для обмена постоянно включённый компьютер с 1С?
Если 1С стоит на офисном компьютере — да, обмен идёт только пока он включён и в сети. Практическое решение — вынести 1С на сервер или в облачный сервис провайдера. Иначе выгрузка цен зависит от того, ушёл ли бухгалтер домой.
Можно ли обойтись выгрузкой прайса в файл вместо полноценного обмена?
Да, и для многих компаний этого достаточно. Файл с ценами и остатками, который сайт забирает раз в час, закрывает главную боль без разработки двусторонней синхронизации. Двусторонний обмен нужен, когда заказы должны попадать в учёт автоматически и с сайта уходят отгрузки.
Кто отвечает за обмен, когда он сломался?
Разграничение фиксируется заранее: специалист по 1С отвечает за формирование данных на своей стороне, веб-разработчик — за приём и обработку на стороне сайта. Без письменной границы каждая сторона будет считать, что проблема у другой, и обмен простоит неделю.
Те, что не помогают, мы переписываем — по этой кнопке и решаем, какие именно.
Ещё по теме
Что малому бизнесу от CRM реально нужно, чем готовая система отличается от своей внутри сайта и по каким признакам выбирать между ними.
тем, кто заказывает CRM купили, а работать в ней не стали: разбор причинШесть ошибок, из-за которых оплаченная CRM превращается в пустую базу, и что делать с каждой, пока подписка ещё действует.
тем, кто заказывает Freedom Gym: клубная система с абонементами и расписаниемИстория одного проекта: как из журнала на ресепшене выросла клубная система с абонементами, расписанием и правами тренеров, и что пошло не так.
тем, кто заказывает