При попытке открыть журнал регламентированных отчетов пользователи и администраторы могут столкнуться с аварийным завершением работы окна и сообщением об ошибке следующего вида:
{Обработка.ОнлайнСервисыРегламентированнойОтчетности.МодульОбъекта(772)}: Ошибка при вызове метода контекста (Выполнить) по причине: {(5, 2)}: Таблица не найдена "Константы"
Проанализируем природу возникновения этой проблемы и разберем по шагам все надежные способы ее устранения.
Данная ошибка чаще всего связана с несоответствием структуры хранения таблиц констант в СУБД или с некорректно заданными свойствами метаданных:
Константы становится недоступной для языка запросов 8.2.ИспользоватьМеханизмОнлайнСервисовРО и УведомлятьОбОшибкахМеханизмаОнлайнСервисовРО) может быть установлено свойство Режим управления блокировкой данных в значение Управляемый, в то время как для всей конфигурации в целом действует Автоматический режим. На платформе 8.2 наличие констант с разными режимами блокировки блокирует формирование общей таблицы Константы в запросе.Самый простой и эффективный способ восстановить целостность структуры таблиц без изменения метаданных — выполнить штатную процедуру реструктуризации через Конфигуратор.
После реструктуризации платформа пересоберет внутренние таблицы СУБД, и обращение к константам в запросе будет выполняться корректно.
Если база была непреднамеренно открыта на платформе 8.3, а рабочие места пользователей до сих пор настроены на запуск через 8.2, правильным решением будет полный перевод всех рабочих мест на платформу 8.3.
Если конфигурация снята с поддержки или находится на частичной поддержке с возможностью редактирования, а информационная база должна строго работать на платформе 8.2, исправим свойства проблемных констант.
ИспользоватьМеханизмОнлайнСервисовРОУведомлятьОбОшибкахМеханизмаОнлайнСервисовРОЕсли не требуется использовать общую виртуальную таблицу констант в запросе, перепишем проблемный участок кода в модуле объекта обработки ОнлайнСервисыРегламентированнойОтчетности.
Вместо формирования запроса к сводной таблице Константы обратимся к конкретной таблице отдельной константы или получим ее значение через объектную модель:
// Вариант 1: Использование обращения к конкретной таблице в запросе
Запрос.Текст =
"ВЫБРАТЬ
| Константа.ИспользоватьМеханизмОнлайнСервисовРО.Значение КАК ФлагИспользования
|ИЗ
| Константа.ИспользоватьМеханизмОнлайнСервисовРО КАК Константа";
// Вариант 2: Получение значения через объектную модель без запроса
ИспользоватьМеханизм = Константы.ИспользоватьМеханизмОнлайнСервисовРО.Получить();
Если на одном компьютере отчетность открывается без проблем, а на другом возникает ошибка таблицы, очистим локальный кэш пользователя:
%LocalAppData%\1C\1Cv8%AppData%\1C\1Cv8a8f4c2d1-56e8-49ba...).Если отчетность требуется срочно сформировать и распечатать до проведения технических работ в Конфигураторе, откроем нужный отчет в обход механизма онлайн-сервисов: