Почему проводки по счету 60.01 попадают на счет 000 и как исправить подчиненность счета в 1С?

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

В практике работы с программой «1С:Бухгалтерия предприятия» ред. 3.0 иногда возникает странная ситуация: стандартные расчеты с поставщиками (например, проводка Дт 60.01 — Кт 51) начинают двоиться или отображаться как движения по вспомогательному счету 000. При формировании оборотно-сальдовой ведомости обнаруживается, что счет 000 имеет обороты и конечное сальдо, а счет 60.01 расположен внутри его иерархии.

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

Выясним причину искажения иерархии плана счетов

В типовой конфигурации счет 60.01 («Расчеты с поставщиками и подрядчиками») должен подчиняться группе — счету 60. Счет 000 («Вспомогательный счет») является самостоятельным и предназначен исключительно для ввода начальных остатков.

Если в плане счетов счет 60.01 случайно оказывается подчинен счету 000, то все обороты по субсчету 60.01 автоматически консолидируются и отображаются на уровне родительского счета 000. Отсюда возникает иллюзия «дублирования» проводки и появление нежелательного сальдо на вспомогательном счете.

Такой сбой обычно происходит по следующим причинам:

  1. Ошибки переноса данных и синхронизации: при загрузке информации через правила конвертации данных (КД 2 или КД 3) либо через универсальный обмен XML реквизит Родитель счета мог быть сопоставлен некорректно.
  2. Сбой сопоставления предопределенных элементов: при обновлении конфигурации или слиянии баз идентификаторы предопределенных счетов могли связаться с неверными записями в базе данных.

Почему 1С не дает изменить родителя интерактивно?

Если мы откроем план счетов «Хозрасчетный», зайдем в карточку счета 60.01 и попытаемся вручную выбрать в поле «Подчинен счету» группу 60, программа выдаст сообщение об ошибке: «Нельзя изменять подчиненность предопределенных счетов!»

Платформа 1С:Предприятие 8.3 и типовые конфигурации содержат встроенные обработчики проверки целостности данных. Для предопределенных элементов метаданных на уровне модулей заблокировано интерактивное изменение кода счета, его вида и иерархической подчиненности, чтобы пользователи случайно не нарушили логику бухгалтерского учета.

Программное исправление подчиненности счета

Чтобы обойти запрет типовой конфигурации на изменение подчиненности, нам потребуется написать небольшую внешнюю обработку или выполнить фрагмент кода во внешней обработке «Групповое изменение реквизитов» (с включенными специальными возможностями) или в контексте произвольного алгоритма.

Ключевой момент обхода проверки — использование свойства ОбменДанными.Загрузка = Истина. При установке этого флага перед вызовом метода Записать() платформа отключает выполнение обработчиков событий ПередЗаписью и ПриЗаписи модуля плана счетов, в которых и заложена проверка структуры предопределенных элементов.

Рассмотрим пример кода для исправления родителя у счета 60.01:


// Получаем ссылки на нужные счета хозрасчетного плана счетов
СчетСсылка = ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01");
НовыйРодитель = ПланыСчетов.Хозрасчетный.НайтиПоКоду("60");

Если Не ЗначениеЗаполнено(СчетСсылка) Или Не ЗначениеЗаполнено(НовыйРодитель) Тогда
    ВызватьИсключение "Один из счетов не найден в плане счетов!";
КонецЕсли;

// Получаем объект для редактирования
СчетОбъект = СчетСсылка.ПолучитьОбъект();

// Устанавливаем правильного родителя
СчетОбъект.Родитель = НовыйРодитель;

// Отключаем типовые проверки конфигурации на изменение предопределенных счетов
СчетОбъект.ОбменДанными.Загрузка = Истина;

// Записываем изменения в базу данных
Попытка
    СчетОбъект.Записать();
    Сообщить("Подчиненность счета успешно исправлена!");
Исключение
    Сообщить("Ошибка при записи счета: " + ОписаниеОшибки());
КонецПопытки;

Разберем действия после исправления плана счетов

После того как код успешно отработал и родитель счета 60.01 вернулся к группе 60, необходимо выполнить обязательные регламентные операции для восстановления целостности итогов:

  1. Переформировать оборотно-сальдовую ведомость: сформируем ОСВ за проблемный период и убедимся, что счет 60.01 теперь находится внутри счета 60, а на счете 000 обороты больше не появляются.
  2. Выполнить пересчет бухгалтерских итогов: изменение структуры плана счетов задним числом может повлиять на агрегированные таблицы итогов. Для исключения расхождений в отчетах рекомендуется открыть информационную базу в режиме «Конфигуратор», перейти в меню Администрирование — Тестирование и исправление информационной базы, отметить пункт «Пересчет итогов» и нажать кнопку «Выполнить». Либо воспользоваться стандартной обработкой управления итогами в режиме «1С:Предприятие».

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

← На главную