Ситуация, когда после обновления конфигурации УПП (особенно при переходе с очень старых релизов на актуальные) «съезжает» порядок следования счетов в ПланеСчетов, является известной технической особенностью. Давайте разберемся, почему это происходит и какими способами мы можем вернуть порядок счетов в исходное состояние.
В плане счетов 1С за визуальный порядок отображения отвечает скрытый механизм, который привязан к записи объекта в базе данных. При масштабном обновлении с очень старых версий конфигурации ПланСчетов проходит через множество преобразований структуры метаданных. Если механизм обновления не смог корректно обновить служебные реквизиты, отвечающие за сортировку, счета начинают отображаться в «разбросанном» виде.
Важно помнить, что большинство счетов в УПП являются предопределенными. Это накладывает серьезное ограничение на наши действия: мы не можем просто удалить и заново создать счет, так как это приведет к потере ссылочной целостности и нарушению работы проводок в документах.
Главный принцип восстановления порядка заключается в том, что при записи объекта ПланСчетов платформа 1С автоматически пересчитывает служебные данные, отвечающие за сортировку. Таким образом, любая корректная перезапись счета исправляет его положение в списке.
Если счетов много, делать это вручную неэффективно. Мы можем написать небольшую обработку, которая переберет все счета и запишет их. Давайте рассмотрим примерный алгоритм действий:
Пример кода для программной записи:
Выборка = ПланыСчетов.Хозрасчетный.Выбрать();
Пока Выборка.Следующий() Цикл
СчетОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если СчетОбъект <> Неопределено Тогда
СчетОбъект.Записать();
КонецЕсли;
КонецЦикла;
Этот метод является самым безопасным, так как он не меняет структуру данных, а лишь обновляет служебные поля объектов, что позволяет «поставить» счета на свои места согласно их кодам.
Если нарушение порядка очень серьезное, мы можем обратиться к эталонному состоянию конфигурации. В типовых конфигурациях УПП существуют модули, отвечающие за первоначальное заполнение плана счетов. Мы можем выгрузить конфигурацию поставщика в новую чистую базу и проанализировать, как должны выглядеть объекты.
Если вы опытный разработчик, вы можете найти процедуры, которые отвечают за заполнение плана счетов при создании базы, и вызвать их (или их аналоги) в текущей информационной базе. Однако будьте осторожны: прямая манипуляция предопределенными элементами может потребовать предварительного снятия с них пометки «предопределенный», что в данном случае не рекомендуется.
Прежде чем приступать к массовой перезаписи счетов, обязательно выполните следующие действия:
Администрирование -> Тестирование и исправление. Выберите пункты «Реиндексация таблиц информационной базы» и «Пересчет итогов». Часто этого бывает достаточно для того, чтобы база «увидела» правильный порядок.Помните, что порядок следования счетов — это вспомогательная функция платформы. Если данные (коды счетов и их настройки) верны, то сама по себе «несортировка» редко влияет на бухгалтерские итоги, однако она критически мешает удобству работы пользователей. Придерживайтесь метода программной перезаписи, и порядок в вашем плане счетов будет восстановлен.