СТУДИЯ—88 +7 843 203-44-32 Связаться
Статьи о разработке

Редакция СТУДИИ-88 ·

Не обновляются цены и остатки из 1С: как найти причину

Сообщение об успешном обмене ещё не подтверждает, что покупатель видит верные данные. Проверяем одну позицию на каждом этапе и отделяем причины по симптомам.

Если цены или остатки из 1С не обновляются на сайте, выберите одну проблемную позицию и проследите её от базы до витрины. Такой разбор показывает, на каком этапе потерялось изменение: при подготовке данных, передаче, импорте или отображении покупателю.

Сначала сохраните время последнего обмена, текст ошибки и контрольные значения. Все изменения настроек проверяйте на тестовой копии либо в согласованное окно. Содержимое обмена может включать данные покупателей, поэтому перед передачей файлов для диагностики уберите из копии персональные данные и секреты доступа.

Какие сведения собрать по одному товару

  • Название, артикул и внешний идентификатор товара; для варианта — идентификатор предложения.
  • Цену и тип цены в 1С, валюту и ожидаемую цену на сайте.
  • Склад, фактический остаток, резерв и ожидаемое доступное количество.
  • Время изменения в базе и начало и окончание последнего сеанса.
  • Значения в данных передачи, в административной части сайта и на витрине.

Одинаковый артикул ещё не доказывает, что сравниваются одинаковые записи. Например, остаток может принадлежать конкретному размеру, а проверяется родительская карточка. Для сопоставления используйте идентификатор, по которому настроен обмен.

Проверяйте обмен по этапам

  1. Исходная база. Убедитесь, что нужное изменение записано и входит в правила выгрузки.
  2. Подготовленные данные. Найдите идентификатор и нужное значение в выгрузке либо ответе API. Если его там нет, исследуйте настройки отбора и подготовку данных.
  3. Передача и импорт. Сопоставьте журнал сеанса с журналом приёма на сайте. Проверьте, обработан ли весь пакет.
  4. Хранилище сайта. Откройте именно эту позицию в административной части и сравните принятые данные.
  5. Витрина. Проверьте карточку, корзину и условия конкретного покупателя. Уточните, какой кеш и какие правила отображения участвуют.

Типовые симптомы и направления проверки

Гипотезы для диагностики; причина подтверждается контрольной позицией
СимптомЧто проверить первымКак подтвердить исправление
Товар есть, цена прежняяНужный тип цены попадает в выгрузку и разрешён для покупателяИзменить тестовую цену, сверить импорт, карточку и корзину
Остаток есть в 1С, сайт показывает нольОтбор складов, резерв, идентификатор предложения и сопоставление складаСверить доступное количество на одной позиции после обмена
Законченный товар продолжает продаватьсяПередачу нулевого остатка и разрешение продажи отсутствующих товаровПроверить переход количества к нулю и попытку оформления
Появились дубли товаровВнешние идентификаторы и правила сопоставления после переноса базыПовторно передать товар и получить обновление той же записи
Заказ появился дваждыИдентификатор заказа, повторную доставку и подтверждение приёмаПовторить передачу в тестовой среде и получить один документ
Обмен останавливается на большом пакетеРазмер запроса, таймауты, место на диске и ошибку конкретного этапаОбработать согласованный объём и проверить продолжение после сбоя

Для штатного обмена Битрикса настройки выгружаемой номенклатуры и остатков описаны в официальных уроках: для модуля обмена 8.1 и для модуля 7.0. Состав полей и настройки зависят от используемого модуля и релиза.

Почему особенно важен нулевой остаток

Допустим, вчера передали четыре единицы товара, а сегодня продали последнюю. Если нулевая позиция исключается из очередного пакета, сайт может сохранить старое значение. При этом её отсутствие в данных нельзя автоматически трактовать как ноль: пакет может быть неполным или содержать только изменения.

После исправления проверьте три перехода: положительный остаток к нулю, ноль к положительному и изменение количества после отмены заказа. Сверьте результат в хранилище сайта и в покупке. Отдельно проверьте предзаказ, если он предусмотрен правилами магазина.

Что делать с прерванным обменом

Сохраните журналы и определите последний завершённый этап. Продолжение либо повторный запуск выполняйте по правилам используемого модуля. Очистка файлов незавершённого сеанса может лишить диагностику данных и нарушить продолжение импорта; любые операции с ними требуют понимания текущего состояния и резервной копии.

Если проблема связана с ограничением сервера, меняйте конкретную настройку после подтверждения причины. Например, ошибка размера запроса требует проверки соответствующего лимита, а отказ доступа — прав технического пользователя. Журнал должен помочь связать ошибку с этапом без раскрытия пароля или данных покупателя.

Как принять исправление

Составьте небольшой набор: обычный товар, вариант товара, нулевое наличие, изменение цены и повторная передача заказа. Выполните цикл обмена и сверьте значения с ожиданиями. Зафиксируйте время последнего успешного сеанса и ответственного за контроль: повторяющийся сбой должен быть замечен до обращения покупателя.

Если ошибки вызваны неясными правилами, начните с карты обмена 1С с сайтом. Для диагностики и доработки интеграции подготовьте конфигурацию, CMS и обезличенный пример проблемы. Если расхождение возникает до выгрузки, проверьте правила складского учёта; обсудить задачу можно через контакты студии.