Почему зависает 1С 7.7 при формировании отчетов и как это исправить?

Системный администратор 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Периодические зависания платформы 1С:Предприятие 7.7 при построении оборотно-сальдовой ведомости, аналитических отчетов или регламентированной отчетности с двухмерным штрихкодом — распространенная проблема. Процесс может зависать «намертво» на разных версиях операционных систем (Windows XP, 7, 8, 10, Server), как на файловых, так и на SQL-базах данных. При этом другие конфигурации (например, «Торговля и склад») на тех же рабочих местах могут работать стабильно.

Разберем по шагам ключевые причины такого поведения и подробно рассмотрим все способы локализации и устранения проблемы.

1. Разрастание и повреждение файла настроек пользователя 1cv7.cfg

Проанализируем специфику работы конфигурации «Бухгалтерский учет 7.7». При каждом открытии списка регламентированных отчетов платформа записывает информацию о списке внешних форм в индивидуальный конфигурационный файл пользователя 1cv7.cfg. Если в информационной базе накоплена отчетность за несколько лет, размер этого файла стремительно увеличивается и может достигать десятков мегабайт, что приводит к зависанию движка интерфейса при обращении к сохраненным параметрам.

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

  1. Завершим все сеансы работы пользователей с информационной базой.
  2. Перейдем в каталог информационной базы (или в индивидуальные каталоги пользователей внутри папки Usrs\<ИмяПользователя>, если они настроены).
  3. Найдем файл 1cv7.cfg и удалим его либо временно переместим в архивный каталог.
  4. Очистим пользовательские файлы настроек форм *.opt и списков *.lst в каталоге пользователя.
  5. При повторном запуске платформа создаст чистый файл 1cv7.cfg минимального размера.

2. Переполнение журнала регистрации 1cv7.mlg

Журнал регистрации событий платформы 1С 7.7 хранится в текстовом файле 1cv7.mlg в подкаталоге SYSLOG каталога базы данных. При активной работе пользователей и формировании тяжелых отчетов платформа непрерывно обращается к этому файлу. Если размер 1cv7.mlg превышает сотни мегабайт или гигабайт, операции записи блокируют выполнение основного потока программы.

Рассмотрим порядок очистки журнала регистрации:

  1. Закроем все запущенные экземпляры 1cv7s.exe или 1cv7.exe.
  2. Перейдем в каталог <КаталогБазы>\SYSLOG\.
  3. Переименуем или удалим файл 1cv7.mlg (при необходимости сохраним старый файл в архив).
  4. При новом старте системы 1С 7.7 автоматически создаст новый пустой файл журнала регистрации.

3. Неактуальный период расчета бухгалтерских итогов

В отличие от оперативного учета в конфигурации «Торговля и склад», стандартные бухгалтерские отчеты строятся на основе таблицы итогов 1SBKTTL. Если дата актуальности итогов сдвинута назад (например, на несколько кварталов или лет) или итоги повреждены, платформа при построении отчета начинает последовательно рассчитывать проводки «на лету» за весь пропущенный период. Это вызывает 100% загрузку процессорного ядра и создает полную иллюзию зависания программы.

Выполним актуализацию итогов:

  1. Запустим 1С в режиме 1С:Предприятие с правами администратора.
  2. Откроем меню Операции -> Управление бухгалтерскими итогами.
  3. Установим расчетный квартал на текущий (или следующий за текущим) период.
  4. Нажмем кнопку Установить и дождитесь завершения расчета.
  5. Для комплексного восстановления откроем базу в режиме Конфигуратор, перейдем в меню Администрирование -> Тестирование и исправление ИБ, отметим пункты Пересчет итогов и Проверка физической целостности, после чего запустим процедуру.

4. Зависание подсистемы печати и драйвера принтера (Moxel.dll)

Табличный движок Moxel.dll в платформе 1С 7.7 при каждом построении отчета инициализирует подсистему Windows GDI и обращается к драйверу принтера, назначенного по умолчанию, для точного расчета координат сетки, высоты строк и границ страниц. Если принтер по умолчанию является сетевым, выключен, долго отвечает по сети или драйвер работает некорректно, программа зависает в ожидании ответа от службы диспетчера печати (Print Spooler).

Для решения проблемы с печатью выполним следующие шаги:

  1. В панели управления Windows откроем раздел Устройства и принтеры.
  2. Назначим принтером по умолчанию локальный виртуальный принтер (например, Microsoft XPS Document Writer или Microsoft Print to PDF).
  3. Откроем редактор реестра regedit и очистим сохраненные настройки параметров страниц отчетов пользователя по ветке: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<ИмяБазы>\V7\<ИмяПользователя>.

5. Сбои модуля формирования двухмерного штрихкода

Формирование листов с двухмерным штрихкодом в регламентированных отчетах опирается на внешнюю библиотеку печати машиночитаемых бланков ФНС, шрифты EanGnivc и COM-компоненты парсера XML. При повреждении этих модулей формирование отчета останавливается без вывода ошибки.

Проверим и восстановим компоненты штрихкодирования:

  1. Установим заново актуальный дистрибутив «Модуль печати машиночитаемых бланков» с правами Администратора.
  2. Проверим наличие файла шрифта EanGnivc.ttf в системном каталоге C:\Windows\Fonts.
  3. Зарегистрируем системные библиотеки парсера MSXML через командную строку от имени администратора с помощью команды regsvr32 msxml4.dll (или msxml6.dll).

6. Фрагментация файлов базы и очистка временных файлов

Для файловых баз данных критическое значение имеет уровень фрагментации таблиц *.dbf и индексных файлов *.cdx. При высокой фрагментации на жестком диске время выборки данных многократно возрастает.

Выполним обслуживание файловой структуры:

  1. Очистим временные папки операционной системы %TEMP% и %TMP% на всех клиентских компьютерах и сервере.
  2. В монопольном режиме удалим из каталога базы все файлы индексов *.cdx и временные файлы *.tmp. При следующем входе в программу произойдет полная переиндексация таблиц.
  3. Выполним дефрагментацию диска, на котором размещена информационная база данных, штатными средствами ОС или специализированными утилитами.

7. Ограничение привязки к ядрам процессора (CPU Affinity)

Платформа 1С 7.7 разрабатывалась для одноядерных систем. На современных многоядерных процессорах под управлением Windows XP, 7 или 8 при интенсивных вычислениях могут возникать внутренние блокировки потоков. Рекомендуется ограничить процесс платформы одним процессорным ядром.

Запуск программы с привязкой к первому ядру процессора можно автоматизировать с помощью командного файла:

start /affinity 1 1cv7s.exe enterprise /D"C:\Bases\Accounting"

Комплексное применение описанных шагов позволяет полностью устранить зависания 1С 7.7 и восстановить нормальную скорость формирования любых отчетов.

← На главную