Ситуация, когда мощный компьютер с современным процессором и SSD-дисками не справляется с банальным распроведением документов за один день в «1С:Управление торговлей 11», встречается довольно часто. Проблема здесь кроется не в «железе», а в особенностях работы платформы 1С в файловом режиме, механизмах самой конфигурации и неоптимизированных доработках. Разберем пошагово, как выявить причину «тормозов» и максимально ускорить процесс.
Прежде чем менять настройки системы, нам необходимо понять, на что именно тратится время. Для этого мы воспользуемся встроенным инструментом разработчика. Запустим «Конфигуратор», перейдем в меню «Отладка» и включим Замер производительности. После этого выполним распроведение нескольких документов в режиме «Предприятие» и вернемся в конфигуратор, чтобы остановить замер.
Проанализируем полученную таблицу. Нас интересуют строки с наибольшим значением в колонке «Чистое время». В УТ 11 основными виновниками часто оказываются:
ПередЗаписью и ПриЗаписи. Если в расширениях (например, для интеграции с системой «Меркурий») написан тяжелый код, он будет выполняться для каждого документа.РегистрСведений.ЗаданияКРаспределениюРасчетов.Файловый режим (файл .1CD) имеет существенное ограничение: при записи данных происходит блокировка всей таблицы. Рассмотрим, как минимизировать нагрузку на дисковую подсистему:
Не регистрировать в настройках журнала регистрации в Конфигураторе.1cv8.exe не сможет использовать более 2-3 ГБ, что приведет к постоянным свопам (сбросу данных на диск) при обработке больших коллекций объектов.AppData\Local\Temp при каждой транзакции.Одной из самых ресурсозатратных операций в 1С является пересчет итогов регистров накопления. Рассмотрим, как ускорить работу через управление итогами:
При распроведении документа система пытается актуализировать остатки. Если мы планируем массовую операцию, целесообразно временно отключить использование итогов. Это можно сделать программно или через стандартную обработку «Управление итогами». После завершения всех операций итоги нужно будет включить и пересчитать.
Также проанализируем РегламентныеЗадания. Если во время удаления документов запускается «Фоновое задание по расчету себестоимости» или «Интеграция с ИС МП», это создаст критические блокировки. На время массовой обработки все фоновые задания лучше остановить.
Существует интересная особенность работы механизмов актуализации данных: распроведение документов в обратном хронологическом порядке (от самого позднего к самому раннему) часто работает быстрее. Это связано с тем, что системе не нужно постоянно «сдвигать» границу актуальности итогов вперед-назад при последовательном удалении документов из середины временного интервала.
Попробуем использовать следующий подход для удаления документов программно:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПоступлениеБезналичныхДенежныхСредств ГДЕ Дата МЕЖДУ &Начало И &Конец УПОРЯДОЧИТЬ ПО Дата УБЫВ";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Объект = Результат.Ссылка.ПолучитьОбъект();
Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЦикла;
Если объем документов за один день настолько велик, что файловая база «зависает» на полчаса, это явный признак того, что возможности формата .1CD исчерпаны. Рассмотрим установку локального SQL-сервера (например, бесплатного PostgreSQL или MS SQL Express). Перевод базы в клиент-серверный режим позволит:
Проанализируем состояние схемы электропитания Windows. Часто на мощных процессорах (как Ryzen 5 3600) по умолчанию стоит режим «Сбалансированный», который снижает частоту ядер при простое. Поскольку 1С во многих операциях работает в один поток, ядро процессора может не успевать «проснуться». Установим режим «Высокая производительность».
Также выясним, нет ли активных сетевых сессий к диску с базой. Если папка с базой расшарена по сети, Windows может тратить дополнительные ресурсы на синхронизацию кэша файловой системы, даже если вы работаете локально. По возможности, на время тяжелых операций отключите общий доступ к папке с базой.
Выполнив эти шаги, мы сможем значительно сократить время выполнения массовых операций в «1С:Управление торговлей», приведя скорость работы программы в соответствие с мощностью вашего оборудования.