Чистим базу 1С:Розница от старых чеков без потери данных

· 11 мин

Содержание

Архивные чеки в 1С:Розница удаляют в два приёма: сначала помечают на удаление нужные документы «Чек ККМ» за закрытые смены, затем запускают обработку удаления помеченных объектов в разделе Администрирование → Обслуживание. Перед этим делают резервную копию, а в распределённой базе — полную синхронизацию всех узлов.

Архивный чек — это чек закрытой кассовой смены. Его движения уже свёрнуты в «Отчёт о розничных продажах», поэтому остатки и выручка от удаления чеков не меняются. Меняется другое: исчезает детальная история покупок, по которой оформляют возвраты по чеку и смотрят историю клиента. Об этом ниже — подробно.

Когда чистка оправдана и что проверить заранее

Чеки — самые многочисленные документы в рознице. Магазин на две кассы с потоком 400 покупателей в день набирает около 146 000 чеков в год. С табличными частями товаров и оплат это сотни тысяч строк, которые тормозят списки, обмены и обновление конфигурации .

Удалять чеки имеет смысл, если:

  • 🐢 журнал чеков открывается десятки секунд даже с отбором по дате;
  • 📦 файловая база приближается к нескольким гигабайтам и медленно копируется;
  • 🔄 обмен с центральной базой или с УТ тянется часами;
  • ⏳ обновление конфигурации идёт заметно дольше, чем раньше.

Когда делать НЕ нужно:

  • ❌ база небольшая, а тормозит что-то другое (сеть, диск, антивирус) — чистка не поможет;
  • ❌ магазин активно принимает возвраты по чекам прошлых периодов;
  • ❌ программа лояльности строит скидки по истории покупок клиента;
  • ❌ не закрыт период и не сданы отчёты, которые сверяют по чекам.

Сколько хранить

Чек — первичный документ по продаже. Закон № 402-ФЗ требует хранить первичку не меньше пяти лет после отчётного года. Фискальные данные при этом сохраняются в фискальном накопителе и у оператора фискальных данных, но копия в учётной базе бывает нужна для разбирательств с покупателем и проверок.

Практичный компромисс — оставлять в рабочей базе чеки за последние 1–2 года, а полную копию базы до чистки сохранить в архив на отдельный носитель. Если понадобится старый чек, его найдут в архивной копии.

Чек-лист перед стартом

Перед удалением архивных чеков
Выполнено: 0 / 6

Подготовка базы к удалению старых документов

Резервная копия

Удаление помеченных объектов необратимо: вернуть чеки можно только из резервной копии.

Для файловой базы закройте все сеансы и скопируйте каталог базы целиком, вместе с файлом 1Cv8.1CD. Для клиент-серверной базы сделайте выгрузку через Конфигуратор: Администрирование → Выгрузить информационную базу (файл .dt) или резервную копию средствами СУБД.

Выгрузка .dt требует, чтобы в базе не работали другие пользователи. Планируйте её на нерабочее время магазина.

Проверка закрытых смен

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

Чеки открытой смены ещё не архивные: у них есть собственные движения. Их удаление испортит остатки и выручку.

Тестовый прогон на копии

Разверните копию базы и выполните всю процедуру на ней. Так вы узнаете:

  1. Сколько времени занимает удаление (на базе с 500 000 чеков — часы).
  2. Какие объекты не удаляются из-за ссылок.
  3. Не сломались ли отчёты, которыми пользуется бухгалтерия.

После проверки на копии повторите то же в рабочей базе.

Как настроить архивацию чеков в 1С:Розница 2.3 и выше

Архивация — это не удаление. При закрытии кассовой смены программа формирует «Отчёт о розничных продажах», переносит на него движения по товарам и деньгам, а сами чеки переводит в статус «Архивный». Документ остаётся в базе со всеми строками, но больше не делает движений по регистрам.

Отсюда два следствия:

  • ✅ удаление архивных чеков не меняет остатков, выручки и себестоимости — их держит отчёт о розничных продажах;
  • ⚠️ удаление НЕ архивного чека (пробитого в открытой смене) удаляет и его движения.

Где включается архивация

Параметры архивации находятся в настройках розничных продаж в разделе Администрирование. Найдите на форме флаг, связанный с архивированием чеков при закрытии смены, и проверьте, что он включён. В разных релизах 2.x подпись флага и его группа на форме немного различаются, но раздел администрирования продаж тот же.

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

Как найти архивные чеки

Откройте журнал чеков ККМ в разделе Продажи. Установите отбор по статусу «Архивный» и по дате. Дополнительно можно отобрать по кассе или магазину, если чистите не всю базу.

Статусы, которые встретятся в списке:

