В практике работы с конфигурациями на платформе 1С:Предприятие 8.3 часто возникает ситуация, когда отлаженный механизм внезапно дает сбой. Одной из самых неприятных проблем является «исчезновение» данных в стандартных регламентированных отчетах, таких как «Регистр налогового учета по счетам-фактурам выданным». При этом ситуация выглядит парадоксально: документы в базе есть, консоль запросов их видит, но отчет выводит лишь пустые строки или итоговые цифры без детализации. Давайте детально разберем причины этого явления и пошагово восстановим работоспособность отчета.
Для начала нам необходимо понять фундаментальное различие между выполнением прямого запроса к базе данных и формированием отчета на базе Системы компоновки данных (СКД). Когда мы запускаем запрос в консоли под полными правами, платформа игнорирует ограничения доступа. Однако стандартные отборы и механизмы защиты данных в СКД работают иначе. Рассмотрим основные факторы, влияющие на результат:
RLS, то при выполнении запроса внутри отчета платформа автоматически добавляет условия, отсекающие данные, на которые у пользователя нет прав.Как показывает практика, решение часто кроется в правах доступа. Даже если пользователю назначена роль «Бухгалтер», в ней могут быть настроены ограничения по организациям. Проанализируем, как это исправить. Если вы столкнулись с тем, что объединение прав из эталонной конфигурации (cf) решает проблему, значит, в текущей базе были повреждены или неверно настроены роли.
Разберем процесс восстановления прав. Нам необходимо убедиться, что у роли есть право на чтение следующих объектов:
НДСПродажи.ЖурналУчетаСчетовФактур.РеализацияТоваровУслуг и СчетФактураВыданный.Если вы используете сложный запрос, попробуйте добавить в него ключевое слово РАЗРЕШЕННЫЕ, чтобы проверить, в этом ли дело:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
НДСПродажи.Организация,
НДСПродажи.СчетФактура,
НДСПродажи.СуммаБезНДС
ИЗ
РегистрНакопления.НДСПродажи КАК НДСПродажи
ГДЕ
НДСПродажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
Если после добавления этого слова данные в консоли также пропали или их количество уменьшилось — проблема однозначно в RLS. Для исправления ситуации необходимо в конфигураторе сравнить роли текущей базы с ролями из «чистого» бэкапа и восстановить права на чтение и просмотр указанных регистров.
Часто пользователь сам того не замечая, устанавливает скрытые отборы или меняет группировки, которые сохраняются в информационной базе. Даже обновление конфигурации (cf) не всегда сбрасывает эти настройки, так как они хранятся в системных таблицах СохраненныеНастройки.
Выполним следующие действия для сброса:
Это действие полностью переинициализирует схему СКД, удаляя все наложенные пользователем фильтры, которые могли мешать выводу колонок.
Выясним, не менялись ли настройки налогового учета в последнее время. В программе 1С:Бухгалтерия алгоритм формирования отчета по НДС напрямую зависит от констант. Рассмотрим ситуацию с раздельным учетом НДС.
Если в настройках налогов и отчетов был включен флаг «Ведется раздельный учет входящего НДС», то система начинает иначе интерпретировать движения по регистрам. Если этот флаг был включен «задним числом» (например, сегодня включили с начала года), отчет может перестать видеть данные, так как он ожидает их наличия в регистре РаздельныйУчетНДС, а старые данные лежат только в НДСПродажи.
Проанализируем состояние функциональных опций. В коде формирования отчета часто встречается проверка:
Если ПолучитьФункциональнуюОпцию("ИспользоватьРаздельныйУчетНДС") Тогда
// Используется один алгоритм выборки
Иначе
// Используется другой алгоритм
КонецЕсли;
Если вы обнаружили, что настройки менялись, необходимо перепровести документы за отчетный период, чтобы записи в регистрах соответствовали актуальной учетной политике.
Рассмотрим технический нюанс: отчет по счетам-фактурам выданным строится на основе связи между документом-основанием (Реализация) и самим Счетом-фактурой. Если в результате программного сбоя или некорректного обмена данными ссылка в поле ДокументОснование стала битой (объект не найден), отчет проигнорирует такую запись.
Для диагностики рекомендуем выполнить проверку:
Счет-фактура выданный.Документ-основание.Если все вышеперечисленные методы не помогли, а данные в консоли запросов по-прежнему есть, стоит заподозрить повреждение индексов таблиц. Мы рекомендуем выполнить стандартную процедуру тестирования и исправления:
Также полезно воспользоваться утилитой chdbfl.exe (находится в папке bin платформы 1С) для исправления ошибок на физическом уровне таблиц .1CD.
Мы проанализировали ситуацию с отсутствием данных в регламентированном отчете и выяснили, что наиболее эффективным решением является проверка и восстановление прав доступа (ролей). Использование механизма RLS в СКД часто приводит к «невидимости» данных для обычного пользователя. Помните, что объединение конфигурации с эталонным файлом cf позволяет быстро вернуть настройки прав в исходное, рабочее состояние. Если же это не помогает, последовательно проверяйте настройки учетной политики, кэш платформы и целостность связей документов в регистрах НДС.