Редакция СТУДИИ-88 ·
Не обновляются цены и остатки из 1С: как найти причину
Сообщение об успешном обмене ещё не подтверждает, что покупатель видит верные данные. Проверяем одну позицию на каждом этапе и отделяем причины по симптомам.
Если цены или остатки из 1С не обновляются на сайте, выберите одну проблемную позицию и проследите её от базы до витрины. Такой разбор показывает, на каком этапе потерялось изменение: при подготовке данных, передаче, импорте или отображении покупателю.
Сначала сохраните время последнего обмена, текст ошибки и контрольные значения. Все изменения настроек проверяйте на тестовой копии либо в согласованное окно. Содержимое обмена может включать данные покупателей, поэтому перед передачей файлов для диагностики уберите из копии персональные данные и секреты доступа.
Какие сведения собрать по одному товару
- Название, артикул и внешний идентификатор товара; для варианта — идентификатор предложения.
- Цену и тип цены в 1С, валюту и ожидаемую цену на сайте.
- Склад, фактический остаток, резерв и ожидаемое доступное количество.
- Время изменения в базе и начало и окончание последнего сеанса.
- Значения в данных передачи, в административной части сайта и на витрине.
Одинаковый артикул ещё не доказывает, что сравниваются одинаковые записи. Например, остаток может принадлежать конкретному размеру, а проверяется родительская карточка. Для сопоставления используйте идентификатор, по которому настроен обмен.
Проверяйте обмен по этапам
- Исходная база. Убедитесь, что нужное изменение записано и входит в правила выгрузки.
- Подготовленные данные. Найдите идентификатор и нужное значение в выгрузке либо ответе API. Если его там нет, исследуйте настройки отбора и подготовку данных.
- Передача и импорт. Сопоставьте журнал сеанса с журналом приёма на сайте. Проверьте, обработан ли весь пакет.
- Хранилище сайта. Откройте именно эту позицию в административной части и сравните принятые данные.
- Витрина. Проверьте карточку, корзину и условия конкретного покупателя. Уточните, какой кеш и какие правила отображения участвуют.
Типовые симптомы и направления проверки
| Симптом | Что проверить первым | Как подтвердить исправление |
|---|---|---|
| Товар есть, цена прежняя | Нужный тип цены попадает в выгрузку и разрешён для покупателя | Изменить тестовую цену, сверить импорт, карточку и корзину |
| Остаток есть в 1С, сайт показывает ноль | Отбор складов, резерв, идентификатор предложения и сопоставление склада | Сверить доступное количество на одной позиции после обмена |
| Законченный товар продолжает продаваться | Передачу нулевого остатка и разрешение продажи отсутствующих товаров | Проверить переход количества к нулю и попытку оформления |
| Появились дубли товаров | Внешние идентификаторы и правила сопоставления после переноса базы | Повторно передать товар и получить обновление той же записи |
| Заказ появился дважды | Идентификатор заказа, повторную доставку и подтверждение приёма | Повторить передачу в тестовой среде и получить один документ |
| Обмен останавливается на большом пакете | Размер запроса, таймауты, место на диске и ошибку конкретного этапа | Обработать согласованный объём и проверить продолжение после сбоя |
Для штатного обмена Битрикса настройки выгружаемой номенклатуры и остатков описаны в официальных уроках: для модуля обмена 8.1 и для модуля 7.0. Состав полей и настройки зависят от используемого модуля и релиза.
Почему особенно важен нулевой остаток
Допустим, вчера передали четыре единицы товара, а сегодня продали последнюю. Если нулевая позиция исключается из очередного пакета, сайт может сохранить старое значение. При этом её отсутствие в данных нельзя автоматически трактовать как ноль: пакет может быть неполным или содержать только изменения.
После исправления проверьте три перехода: положительный остаток к нулю, ноль к положительному и изменение количества после отмены заказа. Сверьте результат в хранилище сайта и в покупке. Отдельно проверьте предзаказ, если он предусмотрен правилами магазина.
Что делать с прерванным обменом
Сохраните журналы и определите последний завершённый этап. Продолжение либо повторный запуск выполняйте по правилам используемого модуля. Очистка файлов незавершённого сеанса может лишить диагностику данных и нарушить продолжение импорта; любые операции с ними требуют понимания текущего состояния и резервной копии.
Если проблема связана с ограничением сервера, меняйте конкретную настройку после подтверждения причины. Например, ошибка размера запроса требует проверки соответствующего лимита, а отказ доступа — прав технического пользователя. Журнал должен помочь связать ошибку с этапом без раскрытия пароля или данных покупателя.
Как принять исправление
Составьте небольшой набор: обычный товар, вариант товара, нулевое наличие, изменение цены и повторная передача заказа. Выполните цикл обмена и сверьте значения с ожиданиями. Зафиксируйте время последнего успешного сеанса и ответственного за контроль: повторяющийся сбой должен быть замечен до обращения покупателя.
Если ошибки вызваны неясными правилами, начните с карты обмена 1С с сайтом. Для диагностики и доработки интеграции подготовьте конфигурацию, CMS и обезличенный пример проблемы. Если расхождение возникает до выгрузки, проверьте правила складского учёта; обсудить задачу можно через контакты студии.