Как исправить ошибку пересечения периодов действия счетов в 1С:БГУ 1.0?

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

При ведении учета в государственных учреждениях периодически происходят масштабные изменения в законодательстве. Одним из таких этапов стало внедрение федеральных стандартов бухгалтерского учета (ФСБУ ГФ) с 1 января 2018 года. Фирма «1С» регулярно выпускает обновления для поддержки актуальных требований Единого плана счетов бухгалтерского учета (ЕПСБУ). Однако в процессе обновления конфигурации «1С:Бухгалтерия государственного учреждения 1.0» (БГУ 1.0) пользователи часто сталкиваются с неприятной ошибкой:

Период действия счета пересекается с периодом действия уже существующего счета с таким же кодом. Проверьте период действия счета.

Чаще всего эта коллизия проявляется при работе со счетами 206.61, 302.12, 302.14, 302.66 и другими счетами учета расчетов. Программа блокирует добавление допустимых видов КПС (Классификационных признаков счетов), не дает записывать изменения в плане счетов или вовсе скрывает новые счета в документах. В этой статье мы подробно разберем, почему возникает эта ошибка, как безопасно решить проблему без снятия конфигурации с поддержки и как восстановить стабильную работу базы данных.

Выясняем причину: почему возникает наложение периодов?

Для правильного ведения истории плана счетов в системе 1С у каждого предопределенного счета ЕПСБУ существуют два ключевых реквизита: «Дата начала» и «Дата окончания» действия. Когда законодатели вводят новые счета взамен старых (даже если у них совпадают коды), логика программы требует разграничить их использование во времени:

  1. Для устаревших (старых) счетов должна быть установлена дата окончания действия — например, 31.12.2017.
  2. Для новых счетов должна быть установлена дата начала действия — например, 01.01.2018.

Во время корректного обновления базы данных эти реквизиты заполняются автоматически специальными обработчиками. Однако, если база обновлялась некорректно (например, «через релиз»), если в процессе обновления произошел критический сбой, либо пользователи ранее вручную изменяли структуру плана счетов, автоматические обработчики обновления могут не выполниться до конца. В результате у старого предопределенного счета реквизит ДатаОкончания остается незаполненным (пустым). В системе 1С пустое значение даты интерпретируется как «бесконечность». Программа считает, что старый счет действует вечно, и блокирует создание или запись нового счета с аналогичным кодом из-за наложения временных интервалов.

Рассмотрим подробнее три эффективных метода решения этой проблемы — от простых пользовательских до административных.

Способ №1: Использование стандартной обработки «Групповое изменение реквизитов» (Рекомендуется)

Это наиболее безопасный и быстрый способ, поскольку он не требует изменения конфигурации и снятия базы с поддержки. Процедура выполняется непосредственно в режиме «1С:Предприятие» пользователем с правами «Администратор».

Разберем данный процесс по шагам:

  1. Перейдем в меню Сервис — Универсальные механизмы — Групповое изменение реквизитов (в зависимости от настроек интерфейса меню может называться «Групповая обработка справочников и документов» или запускаться через функции для технического специалиста).
  2. В поле «Изменять:» выберем объект План счетов ЕПСБУ.
  3. Нажмем кнопку «Настройка» (или «Дополнительные параметры») и обязательно установим флажок «Показывать служебные реквизиты». Также включим разрешение на изменение предопределенных элементов, так как счета ЕПСБУ являются предопределенными объектами конфигурации.
  4. В панели отбора нажмем «Добавить условие отбора». Настроим отбор по конкретному коду проблемного счета (например, Код Равно "206.61"). Дополнительно можно добавить отбор по реквизиту Ссылка.ДатаОкончания Пустая, чтобы отобрать только некорректный старый счет.
  5. В списке доступных для изменения реквизитов найдем строку «Дата окончания». Благодаря включенным служебным реквизитам она станет доступна для редактирования.
  6. Установим значение даты окончания действия равным 31.12.2017 (или иной дате окончания действия старой редакции плана счетов согласно законодательству).
  7. Нажмем кнопку «Изменить реквизиты».

После этого система запишет необходимую дату в карточку старого счета, конфликт периодов будет исчерпан, и новые счета автоматически станут доступны для работы.

Способ №2: Программное заполнение даты окончания через обработку кода

