Как ускорить массовое удаление и распроведение документов в 1С:Управление торговлей

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

Ситуация, когда мощный компьютер с современным процессором и SSD-дисками не справляется с банальным распроведением документов за один день в «1С:Управление торговлей 11», встречается довольно часто. Проблема здесь кроется не в «железе», а в особенностях работы платформы 1С в файловом режиме, механизмах самой конфигурации и неоптимизированных доработках. Разберем пошагово, как выявить причину «тормозов» и максимально ускорить процесс.

Шаг 1: Диагностика с помощью замера производительности

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

Проанализируем полученную таблицу. Нас интересуют строки с наибольшим значением в колонке «Чистое время». В УТ 11 основными виновниками часто оказываются:

Шаг 2: Оптимизация работы файловой базы данных

Файловый режим (файл .1CD) имеет существенное ограничение: при записи данных происходит блокировка всей таблицы. Рассмотрим, как минимизировать нагрузку на дисковую подсистему:

  1. Отключение Журнала регистрации: Каждое действие по удалению или изменению статуса документа записывается в файл журнала. При массовых операциях это создает огромную очередь на запись. Временно установим режим Не регистрировать в настройках журнала регистрации в Конфигураторе.
  2. Проверка битности платформы: Убедимся, что используется 64-битная версия платформы 1С. Даже если у вас 32 ГБ оперативной памяти, 32-битный процесс 1cv8.exe не сможет использовать более 2-3 ГБ, что приведет к постоянным свопам (сбросу данных на диск) при обработке больших коллекций объектов.
  3. Антивирусные исключения: Проверим, чтобы антивирус (например, NOD32 или Windows Defender) не сканировал файл базы данных и временные файлы пользователя AppData\Local\Temp при каждой транзакции.

Шаг 3: Управление итогами и регламентными заданиями

Одной из самых ресурсозатратных операций в 1С является пересчет итогов регистров накопления. Рассмотрим, как ускорить работу через управление итогами:

При распроведении документа система пытается актуализировать остатки. Если мы планируем массовую операцию, целесообразно временно отключить использование итогов. Это можно сделать программно или через стандартную обработку «Управление итогами». После завершения всех операций итоги нужно будет включить и пересчитать.

Также проанализируем РегламентныеЗадания. Если во время удаления документов запускается «Фоновое задание по расчету себестоимости» или «Интеграция с ИС МП», это создаст критические блокировки. На время массовой обработки все фоновые задания лучше остановить.

Шаг 4: Порядок обработки документов

Существует интересная особенность работы механизмов актуализации данных: распроведение документов в обратном хронологическом порядке (от самого позднего к самому раннему) часто работает быстрее. Это связано с тем, что системе не нужно постоянно «сдвигать» границу актуальности итогов вперед-назад при последовательном удалении документов из середины временного интервала.

Попробуем использовать следующий подход для удаления документов программно:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПоступлениеБезналичныхДенежныхСредств ГДЕ Дата МЕЖДУ &Начало И &Конец УПОРЯДОЧИТЬ ПО Дата УБЫВ";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
    Объект = Результат.Ссылка.ПолучитьОбъект();
    Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЦикла;

Шаг 5: Переход на клиент-серверный вариант (SQL)

Если объем документов за один день настолько велик, что файловая база «зависает» на полчаса, это явный признак того, что возможности формата .1CD исчерпаны. Рассмотрим установку локального SQL-сервера (например, бесплатного PostgreSQL или MS SQL Express). Перевод базы в клиент-серверный режим позволит:

Дополнительные технические советы

Проанализируем состояние схемы электропитания Windows. Часто на мощных процессорах (как Ryzen 5 3600) по умолчанию стоит режим «Сбалансированный», который снижает частоту ядер при простое. Поскольку 1С во многих операциях работает в один поток, ядро процессора может не успевать «проснуться». Установим режим «Высокая производительность».

Также выясним, нет ли активных сетевых сессий к диску с базой. Если папка с базой расшарена по сети, Windows может тратить дополнительные ресурсы на синхронизацию кэша файловой системы, даже если вы работаете локально. По возможности, на время тяжелых операций отключите общий доступ к папке с базой.

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

← На главную