При работе в конфигурациях 1С:Комплексная автоматизация 2 и 1С:ERP версии 2.5.18.41 и смежных релизов пользователи часто сталкиваются с критической проблемой: при попытке расшифровать строку 010 раздела 3 (или другие показатели выручки) в декларации по НДС система полностью зависает. При этом программа не выдает никаких ошибок, а в «Журнале регистрации» не фиксируется никаких нештатных ситуаций. В данной статье мы детально разберем, почему это происходит, и рассмотрим пошаговые алгоритмы решения проблемы.
Прежде всего, выясним причину такого поведения системы. Проблема носит массовый характер и связана с обновлением механизмов компоновки данных. В новых версиях 2.5.18 разработчики внесли изменения в модули, отвечающие за сбор данных для расшифровки как НДС, так и Налога на прибыль. Основная техническая сложность заключается в формировании неоптимальных SQL-запросов к регистру накопления НДС Продажи.
Когда мы нажимаем кнопку Расшифровать, система пытается сопоставить данные регистров с аналитикой бухгалтерских счетов. Если в базе данных накоплен большой объем записей или включен механизм ограничения доступа на уровне записей (RLS), планировщик SQL-сервера может выбрать неверный план выполнения, что приводит к «бесконечному» ожиданию ответа от СУБД.
Рассмотрим методику, которая поможет нам понять, является ли проблема системной или она вызвана конкретным документом. Попробуем сузить область поиска:
Разберем основное решение. Поскольку проблема признана официальной ошибкой (зарегистрирована под номером 00-00644363), компания 1С выпускает оперативные исправления, не дожидаясь выхода нового релиза. Эти исправления называются патчами.
Для исправления работы расшифровки нам необходимо выполнить следующие действия:
ОтчетыОбщегоНазначения или специализированными модулями НДС.Если расшифровка нужна срочно для сверки с Анализом счета, а патчи не помогают или их установка невозможна в данный момент, воспользуемся альтернативным инструментом. Рассмотрим, как настроить Универсальный отчет, чтобы он заменил стандартную расшифровку:
Регистратор, СтавкаНДС и ВидЦенности.Такой отчет работает напрямую с данными регистра, минуя сложные механизмы компоновки декларации, и формируется значительно быстрее без зависаний.
Иногда выясним причину в неактуальных статистиках SQL-сервера. Если вы используете клиент-серверный вариант работы, выполните следующие операции в SQL Server Management Studio:
Update Statistics) для таблиц регистров НДС.В файловом варианте базы данных рекомендуется запустить процедуру Тестирование и исправление через Конфигуратор с включенной опцией Реиндексация таблиц информационной базы.
Проанализируем еще один способ, упомянутый опытными специалистами. Если у вас есть возможность вносить изменения в конфигурацию, можно попробовать временно подменить объект расшифровки. Рассмотрим примерный алгоритм логики подмены:
// В модуле отчета РасшифровкаПоказателейНДС
// проверяется соответствие версии схемы компоновки данных.
// Если в новом релизе запрос изменен некорректно,
// можно принудительно вызвать старый алгоритм формирования временных таблиц.
// Однако это требует глубокого анализа кода модуля Менеджер.
В большинстве случаев достаточно просто временно отключить RLS в тестовой копии базы, чтобы убедиться, что проблема именно в производительности запроса под правами пользователя. Если под полными правами (Администратор) расшифровка открывается, значит, необходимо оптимизировать именно шаблоны ограничений доступа.
Подводя итог, отметим, что зависание расшифровки в КА 2.5.18 — это следствие оптимизации кода, которая привела к обратному эффекту. Основным путем решения остается установка официальных патчей от 1С и использование прямого обращения к регистрам через универсальные отчеты до момента выхода стабильного обновления конфигурации.