СтатусЧто значитМожно удалять?
АрхивныйСмена закрыта, движения в отчёте о розничных продажахДа, после копии
ПробитСмена ещё открыта, чек делает движенияНет
ОтложенЧек не пробит, отложен кассиромДа, если это мусор

Отложенные чеки за прошлые месяцы — отдельный источник мусора. Их тоже можно смело помечать на удаление: фискального документа по ним нет.

Пометка чеков и удаление помеченных объектов

Платформа удаляет объекты в два шага. Сначала документ помечается — он остаётся в базе, но перечёркнут. Потом обработка удаления проверяет ссылки и физически стирает то, на что никто не ссылается.

Шаг 1. Пометка на удаление

  1. Откройте журнал чеков ККМ и выставьте отбор: статус «Архивный», дата — до выбранной границы.
  2. Щёлкните по любой строке и нажмите Ctrl+A — выделятся все строки списка с учётом отбора.
  3. Нажмите Delete и подтвердите пометку на удаление.
  4. Дождитесь окончания. На 50 000 строк это может занять несколько минут — не закрывайте окно.

Если чеков сотни тысяч, помечайте порциями по месяцу. Так проще контролировать процесс, и сбой посередине не заставит начинать всё заново.

Пометка не снимает проведение с архивных чеков и не трогает движения отчётов о розничных продажах. Но если в отбор случайно попадут чеки открытой смены, их движения исчезнут после удаления. Перепроверьте отбор по статусу до нажатия Delete.

Шаг 2. Удаление помеченных

Откройте Администрирование → Обслуживание и запустите удаление помеченных объектов. Обработка предлагает два режима:

РежимКогда выбиратьРиски
Автоматическое удаление всех помеченныхПомечены только чеки, другого мусора нетУдалит заодно всё, что помечали раньше другие пользователи
Выборочное удалениеВ базе есть давние пометки на справочниках и документахДольше, но вы видите, что именно удаляется

Для первой чистки берите выборочный режим и отметьте только тип документа «Чек ККМ». Через несколько минут обработка покажет, что удалено, а что нет.

Почему часть чеков не удаляется

Обработка не удалит чек, на который ссылается другой объект. Типичные ссылки:

  • 🔁 возврат по чеку — документ возврата хранит ссылку на исходную продажу;
  • 💳 документы по оплате платёжной картой и эквайрингу;
  • 🎁 начисления и списания бонусных баллов, подарочные сертификаты;
  • 📝 заявки и заказы покупателей, оформленные через чек.

Список оставшихся объектов с причинами выводится после удаления. Решение для каждого случая своё: либо оставить чек (возвраты), либо пометить на удаление и связанный документ, если он тоже старый и закрытый.

Удаление чеков в распределённой информационной базе (РИБ)

В схеме «центральная база + магазины» удаление проходит через обмен. Объект, удалённый в одном узле, регистрируется к отправке, и при следующей синхронизации удаляется в остальных узлах.

Порядок действий

  1. Проведите синхронизацию со всеми узлами и убедитесь, что она завершилась без ошибок.
  2. Остановите работу касс на время операции, чтобы в узлах не появилось новых изменений по удаляемым чекам.
  3. Выполните пометку и удаление в одном узле — обычно в центральной базе.
  4. Запустите синхронизацию ещё раз, затем дважды: первый обмен передаёт удаление, второй подтверждает получение.
  5. Проверьте в узле магазина, что старые чеки исчезли из журнала.

Чего избегать

  • ❌ Не удаляйте одни и те же чеки параллельно в центре и в магазине — получите коллизии и ошибки при обмене.
  • ❌ Не чистите базу, если какой-то узел не выходил на связь неделями: после возвращения он отправит старые версии объектов, и часть чеков «воскреснет».
  • ❌ Не удаляйте чеки только в узле магазина, рассчитывая на облегчение кассы: удаление уйдёт в центр, а там эти данные могли быть нужны для отчётности.

Удаление 200 000 чеков порождает 200 000 записей регистрации изменений. Первый обмен после чистки будет долгим. Запускайте его вечером, а не перед открытием магазина.

Очистка регистрации изменений и журнала регистрации

После удаления чеков база не становится сразу меньше. Место занимают ещё две вещи.

Таблицы регистрации изменений обмена

Каждое изменение для узла обмена хранится, пока узел не подтвердит получение. Если обмен давно не проходил, эти таблицы разрастаются до размеров, сравнимых с самими чеками.

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

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

// Выполнять только для узла, который будет заново инициализирован
// полной выгрузкой: несинхронизированные изменения будут потеряны
Узел = ПланыОбмена.<ИмяПланаОбмена>.НайтиПоКоду("002");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

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

