Как ускорить работу файловой базы 1С 8.3 УТ при долгом открытии журналов документов

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

При работе с файловыми информационными базами 1С:Предприятие 8.3 конфигурации 1С:Управление торговлей в терминальном режиме (RDP) пользователи нередко сталкиваются с ситуацией, когда открытие стандартного журнала документов занимает от 30 до 60 секунд даже при небольшом объеме базы и низкой загрузке процессора. Разберем по шагам причины такого поведения платформы и рассмотрим комплексный алгоритм диагностики и оптимизации системы.

1. Профилирование узких мест через замер производительности

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

  1. Запустим конфигуратор 1С и откроем меню Отладка → Замер производительности.
  2. В режиме 1С:Предприятие откроем проблемный журнал документов.
  3. Сразу после появления формы на экране вернемся в конфигуратор и остановим замер производительности.

Проанализируем полученную таблицу замеров. Обратим особое внимание на события формы ПриСозданииНаСервере, ПриОткрытии, а также на обработчик динамического списка ПриПолученииДанныхНаСервере. Если задержка происходит в вызовах общих модулей подсистемы БСП (например, при проверке прав, функциональных опций или актуализации реестров), мы сможем локализовать проблемную процедуру.

2. Анализ динамического списка и регистра «Реестр документов»

В типовых решениях УТ журнал документов продаж формируется на основе динамического списка с произвольным запросом к служебному регистру сведений РегистрСведений.РеестрДокументов. Типовой текст запроса выглядит следующим образом:


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

Для ускорения чтения данных динамическим списком проверим следующие параметры:

  1. Динамическое считывание данных: Убедимся, что в свойствах динамического списка флаг ДинамическоеСчитываниеДанных установлен в значение Истина. В противном случае платформа будет пытаться считать всю выборку таблицы целиком при первом открытии.
  2. Индексация и сортировка: Проверим, чтобы в пользовательских настройках списка не была включена сортировка по неиндексированным или составным полям. В файловой СУБД сортировка по неиндексированным колонкам приводит к полному сканированию таблицы.
  3. Сброс персональных настроек: Повреждение кэша настроек формы конкретного пользователя может вызывать длительный парсинг XML-данных при открытии. Нажмем Еще → Установить стандартные настройки в форме списка или очистим сохраненные настройки через Администрирование → Настройки пользователей и прав → Очистка настроек.

3. Отключение фоновых блокировок и регламентных заданий

В файловом режиме любые фоновые операции разделяют единый файл базы 1Cv8.1CD, накладывая табличные блокировки на запись и чтение:

  1. Полнотекстовый поиск: Откроем Администрирование → Общие настройки → Поиск данных и отключим автоматическое обновление индекса полнотекстового поиска либо полностью отключим использование полнотекстового поиска, если он не востребован.
  2. Регламентные задания: Перейдем в Администрирование → Обслуживание → Регламентные и фоновые задания и отключим неиспользуемые механизмы: автоматическую проверку контрагентов по ЕГРЮЛ, синхронизацию с внешними сервисами, загрузку курсов валют по расписанию и пересчет итогов в рабочее время.
  3. Сокращение журнала регистрации: При активной записи событий файловый журнал (1Cv8.lgd) создает дополнительную дисковую нагрузку. Выполним сокращение журнала через меню Администрирование → Настройка журнала регистрации.

4. Устранение сетевых задержек RDP и подсистемы печати

Характерный признак зависания формы ровно на 30–60 секунд в RDP-сессии — опрос очереди подсистемы печати Windows при инициализации табличного документа или командной панели формы. Если перенаправленный из клиентской машины принтер недоступен или сетевой порт не отвечает, вызов зависает на время системного сетевого таймаута.

Для устранения этой проблемы выполним следующие действия:

  1. В параметрах RDP-подключения клиента снимем флаг Принтеры на вкладке Локальные ресурсы.
  2. На сервере назначим принтером по умолчанию локальный виртуальный принтер (например, Microsoft Print to PDF).

5. Настройка операционной системы и аппаратного обеспечения

Файловый движок 1С крайне чувствителен к однопоточной производительности процессора и задержкам дисковой подсистемы. Выполним оптимизацию окружения:

  1. Схема электропитания: В панели управления Windows выберем схему Высокая производительность (High Performance). В энергосберегающих режимах процессор может сбрасывать частоту до минимальных значений при отсутствии высокой многопоточной нагрузки.
  2. Мониторинг диска: Запустим утилиту resmon.exe, перейдем на вкладку Диск и проанализируем длину очереди диска и процент активного времени во время открытия журнала. Для файловой базы критически важно расположение на быстром SSD-накопителе.
  3. Исключения антивируса: Добавим каталог с базой данных и процессы 1cv8.exe, 1cv8c.exe в список исключений сканирования в реальном времени.
  4. Тестирование целостности: Выполним утилиту проверки целостности chdbfl.exe (из каталога bin платформы 1С) и запустим процедуру Тестирование и исправление информационной базы в конфигураторе с переиндексацией таблиц.

6. Архитектурная оптимизация: публикация базы на веб-сервере

Для кардинального ускорения файловой базы при одновременной работе нескольких пользователей по сети или RDP рекомендуется опубликовать базу на локальном веб-сервере (Internet Information Services (IIS) или Apache). Подключение тонкого клиента по протоколу HTTP/HTTPS разделяет серверную и клиентскую логику, изолирует кэширование метаданных в пуле веб-сервера и минимизирует блокировки файлов базы данных.

← На главную