Если по какой-то причине стандартная групповая обработка недоступна или у вас есть доступ к внешней обработке «Консоль кода», можно выполнить простое программное действие. Данный способ позволяет обойти любые интерактивные проверки платформы при записи объектов.

Проанализируем пример кода для установки даты окончания действия счета:


// Выбираем старый предопределенный счет, требующий корректировки даты
СчетОбъект = ПланыСчетов.ЕПСБУ.НайтиПоКоду("206.61").ПолучитьОбъект();

Если СчетОбъект <> Неопределено Тогда
    // Записываем дату окончания действия старого счета
    СчетОбъект.ДатаОкончания = Дата("20171231");
    
    // Включаем режим загрузки для отключения лишних проверок при записи
    СчетОбъект.ОбменДанными.Загрузка = Истина;
    
    // Фиксируем изменения в базе данных
    СчетОбъект.Записать();
    Сообщить("Период действия счета успешно изменен!");
КонецЕсли;

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

Способ №3: Вывод реквизита на форму элемента плана счетов в Конфигураторе

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

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

  1. Откроем базу в режиме Конфигуратора.
  2. В дереве метаданных найдем Планы счетов — ЕПСБУ. Раскроем ветку и найдем форму элемента (обычно это ФормаЭлемента).
  3. В свойствах конфигурации включим возможность изменения формы (меню Конфигурация — Поддержка — Настройка поддержки, выставим правило «Объект изменен с сохранением поддержки» для плана счетов).
  4. Перенесем реквизит ДатаОкончания из панели данных на саму форму элемента, чтобы он стал видимым пользователю.
  5. Сохраним конфигурацию базы данных (клавиша F7).
  6. Запустим режим «1С:Предприятие», зайдем в план счетов, откроем карточку старого счета и вручную укажем дату окончания 31.12.2017.
  7. Важно: При следующем обновлении конфигурации вы сможете полностью вернуть объект на стандартную поддержку фирмы «1С», затерев это временное изменение формы.

Решаем проблему зависания при «Восстановлении настроек по умолчанию»

Иногда при попытке исправить план счетов стандартным механизмом «Восстановление настроек по умолчанию» (в окне настройки плана счетов БГУ 1.0) процесс зависает на 40-50% или завершается аварийной ошибкой. Выясним причину этой проблемы.

Зависание связано с нарушением логической целостности в регистре сведений РабочиеСчета. В этом регистре хранятся готовые связки счетов ЕПСБУ, кодов КПС и КЭК. Если в базе скопилось множество устаревших, поврежденных или дублирующихся рабочих счетов, алгоритм восстановления зацикливается.

Чтобы восстановить работоспособность механизма, выполним следующие действия:

  1. Очистка кэша: Закроем программу и очистим локальный кэш «1С» на рабочем компьютере (удалив базу из списка и добавив ее заново, либо вручную очистив папки в каталоге AppData).
  2. Тестирование и исправление (ТиИ): Запустим базу в режиме Конфигуратора, перейдем в меню Администрирование — Тестирование и исправление.... Установим флажки:
    • Реиндексация таблиц базы данных
    • Проверка логической целостности
    • Проверка ссылочной целостности
    В настройках при наличии пустых ссылок («Объект не найден») укажем действие — «Очищать ссылки». Это уберет «мусорные» записи из регистра рабочих счетов. Нажмем «Выполнить».
  3. Использование специализированных обработок: На портале поддержки пользователей БГУ 1.0 скачаем официальную обработку «Поиск и удаление проблемных рабочих счетов». Запустим её в режиме «1С:Предприятие» для выявления и автоматического удаления некорректных записей.
  4. Только после завершения этих процедур снова запустим процедуру восстановления настроек плана счетов по умолчанию. Процесс пройдет быстро и без зависаний.

Что делать после исправления дат действия счетов?

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

Для этого в программе предусмотрен специализированный инструмент. Перейдем в меню Сервис — Служебные — Перенос остатков при изменении плана счетов. С помощью встроенного «Помощника переноса остатков» выполним корректный перенос бухгалтерских итогов в межотчетный период со старых аналитик на новые действующие счета.

В завершение обязательно запустим Технологический анализ (меню Бухгалтерский учет — Технологический анализ), чтобы убедиться в отсутствии расхождений в проводках и корректности формирования регламентированной отчетности учреждения.

← На главную