Журнал регистрации

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

Сократить его можно в Конфигураторе: Администрирование → Журнал регистрации, затем команда сокращения журнала с выбором даты, до которой удалить записи. Перед сокращением платформа предлагает сохранить удаляемые записи в файл — согласитесь, если журнал нужен для разбора инцидентов.

Уровень подробности записи задаётся там же. Для рабочей базы магазина обычно хватает уровня «Ошибки», если не требуется аудит действий пользователей.

Сжатие таблиц файловой базы

Файл 1Cv8.1CD после удаления данных не уменьшается сам: освобождённые страницы остаются внутри файла. Чтобы вернуть место на диске, в Конфигураторе запустите Администрирование → Тестирование и исправление с флагом сжатия таблиц информационной базы.

Эта операция требует монопольного доступа: все пользователи должны выйти, кассы — закрыть программу. На базе 5–10 ГБ она занимает от получаса.

Для клиент-серверной базы место возвращают средствами СУБД — например, обслуживанием индексов и сжатием файлов в Microsoft SQL Server или командой VACUUM в PostgreSQL. Этим занимается администратор сервера.

Автоматизация чистки через регламентные задания

Разовая чистка решает проблему на год-два. Чтобы не возвращаться к ней, настройте регулярное удаление.

Удаление помеченных по расписанию

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

Удобная схема:

  1. Раз в месяц ответственный помечает архивные чеки старше выбранного срока — например, 24 месяцев.
  2. Ночью регламентное задание удаляет помеченные объекты.
  3. Утром ответственный смотрит, что не удалилось из-за ссылок.

Список заданий и их расписания — в Администрирование → Обслуживание → Регламентные и фоновые задания. Там же видно, когда задание выполнялось последний раз и с какой ошибкой завершилось.

Условия для работы заданий

  • 🖥️ В клиент-серверной базе регламентные задания выполняет кластер серверов — их блокировка в свойствах базы должна быть снята.
  • 💻 В файловой базе задания выполняются, только пока открыт хотя бы один сеанс программы. Если кассы ночью выключены, запланируйте удаление на время работы или держите открытый сеанс на сервере магазина.
  • ⏰ Ставьте задание на время, когда нет продаж: удаление нагружает базу и может замедлить пробитие чеков.

Пометку архивных чеков по сроку тоже можно автоматизировать — небольшой обработкой или дополнительным регламентным заданием в расширении. Это задача для программиста 1С; типовая конфигурация такой пометки «из коробки» не делает.

Ошибки, из-за которых чистка оборачивается проблемой

  • ⚠️ Удалили чеки открытой смены. Выручка в отчётах занижена, остатки завышены. Исправляется только восстановлением из копии и повторной чисткой с правильным отбором.
  • ⚠️ Удалили без копии. Возврат по старому чеку оформить нечем: придётся проводить возврат без основания, вручную указывая товары и сумму.
  • ⚠️ Чистили РИБ без синхронизации. В одном узле чеки удалены, в другом пришли обратно с обменом. Лечится полной синхронизацией и повторным удалением в одном узле.
  • ⚠️ Ждали, что файл уменьшится сам. После удаления размер 1Cv8.1CD прежний — нужно сжатие таблиц в Конфигураторе.
  • ⚠️ Запустили автоудаление всех помеченных без разбора. Вместе с чеками стёрлись давно помеченные справочники, которые кто-то оставил «на всякий случай».

Частые вопросы

Повлияет ли удаление архивных чеков на отчёт о продажах за прошлый период?
Нет. Движения закрытых смен хранит отчёт о розничных продажах. Отчёты по выручке и остаткам строятся по нему, а не по чекам.
Можно ли после удаления оформить возврат по старому чеку?
По самому чеку — нет, его в базе уже нет. Возврат оформляют без ссылки на чек, указывая товары и сумму вручную, а реквизиты кассового чека берут из данных ОФД.
Нужно ли сообщать в налоговую об удалении чеков из 1С?
Нет. Фискальные данные хранятся в фискальном накопителе и у оператора фискальных данных. Удаление документов в учётной программе их не затрагивает.
Сколько времени займёт удаление 300 000 чеков?
Ориентировочно от нескольких часов до ночи — зависит от диска, типа базы и числа ссылок. Точную цифру даст прогон на копии.
Почему после удаления чеков база работает так же медленно?
Скорее всего, не выполнено сжатие таблиц или пересчёт итогов, либо разрослись регистрация изменений и журнал регистрации. Проверьте их размер и почистите.

Источники

  • Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте», ст. 29
  • Федеральный закон от 22.05.2003 № 54-ФЗ «О применении контрольно-кассовой техники»