Очистка данных для «Розница 2.3»: архивные чеки, марки ЕГАИС, фискальные операции, штрихкоды упаковок
Учетные задачи - Розничная торговля
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
## Зачем это нужно
За пару лет работы магазина база «Розницы» разрастается до десятков гигабайт. Основной объём занимают не продажи и остатки, а служебные данные:
- **отложенные, аннулированные и архивные чеки ККМ**: тысячи документов без движений;
- **регистр «Акцизные марки ЕГАИС»**: каждая проданная бутылка остаётся в нём навсегда;
- **регистр «Фискальные операции»**: история обмена с ККТ;
- **справочник «Штрихкоды упаковок товаров»**: коды маркировки и упаковок, на которые уже ничего не ссылается.
Из-за большой базы медленнее идут обновление конфигурации, резервное копирование и «Тестирование и исправление». Часть регламентных заданий очистки в рабочих базах часто выключена.
Обработка собирает эту очистку в одной форме: сначала показывает, сколько можно удалить и сколько места занимают таблицы, а после подтверждения удаляет.
## Что удаляется
- Документы «Чек ККМ» старше 12 мес. (по умолчанию): Статус «Архивный», «Аннулированный», «Отложенный» или пустой; дата раньше границы; **нет движений ни в одном регистре** и **нет ссылок** из других данных. Вместе с чеком удаляются его записи «Фискальных операций»
- Регистр сведений «Акцизные марки ЕГАИС» старше 3 мес. (по умолчанию: Статус «Реализована», дата документа-основания раньше границы
- Регистр сведений «Фискальные операции»: Дата операции раньше границы старше 1 мес.
- Справочник «Штрихкоды упаковок товаров»: Все элементы, на которые нет ссылок, с учётом вложенности упаковок
Сроки задаются в месяцах, а форма сразу показывает дату-границу («т.е. раньше 06.10.2025»).
Дополнительно можно поставить флажок **«Включить штатные регламентные задания очистки, если выключены»**: «Очистка истории фискальных операций», «Очистка ненужных файлов», «Пометка на удаление транспортных контейнеров ЭДО», «Удаление помеченных объектов», «Удаление неиспользованных кодов маркировки ИС МП», «Очистка пула кодов маркировки ИС МП». Обработка включает только выключенные задания, их расписания не меняет. В режиме анализа она показывает в журнале текущее состояние и расписание каждого задания.
## Как обеспечивается безопасность данных
- **Чеки с движениями не удаляются.** Список регистров берётся из метаданных (`Метаданные.Документы.ЧекККМ.Движения`), поэтому остатки, продажи и взаиморасчёты не меняются. Проверено на реальной базе: после очистки остатки всех регистров накопления совпали с исходной базой построчно, в разрезе всех измерений.
- **Ссылки проверяются по метаданным конфигурации.** Места использования ищутся во всех реквизитах и табличных частях ссылочных объектов, в измерениях, ресурсах и реквизитах регистров, в константах. Учитываются исключения поиска ссылок БСП (`ОбщегоНазначения.ИсключенияПоискаСсылок`). Чек, на который ссылается, например, чек возврата, останется в базе.
- **Вложенность упаковок.** Если упаковка (короб, блок) используется, то используемыми считаются и все вложенные в неё штрихкоды, на любую глубину. Предопределённые элементы не удаляются.
- **Порции и транзакции.** Данные удаляются порциями (по умолчанию 1000 объектов или записей), каждая порция в своей транзакции. Если порция не удалилась, объекты из неё удаляются по одному: проблемный объект пропускается и попадает в журнал с текстом ошибки, а остальные удаляются.
- **Без регистрации в обмене.** `ОбменДанными.Загрузка = Истина`, получатели не заполняются. Удаление не уходит в узлы РИБ и другие планы обмена, поэтому каждую базу (центральную и магазины) очищают отдельно.
- **Подтверждение перед удалением** и предупреждение, если в базе работают другие пользователи.
- **Журнал регистрации.** Параметры запуска, итоги по каждому объекту и ошибки записываются в журнал регистрации (событие «Очистка данных (Розница)»).
## Порядок работы
1. Сделайте резервную копию базы. Лучше сначала проверить обработку на копии.
2. Откройте обработку: «Файл — Открыть» или из раздела «Дополнительные отчёты и обработки».
3. Отметьте, что удалять, и задайте сроки.
4. Нажмите **«Анализ»**. Обработка ничего не меняет, только считает. Для каждого объекта показывается, сколько записей найдено к удалению, сколько пропускается и почему («с движениями 142, со ссылками 14 771»), а также текущий размер таблиц в МБ.
5. Нажмите **«Удалить»** и подтвердите.
6. Чтобы уменьшился размер файла базы, выполните в конфигураторе «Администрирование — Тестирование и исправление — Сжатие таблиц информационной базы». В файловой базе место освобождается только после сжатия, обработка напоминает об этом после удаления.
Анализ и удаление выполняются в фоновом задании (БСП «Длительные операции»), поэтому форма показывает прогресс, а операцию можно отменить. Порции, удалённые до отмены, не восстанавливаются.
После выполнения таблица результатов заполняется итогами, а внизу формы выводится подробный журнал:
## Запуск по расписанию
Обработка поддерживает регистрацию в справочнике «Дополнительные отчёты и обработки» (Администрирование — Печатные формы, отчёты и обработки) и даёт две команды:
- **«Очистка данных (Розница)»**: открывает форму;
- **«Очистка данных по расписанию (сохранённые настройки)»**: серверный метод для регламентного задания.
Если открыть обработку из карточки, на форме появляется кнопка **«Сохранить настройки для расписания»**. Она сохраняет выбранные параметры и сразу включает регламентное задание (по умолчанию ежедневно в 2:00; если расписание уже задано в карточке, оно сохраняется). Сроки считаются от даты каждого запуска, поэтому граница удаления сдвигается сама.
В файловой базе регламентные задания выполняются, только пока открыт хотя бы один сеанс 1С.
## Совместимость и требования
- Конфигурация: «Розница», редакция 2.3. Проверено на 2.3.25.23, БСП 3.1.11.
- Платформа: 8.3.27; проверено в файловом варианте.
- Интерфейс: управляемые формы, тонкий клиент.
- Права: полные права (удаление данных и изменение регламентных заданий; при регистрации в справочнике безопасный режим выключен).
- Изменять конфигурацию не нужно, снимать её с поддержки тоже.
## Ограничения
- Удаление необратимо, делайте резервную копию.
- Ссылки ищутся по реквизитам, измерениям, ресурсам и константам. Значения внутри реквизитов типа «Хранилище значения» не анализируются.
- В файловой базе транзакция блокирует таблицы, поэтому удаление лучше запускать, когда пользователи не работают.
- Флажок «Удаление помеченных объектов» включает штатное задание, которое удаляет **все** помеченные на удаление объекты базы, а не только данные этой обработки.
Проверено на следующих конфигурациях и релизах:
- Розница, редакция 2.3, релизы 2.3.25.23
Вступайте в нашу телеграмм-группу Инфостарт