При работе в программе 1С:Бухгалтерия государственного учреждения, редакция 2.0 пользователи могут столкнуться с крайне неприятной проблемой: при попытке сформировать отчет «Журнал операций (ф. 0504071)» по Журналу № 2 («Журнал операций с безналичными денежными средствами») невозможно изменить период. Независимо от того, какую дату или интервал пытается выбрать пользователь, программа принудительно сбрасывает значения начала и конца периода на 31 декабря текущего или прошлого года. При этом отчеты по другим журналам (например, по кассе или расчетам с поставщиками) формируются абсолютно корректно и без каких-либо сбоев.
В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем внутренние механизмы работы конфигурации БГУ 2.0 и рассмотрим пошаговые сценарии ее исправления — от простых настроек в пользовательском режиме до административных процедур тестирования базы данных.
Это наиболее вероятная и распространенная причина возникновения данной проблемы, обусловленная методологией ведения учета в государственных учреждениях. По правилам бухучета все операции межотчетного периода (такие как закрытие счетов, технологический перенос остатков, исправление ошибок прошлых лет) должны отражаться условной датой — 31 декабря (а именно последней секундой года: 23:59:59).
Для группировки таких специфических операций в 1С:БГУ используется специализированный журнал (как правило, под кодом «10» или «8-мо» — «Журнал операций межотчетного периода»). В программном коде отчета ЖурналОпераций0504071 жестко зашито поведение: если отчет формируется по журналу, который назначен «межотчетным», выбор периода блокируется, и программа принудительно устанавливает дату на 31 декабря.
Связь конкретного элемента справочника Журналы с этой логикой устанавливается через системную константу. Если в базе произошел технический сбой, некорректно отработал обработчик обновления или имело место ошибочное действие пользователя, в константу «Журнал межотчетного периода» мог записаться рабочий Журнал № 2. В результате программа начинает ошибочно считать журнал по безналичным денежным средствам межотчетным.
Как исправить ситуацию в пользовательском режиме (пошагово):
Для понимания того, как это выглядит на уровне кода, приведем пример того, как система проверяет привязку журнала к межотчетному периоду при инициализации формы отчета:
// Пример логики проверки журнала в модуле отчета
МежотчетныйЖурнал = Константы.ЖурналМежотчетногоПериода.Получить();
Если ВыбранныйЖурнал = МежотчетныйЖурнал Тогда
Элементы.Период.Доступность = Ложь;
Отчет.НачалоПериода = КонецГода(РабочаяДата);
Отчет.КонецПериода = КонецГода(РабочаяДата);
КонецЕсли;
Если очистка локального кэша и создание нового тестового пользователя не принесли результатов, это говорит о том, что повреждены не индивидуальные настройки конкретного сотрудника, а общие (системные) настройки отчета, сохраненные непосредственно в таблицах СУБД.
В процессе работы или при аварийном завершении сеанса 1С настройки вариантов отчетов в Системе компоновки данных (СКД) для Журнала № 2 могли записаться с ошибкой. В результате при открытии формы отчет пытается применить некорректную сохраненную структуру настроек и зависает на дефолтной дате по умолчанию.
Рассмотрим, как сбросить и восстановить настройки отчета:
В практике эксплуатации конфигурации БГУ редакции 2.0 (в частности, на релизе 2.0.57.44 и смежных версиях) нередко возникают ситуации, когда после обновления метаданных нарушаются внутренние уникальные идентификаторы (GUID) предопределенных элементов справочников или Плана счетов ЕПСБУ. Так как счета привязаны к конкретным номерам журналов операций, «битые» ссылки приводят к тому, что отчет не может корректно сопоставить выбранный Журнал № 2 с его системным описанием.
В этом случае стандартные методы исправления не работают, и помогает только строго определенный цикл обслуживания базы данных, который успешно применил автор темы на форуме.
Разберем по шагам этот алгоритм («ТИИ -> Обновление -> ТИИ»):
Администрирование -> Тестирование и исправление.... Обязательно устанавливаем флажки на пунктах Проверка ссылочной целостности и Реконструкция таблиц. В режиме обработки битых ссылок выбираем значение Создавать объекты или Очищать ссылки (в зависимости от политики обслуживания вашей БД). Это действие устраняет логическую несогласованность в системных таблицах СУБД до начала наката обновления.Журналы.Переиндексация таблиц и Пересчет итогов. Это окончательно фиксирует изменения, обновляет индексы базы данных и пересчитывает итоги по исправленным регистрам.Параллельно с этим процессом перед началом всех работ крайне рекомендуется запустить утилиту проверки физической целостности базы данных chdbfl.exe (она находится в каталоге bin установленной платформы 1С) для исправления возможных ошибок на физическом уровне хранения таблиц формата *.1CD.
Для того чтобы избежать повторения подобных сбоев с блокировкой периодов в журналах операций БГУ 2.0, рекомендуем придерживаться следующих правил технического обслуживания базы данных:
.dt или копированием файла базы данных)./ClearCache.