Как выполнить полную повторную выгрузку номенклатуры из 1С:Розница в Эвотор 7.2?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Интеграция 1С с терминалами Эвотор через драйвер «ККМ Offline» часто вызывает вопросы у специалистов, особенно когда первичная выгрузка прошла успешно, а последующие попытки обновить данные или загрузить их заново после очистки кассы не приносят результата. Проблема осложняется тем, что обмен данными между 1С и Эвотором происходит через облачный сервис (LMS), который накладывает свои ограничения на структуру данных и механизмы синхронизации.

В данной статье мы подробно разберем, почему «тихо» перестает работать выгрузка полного прайс-листа, как принудительно заставить систему отправить все данные заново и на какие критические ошибки в данных стоит обратить внимание.

Разберем механизм работы драйвера «Оффлайн оборудование»

Для начала проанализируем, как 1С понимает, что именно нужно отправить на кассу. В конфигурации 1С:Розница используется механизм планов обмена. Когда вы нажимаете кнопку «Выгрузить», система не просто берет всю номенклатуру, а обращается к регистрам, где зафиксированы изменения объектов с момента последней удачной синхронизации.

Если вы удалили товары на самом терминале Эвотор, 1С об этом «не знает». С точки зрения учетной системы, данные уже были успешно переданы, и повторная команда «Выгрузить полный прайс» может не сработать, если в узле плана обмена для данной кассы не зарегистрированы изменения.

Шаг 1: Принудительная регистрация изменений для обмена

Если вы столкнулись с ситуацией, когда выгрузка не идет, первым делом необходимо проверить регистрацию объектов. Рассмотрим, как это сделать правильно:

  1. Перейдите в раздел Администрирование — Поддержка и обслуживание.
  2. Найдите пункт Регистрация изменений для обмена данными.
  3. В открывшемся окне выберите узел плана обмена, который соответствует вашему подключаемому оборудованию (кассе Эвотор).
  4. Проанализируйте список объектов. Если напротив Справочник.Номенклатура или Справочник.Штрихкоды стоит «0», значит, 1С считает, что отправлять нечего.

Чтобы «протолкнуть» данные, выполните следующие действия:

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

Шаг 2: Проверка формата НДС и критических ошибок API

Одной из наиболее коварных проблем при интеграции с Эвотором является несоответствие форматов налоговых ставок. Как отмечалось в обсуждении на форуме, Эвотор крайне чувствителен к полю НДС. Рассмотрим ситуацию подробнее.

API Эвотора ожидает строковые константы, такие как VAT_20, VAT_10, NO_VAT. В то же время типовые обработки в старых версиях 1С:Розница (например, 2.2.8.27) могли пытаться передать числовые значения (20, 10) или пустые строки. Если хотя бы один товар в пакете содержит некорректную ставку НДС, облако Эвотора может отклонить весь POST-запрос целиком, при этом в интерфейсе 1С вы можете не увидеть явной ошибки, кроме «Данные не выгружены».

Проанализируем пример того, как данные должны выглядеть в JSON-пакете перед отправкой:


{
  "uuid": "5bc3...",
  "name": "Товар тестовый",
  "code": "00001",
  "barcodes": ["4600000000001"],
  "price": 100.00,
  "tax": "VAT_20",
  "type": "NORMAL"
}

Если вы видите в логах или при отладке в переменной запроса значение "tax": "20" или "tax": "", это является прямой причиной отказа в приеме данных. Необходимо проверить сопоставление налоговых ставок в настройках интеграции или внести правки в программный код обработки выгрузки.

Шаг 3: Очистка облачного личного кабинета

Выясним еще одну причину: Эвотор — это облачная система. Когда вы удаляете товары на физическом терминале 7.2, они удаляются из локальной базы Android-устройства, но зачастую остаются в Личном кабинете Эвотор (облаке).

Когда 1С отправляет товар с тем же UUID (уникальным идентификатором), облако может посчитать, что запись дублируется или не требует обновления, если версия объекта не изменилась. Для «чистого старта» мы рекомендуем:

Шаг 4: Работа с характеристиками и картинками

Эвотор 7.2 имеет ограниченные аппаратные ресурсы (всего 1 ГБ оперативной памяти). Выгрузка большого количества номенклатуры с картинками может приводить к таймаутам при передаче JSON или к зависанию приложения на самой кассе.

Рассмотрим рекомендации по оптимизации:

  1. Характеристики: В 1С:Розница характеристики могут выгружаться как отдельные карточки товаров. Проверьте, не дублируются ли штрихкоды у разных характеристик одного товара. Уникальность штрихкода для Эвотора обязательна!
  2. Картинки: Если номенклатура превышает 1000–2000 позиций, попробуйте временно отключить выгрузку картинок в настройках драйвера. Это позволит понять, заключается ли проблема в объеме данных или в их структуре.
  3. Размер пакета: В коде обработки 1С можно найти ограничение на количество позиций в одном запросе. Если база большая, лучше разбивать выгрузку на порции по 500 единиц.

Технический итог: программная очистка регистрации

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


// Пример программной регистрации всех товаров для узла Эвотор
УзелОбмена = ПланыОбмена.УдаленныйКассовыйУзел.НайтиПоКоду("EV001");
ВыборкаНоменклатуры = Справочники.Номенклатура.Выбрать();

Пока ВыборкаНоменклатуры.Следующий() Цикл
    ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, ВыборкаНоменклатуры.Ссылка);
КонецЦикла;

Этот метод гарантирует, что при следующем сеансе связи 1С попытается отправить абсолютно все карточки товаров, которые есть в базе. Важно: убедитесь, что у товаров заполнены обязательные поля: Наименование, Цена (не нулевая), Штрихкод и Ставка НДС.

Подводя итог: для успешной повторной выгрузки необходимо синхронизировать три состояния: Регистрацию изменений в 1С, Список товаров в Облаке Эвотор и Локальную базу терминала. Только при «чистоте» всех трех звеньев вы сможете добиться корректного наполнения кассы актуальным ассортиментом.

← На главную