Как исправить ошибку «Таблица не найдена "Константы"» при открытии регламентированных отчетов в 1С?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При попытке открыть журнал регламентированных отчетов пользователи и администраторы могут столкнуться с аварийным завершением работы окна и сообщением об ошибке следующего вида:

{Обработка.ОнлайнСервисыРегламентированнойОтчетности.МодульОбъекта(772)}: Ошибка при вызове метода контекста (Выполнить) по причине: {(5, 2)}: Таблица не найдена "Константы"

Проанализируем природу возникновения этой проблемы и разберем по шагам все надежные способы ее устранения.

Причины возникновения ошибки

Данная ошибка чаще всего связана с несоответствием структуры хранения таблиц констант в СУБД или с некорректно заданными свойствами метаданных:

  1. Перенос базы между версиями платформ 8.2 и 8.3. Платформа 8.3 использует другой механизм организации физических таблиц констант. Если информационная база была открыта и сохранена под управлением платформы 8.3, а затем снова запущена на платформе 8.2 без восстановления из архивной копии, виртуальная сводная таблица Константы становится недоступной для языка запросов 8.2.
  2. Несовместимость режимов блокировок данных. В типовых конфигурациях для констант подсистемы онлайн-сервисов (например, ИспользоватьМеханизмОнлайнСервисовРО и УведомлятьОбОшибкахМеханизмаОнлайнСервисовРО) может быть установлено свойство Режим управления блокировкой данных в значение Управляемый, в то время как для всей конфигурации в целом действует Автоматический режим. На платформе 8.2 наличие констант с разными режимами блокировки блокирует формирование общей таблицы Константы в запросе.
  3. Повреждение кэша метаданных. Локальный кэш пользователя может хранить устаревшую или поврежденную информацию о составе таблиц базы данных после некорректного динамического обновления.

Способ 1. Выполнение тестирования и исправления с реструктуризацией

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

  1. Обязательно создадим резервную копию информационной базы (меню Администрирование → Выгрузить информационную базу).
  2. Откроем пункт главного меню Администрирование → Тестирование и исправление....
  3. Установим флажок напротив пункта Реструктуризация таблиц информационной базы (также рекомендуется отметить Проверка логической целостности и Проверка ссылочной целостности).
  4. Нажмем кнопку Выполнить и дождемся завершения служебного процесса.

После реструктуризации платформа пересоберет внутренние таблицы СУБД, и обращение к константам в запросе будет выполняться корректно.

Способ 2. Запуск базы под актуальной версией платформы 1С:Предприятие 8.3

Если база была непреднамеренно открыта на платформе 8.3, а рабочие места пользователей до сих пор настроены на запуск через 8.2, правильным решением будет полный перевод всех рабочих мест на платформу 8.3.

  1. Установим на компьютеры пользователей актуальный релиз платформы 1С:Предприятие 8.3.
  2. В настройках списка информационных баз для нужной конфигурации явно укажем версию платформы 8.3 (или оставим поле версии пустым, чтобы запуск происходил в старшей версии).
  3. Запустим базу в режиме 1С:Предприятие и проверим открытие регламентированных отчетов.

Способ 3. Изменение режима управления блокировкой констант в метаданных

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

  1. Откроем дерево метаданных в Конфигураторе и развернем ветку Константы.
  2. Найдем объекты:
    • ИспользоватьМеханизмОнлайнСервисовРО
    • УведомлятьОбОшибкахМеханизмаОнлайнСервисовРО
  3. Откроем палитру свойств для каждой из указанных констант.
  4. Найдем свойство Режим управления блокировкой данных в транзакции по умолчанию и изменим его значение с Управляемый на Автоматический (в соответствии с общим режимом конфигурации).
  5. Нажмем клавишу F7 (или пункт меню Конфигурация → Обновить конфигурацию базы данных), чтобы применить изменения.

Способ 4. Исправление исходного кода в модуле обработки

Если не требуется использовать общую виртуальную таблицу констант в запросе, перепишем проблемный участок кода в модуле объекта обработки ОнлайнСервисыРегламентированнойОтчетности.

Вместо формирования запроса к сводной таблице Константы обратимся к конкретной таблице отдельной константы или получим ее значение через объектную модель:


// Вариант 1: Использование обращения к конкретной таблице в запросе
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Константа.ИспользоватьМеханизмОнлайнСервисовРО.Значение КАК ФлагИспользования
    |ИЗ
    |	Константа.ИспользоватьМеханизмОнлайнСервисовРО КАК Константа";

// Вариант 2: Получение значения через объектную модель без запроса
ИспользоватьМеханизм = Константы.ИспользоватьМеханизмОнлайнСервисовРО.Получить();

Способ 5. Очистка клиентского кэша платформы

Если на одном компьютере отчетность открывается без проблем, а на другом возникает ошибка таблицы, очистим локальный кэш пользователя:

  1. Завершим работу всех сеансов 1С на клиентском компьютере.
  2. Откроем проводник Windows и перейдем по путям:
    • %LocalAppData%\1C\1Cv8
    • %AppData%\1C\1Cv8
  3. Удалим все каталоги с уникальными буквенно-цифровыми идентификаторами (например, a8f4c2d1-56e8-49ba...).
  4. Запустим 1С заново.

Временный обходной вариант

Если отчетность требуется срочно сформировать и распечатать до проведения технических работ в Конфигураторе, откроем нужный отчет в обход механизма онлайн-сервисов:

  1. В главном меню программы перейдем в раздел Операции.
  2. Выберем пункт Справочники → Регламентированные отчеты.
  3. В открывшемся списке найдем требуемый отчет (например, «Декларация по НДС» или «Прибыль») и откроем его напрямую двойным кликом мыши.
← На главную