BR 1.17 — Scripts (1c-import)
Статус: not_started
Контекст
Сейчас в импорт-скрипте scripts/1c-import/import-1c-orp-grouped.py 1С-код опции записывается в description как костыль:
description = '1c:00000005477 | Кофе Капучино макси 300 гр.порц.'
После реализации BR 1.17 (новое поле modifier_options.sku_1c) — мигрировать на явное поле.
Задачи
1. Обновить генератор SQL
- В
import-1c-orp-grouped.py— секция формирования INSERT дляmodifier_options:sku_1c= код 1С (без префикса1c:)description= оригинальное имя из 1С (для аудита), без префикса
- Запустить локально, проверить вывод SQL
2. Бэкфилл существующих данных на test VPS (cifra2)
Однократный SQL-скрипт для миграции уже залитых данных cifra2:
BEGIN;
UPDATE modifier_options
SET
sku_1c = SUBSTRING(description FROM '^1c:([^ |]+)'),
description = REGEXP_REPLACE(description, '^1c:[^ |]+ \| ', '')
WHERE description LIKE '1c:%'
AND modifier_group_id IN (
SELECT id FROM modifier_groups
WHERE franchise_id = 'c2f0a000-0000-0000-0000-000000000001'
);
COMMIT;
-- Проверка:
SELECT name, sku_1c, description FROM modifier_options
WHERE modifier_group_id IN (
SELECT id FROM modifier_groups WHERE franchise_id = 'c2f0a000-0000-0000-0000-000000000001'
);- Прогнать на test VPS через docker exec psql
- Проверить что все 12 опций имеют sku_1c, description содержит только имя
3. Перегенерация cifra2 для верификации end-to-end
- Запустить
import-1c-orp-grouped.pyна тех же 13 ОРП с обновлённой логикой - Применить SQL на test VPS (clean slate — скрипт идемпотентен, чистит данные по uuid-префиксу)
- Через SQL убедиться что состояние БД идентично результату бэкфилла
4. Документация
- Обновить комментарий в
import-1c-orp-grouped.py— убрать упоминание костыля description, добавить про прямое использование sku_1c - Обновить спеку 1С Общепит — в секции «Импорт каталога» обновить описание
Зависимости
- Catalog Service миграция должна быть применена на test VPS (
031-br-1-17-modifier-options-sku-1c.xml)
Ссылки
- BR: 1.17 Привязка номенклатуры к 1С через structural-модификаторы
- Spec: 1С Общепит
- Скрипт:
scripts/1c-import/import-1c-orp-grouped.py