В практике работы с программами 1С бухгалтеры иногда сталкиваются с ситуацией, когда рабочий счет учета (например, 201.35 или 104.36) внезапно превращается в счет-группу (папку). Это происходит, если к счету ошибочно создали подчиненный субсчет, указав основной счет в качестве родителя. После этого программа блокирует проведение проводок по счету, так как проводки по счетам-группам в 1С запрещены. При этом простое удаление созданного субсчета часто не возвращает счет в исходное состояние — он продолжает отображаться как папка. Разберем причины такого поведения платформы и детальные способы исправления ситуации.
Почему счет становится группой в платформе 1С
Проанализируем внутреннее устройство планов счетов в платформе «1С:Предприятие». В отличие от справочников, у планов счетов нет отдельного флага ЭтоГруппа, доступного для ручного изменения. Признак группы определяется платформой динамически на уровне базы данных:
Счет считается группой тогда и только тогда, когда в таблице плана счетов существует хотя бы один элемент, у которого в поле Родитель записана ссылка на данный счет.
Если субсчет был помечен на удаление или из него вручную очистили поле Родитель перед удалением, в базе данных может остаться скрытая или некорректно разорванная ссылка. Пока объект физически не удален из базы через процедуру удаления помеченных объектов, платформа продолжает считать родительский счет группой.
Способ 1. Создание временного субсчета и его прямое удаление
Рассмотрим наиболее быстрый и проверенный на практике способ «перещелкивания» признака группы без привлечения программиста:
Открываем план счетов и находим проблемный счет-группу.
Создаем новый субсчет и явно указываем наш проблемный счет в качестве реквизита Родитель.
Записываем созданный субсчет.
Устанавливаем на вновь созданный субсчет пометку на удаление. Важно: не очищаем поле «Родитель» перед установкой пометки, а сразу помечаем субсчет на удаление.
Переходим в меню Администрирование — Обслуживание — Удаление помеченных объектов.
Выполняем полное физическое удаление созданного временного субсчета. При удалении последней связанной подчиненной записи платформа автоматически снимает признак группы с родительского счета.
Способ 2. Использование обработки «Поиск и замена значений»
Если счет все равно остается группой или в базе накопились некорректные связи, разберем вариант с заменой элементов:
Создаем в плане счетов новый, абсолютно идентичный счет (с правильным кодом, наименованием, признаками активности и субконто), но без признака группы.
Запускаем типовую обработку Поиск и замена значений.
В качестве заменяемого значения выбираем старый счет-группу, а в качестве заменяющего — новый созданный счет.
Выполняем поиск ссылок и производим замену во всех документах, регистрах и проводках.
После завершения замены помечаем старый счет-папку на удаление и окончательно удаляем его через стандартное удаление помеченных объектов.
Способ 3. Программная очистка реквизита «Родитель»
В сложных случаях, когда в базе остались «битые» или невидимые ссылки, можно воспользоваться программной очисткой во внешней обработке. Посмотрим на пример кода, который находит все элементы с указанным родителем и принудительно очищает связь:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕПСБУ.Ссылка КАК СчетСсылка
|ИЗ
| ПланСчетов.ЕПСБУ КАК ЕПСБУ
|ГДЕ
| ЕПСБУ.Родитель = &ПроблемныйСчет";
Запрос.УстановитьПараметр("ПроблемныйСчет", ПланыСчетов.ЕПСБУ.НайтиПоКоду("201.35"));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СчетОбъект = Выборка.СчетСсылка.ПолучитьОбъект();
СчетОбъект.ОбменДанными.Загрузка = Истина;
СчетОбъект.Родитель = ПланыСчетов.ЕПСБУ.ПустаяСсылка();
СчетОбъект.Записать();
КонецЦикла;
Флаг ОбменДанными.Загрузка = Истина позволяет обойти прикладные проверки конфигурации и гарантированно перезаписать реквизиты объекта.
Способ 4. Тестирование и исправление информационной базы
Если после удаления всех подчиненных счетов кэш итогов или индексы таблиц не обновились, необходимо выполнить сервисную процедуру:
Создаем полную резервную копию информационной базы.
Запускаем программу в режиме Конфигуратор.
Переходим в меню Администрирование — Тестирование и исправление...
Выбираем следующие обязательные пункты:
Реструктуризация таблиц информационной базы;
Проверка логической целостности;
Пересчет итогов.
Нажимаем кнопку «Выполнить» и дожидаемся завершения процесса. Это принудительно обновит служебные таблицы плана счетов и регистров.
Восстановление учета и аналитики после снятия признака группы
После того как счет снова стал обычным элементом, важно восстановить целостность учетных данных:
Пересчет бухгалтерских итогов: открываем в режиме предприятия Управление итогами и запускаем полный пересчет итогов по регистру бухгалтерии на текущую дату, чтобы программа заново увидела агрегированные остатки.
Технологический анализ: в конфигурациях для государственного сектора запускаем обработку Технологический анализ бухгалтерского учета, чтобы проверить соответствие движений по регистрам учета объектов и регистру бухгалтерии.
Групповое перепроведение: при обнаружении расхождений по остаткам или субконто выполняем последовательное перепроведение документов, начиная с даты ввода первоначальных остатков или переноса данных.