При переходе на актуальные релизы конфигурации 1С:Розница, в частности с версии 2.3.15.37 на 2.3.15.47, многие технические специалисты сталкиваются с критическим замедлением процесса обновления. Ситуация, когда процедура реструктуризации базы данных занимает десятки часов или даже несколько суток, является следствием масштабных изменений в архитектуре хранения данных, связанных с поддержкой ФФД 1.2 и обязательной маркировкой товаров. В этой статье мы подробно разберем причины возникновения такой проблемы и рассмотрим пошаговые алгоритмы её решения.
Выясним причину, почему именно этот релиз вызывает такие сложности. В версии 2.3.15.47 происходит глубокая модификация метаданных для документов Документ.ЧекККМ и связанных с ними регистров. Проанализируем техническую сторону процесса: система 1С в режиме Конфигуратора выполняет физическую перестройку таблиц базы данных. Если ваша база работает в файловом режиме (формат .1CD), то при добавлении новых реквизитов или изменении типов существующих полей платформа создает временную копию всей таблицы, переносит туда данные и заново строит индексы. Для уменьшения объема таких таблиц перед обновлением можно использовать готовое решение для частичной очистки регистра фискальных операций.
Для баз с большим накопленным архивом (например, более 500 000 чеков) этот процесс становится «узким местом». Ситуация усугубляется, если используются медленные жесткие диски (HDD) или специфические версии платформы 1С, такие как 8.3.23.1782, которые могут иметь неоптимальные алгоритмы работы с временными файлами при реструктуризации. Чтобы значительно сократить количество записей перед началом процесса, можно задействовать обработку для удаления чеков ККМ.
Разберем самый очевидный и эффективный метод — уменьшение объема обрабатываемых данных. Основная нагрузка при реструктуризации ложится на таблицу чеков. Рассмотрим, как можно подготовить базу:
РегистрСведений.ФискальныеОперации. В последних релизах он стал расти лавинообразно, так как хранит полные XML-ответы от кассового оборудования. Начиная с версии 2.3.15, разработчики добавили штатный инструмент для его обслуживания. Перейдем в раздел Продажи — Сервис — Очистка фискальных данных. Удаление старых записей из этого регистра может сократить объем базы на несколько гигабайт.Рассмотрим профессиональный подход, который позволяет сократить время обновления с суток до одного часа. Файловая СУБД 1С крайне неэффективна при массовой записи данных. Попробуем выполнить обновление на SQL-движке:
Шаг 1. Выгрузим информационную базу в файл .dt.
Шаг 2. Развернем базу на сервере MS SQL Server или PostgreSQL (можно использовать даже экспресс-версии или ознакомительные лицензии).
Шаг 3. Запустим обновление конфигурации в клиент-серверном режиме. SQL-сервер гораздо быстрее справляется с операциями ALTER TABLE и перестроением индексов, так как эффективно использует оперативную память и многопоточность.
Шаг 4. После успешного завершения реструктуризации и выполнения обработок обновления в режиме «Предприятие», выгрузим базу обратно в .dt и загрузим в файловый вариант для дальнейшей работы на торговой точке.
Если нет возможности перейти на SQL, проанализируем настройки текущего сервера или компьютера:
%TEMP%. Постоянная проверка этих файлов антивирусом (особенно Windows Defender) способна замедлить процесс в несколько раз. На время обновления необходимо полностью приостановить защиту.8.3.23.1782 и процесс идет неестественно медленно, попробуйте выполнить обновление на более стабильных ветках, например, 8.3.22 последних патчей или перейдите на актуальную 8.3.24/25, где оптимизирована работа с файловой СУБД.После того как этап реструктуризации в Конфигураторе будет завершен, начнется этап отложенного обновления данных в режиме «Предприятие». Проанализируем ситуацию: если база открылась, но работает очень медленно, значит, в фоне выполняются регламентные задания по конвертации данных чеков.
Посмотрим, как можно управлять этим процессом. Вы можете программно или через интерфейс «Обслуживание» контролировать скорость выполнения обработок. Если необходимо срочно начать продажи, можно временно приостановить некоторые задания, однако помните, что до их завершения отчетность по маркированным товарам может быть неактуальна.
Для разработчиков, которые хотят автоматизировать проверку состояния обновления, можно использовать следующий фрагмент кода, чтобы понять, остались ли незавершенные процедуры:
Процедуры = ОбновлениеИнформационнойБазы.ВсеПроцедурыОбновления();
Для Каждого СтрокаПроцедуры Из Процедуры Цикл
Если СтрокаПроцедуры.Статус = "Ошибка" Или СтрокаПроцедуры.Статус = "Выполняется" Тогда
Сообщить("Есть незавершенные задачи обновления: " + СтрокаПроцедуры.ИмяПроцедуры);
КонецЕсли;
КонецЦикла;
Мы выяснили, что долгое обновление 1С:Розница 2.3.15.47 — это не случайный сбой, а закономерный результат обработки больших массивов данных чеков при изменении законодательства. Чтобы избежать многочасовых простоев, всегда рекомендуем:
Соблюдение этих правил позволит вам проводить обновления штатно и предсказуемо, сохраняя работоспособность торговой точки.