К статье
Практический материал

Справочники и Данные · 10 мин

Порядок в плане счетов 1С: автоматическое заполнение по аналогии с кодом

Как в 1С автоматически заполняется поле «Порядок» в плане счетов по аналогии с кодом, зачем оно нужно, как настроить сортировку и исправить типичные ошибки.

В плане счетов 1С у каждого счёта есть два ключевых реквизита: «Код» и «Порядок». Код определяет уникальность счёта и участвует в отборах, а «Порядок» отвечает за то, в какой последовательности счета выводятся в списках, отчётах, оборотно-сальдовой ведомости и печатных формах. По умолчанию платформа заполняет «Порядок» автоматически — тем же значением, что и код, дополненным пробелами до фиксированной длины.

Такая механика нужна из-за особенностей строковой сортировки. Если сортировать коды как обычные строки, счёт «10.1» окажется раньше счёта «2», потому что сравнение идёт посимвольно. Поле «Порядок» решает эту проблему: платформа формирует его так, чтобы строковая сортировка давала «бухгалтерский» порядок следования счетов — сначала 01, затем 02, 04, 08, 10 и так далее.

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

Зачем в плане счетов отдельное поле «Порядок»

Код счёта в типовых конфигурациях 1С — строковый реквизит. Строки сравниваются посимвольно слева направо, поэтому «естественная» сортировка кодов даёт результат вроде: 01, 10, 19, 02, 20, 26, 44, 50, 51, 60, 62, 68, 69, 70, 76, 80, 84, 90, 91, 99. Для бухгалтера такая последовательность непривычна и мешает чтению оборотно-сальдовой ведомости.

Чтобы списки и отчёты показывали счета в привычном порядке, в объект введён реквизит «Порядок» — тоже строковый, но формируемый по особому правилу. Все сортировки в типовых механизмах выполняются именно по нему, а не по коду. Пользователь в интерфейсе обычно не видит это поле: оно заполняется и используется «за кулисами».

Как платформа формирует «Порядок» автоматически

Автозаполнение работает по простому алгоритму: при записи счёта система берёт значение кода и дополняет его пробелами справа до максимальной длины кода плана счетов. Например, если максимальная длина кода — 8 символов, то для счёта «01» порядок будет «01      », для «10.01» — «10.01   », для «60.01.1» — «60.01.1 ».

Благодаря выравниванию пробелами строковое сравнение начинает работать как числовое внутри каждого сегмента: «02      » оказывается меньше «10      », потому что пробел в кодировке меньше любой цифры. В результате сортировка по «Порядку» выдаёт последовательность 01, 02, 04, 05, 08, 10, 19, 20 — именно так, как ожидает бухгалтер.

В типовых конфигурациях эта логика реализована в обработчиках записи элемента плана счетов (обычно в модуле объекта, в процедуре «ПередЗаписью» или «ПриЗаписи»). Пользователю ничего настраивать не нужно: достаточно указать код, и «Порядок» сформируется сам.

bsl
// Типовой принцип формирования порядка
Объект.Порядок = Объект.Код + СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", Метаданные.ПланыСчетов.Хозрасчетный.ДлинаКода - СтрДлина(Объект.Код));

Где «Порядок» влияет на отображение данных

Основная область влияния — оборотно-сальдовая ведомость и все отчёты, построенные на её движке: анализ счёта, карточка счёта, обороты счёта. В настройках этих отчётов сортировка по умолчанию идёт по полю «Порядок» счёта, поэтому итоговые строки следуют в бухгалтерской последовательности.

Второе место — списки выбора счёта в документах и справочниках, где включён показ плана счетов в виде дерева или списка. Третья зона — регламентные операции и печатные формы, перечисляющие счета (например, расшифровки налоговых показателей). Если «Порядок» заполнен некорректно, во всех этих местах счета «поплывут» одновременно.

Счета в ОСВ идут не по порядкуНарушена сортировка

Проверить заполнение реквизита «Порядок» у «съехавших» счетов

Новый субсчёт стоит не на местеПорядок не сформирован или задан вручную

Открыть элемент плана счетов и сравнить «Порядок» с кодом

После обмена порядок сбилсяЗагрузка перезаписала реквизит

Проверить правила обмена и перезаписать счета

Добавление собственного субсчёта

Когда бухгалтер добавляет пользовательский субсчёт (например, 10.12 или 60.03), достаточно задать код, наименование и аналитику. «Порядок» заполнится автоматически по тому же правилу, что и для предопределённых счетов, и новый субсчёт встанет на корректное место внутри родительской группы.

Проблема возникает, если хочется изменить последовательность внутри группы — например, поставить 60.02 перед 60.01. Тогда «Порядок» придётся задать вручную: в режиме предприятия это делается через «Ещё — Изменить форму» с выводом реквизита на форму либо через групповое изменение реквизитов, а в конфигураторе — напрямую. Следует помнить, что ручное значение сохраняется при записи, но типовые механизмы обновления могут его перезаписать.

Порядок действий при добавлении субсчёта
  1. 1
    Откройте план счетов и создайте новый элемент с нужным кодом
  2. 2
    Заполните наименование, вид счёта и необходимую аналитику (субконто)
  3. 3
    Запишите элемент — реквизит «Порядок» сформируется автоматически
  4. 4
    Откройте оборотно-сальдовую ведомость и убедитесь, что счёт стоит на ожидаемом месте
  5. 5
    Если позиция не устраивает, скорректируйте «Порядок» вручную через групповое изменение реквизитов

Типичные проблемы и их исправление

Самая частая ситуация — пустой или «кривой» «Порядок» после загрузки данных из другой базы, из Excel или после конвертации. Внешняя обработка загрузки записывает код и наименование, но не вызывает типовую логику формирования порядка, либо переносит значение из источника с другой длиной кода. Внешне это проявляется как хаотичная сортировка в отчётах.

Исправление простое: перезаписать проблемные элементы плана счетов. При записи сработает штатный обработчик, и «Порядок» пересчитается. Для массового исправления используют групповое изменение реквизитов либо небольшую обработку, которая обходит все элементы и записывает их без изменения данных.

Вторая типовая ошибка — ручное редактирование «Порядка» без понимания формата. Если вписать туда произвольный текст или число без выравнивания пробелами, сортировка станет непредсказуемой: счёт может «утонуть» в конце списка или оказаться выше группы. Правило безопасной правки одно: новое значение должно быть построено по той же схеме — кодовая основа, дополненная пробелами до общей длины.

Типичные ошибки
01
Сортировка отчёта по коду вместо порядка — счета 10 и 19 оказываются выше счёта 02, итоги читаются неправильно
02
Загрузка плана счетов внешней обработкой без перезаписи — «Порядок» остаётся пустым, списки выводятся хаотично
03
Ручное заполнение «Порядка» числом без пробельного выравнивания — сортировка ломается для всей группы счетов
04
Изменение длины кода плана счетов без пересчёта «Порядка» у существующих элементов — старые и новые счета сортируются по разным правилам

Особенности для разработчиков и при обменах

При написании собственных отчётов и запросов сортировку по счёту следует строить через реквизит «Порядок» ссылки, а не через код: УПОРЯДОЧИТЬ ПО Счет.Порядок. Это гарантирует совпадение результата с типовыми отчётами. Сортировка по коду допустима только если осознанно нужна лексикографическая последовательность.

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

Как проверить корректность заполнения

Быстрая проверка выполняется через консоль запросов или обработку группового изменения: выведите список счетов с колонками «Код» и «Порядок» и убедитесь, что у всех элементов «Порядок» непустой и начинается со значения кода. Элементы, где это не так, — кандидаты на перезапись.

Функциональная проверка — открыть оборотно-сальдовую ведомость за любой период и просмотреть последовательность счетов. Она должна соответствовать привычной структуре плана счетов: активные и пассивные разделы в порядке возрастания номеров, субсчета — внутри своих групп.

Контрольные точки

Как проверить результат

Значение «Порядка» у счёта
Норма

Равно коду, дополненному пробелами до максимальной длины кода

Тревожный признак

Пустое значение, произвольный текст или число без выравнивания

Последовательность счетов в ОСВ
Норма

01, 02, 04, 08, 10, 19, 20 и далее по возрастанию

Тревожный признак

01, 10, 19, 02, 20 — лексикографический порядок

Новый субсчёт после записи
Норма

Стоит внутри своей группы на логичном месте

Тревожный признак

Оказался в конце списка или выше родителя

Итог

Что важно запомнить

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

Частые вопросы

Можно ли вообще не заполнять «Порядок» у счёта?

Технически элемент запишется и без него, но сортировка в типовых отчётах и списках станет непредсказуемой: счета с пустым порядком обычно выводятся отдельно от остальных. Заполнять реквизит нужно всегда, благо платформа делает это автоматически при записи.

Почему в оборотно-сальдовой ведомости счёт 10 идёт раньше счёта 02?

Это признак того, что отчёт отсортирован по коду как по строке, а не по реквизиту «Порядок». Проверьте настройки сортировки отчёта, а если отчёт самописный — замените в запросе упорядочивание по коду на упорядочивание по «Счет.Порядок».

Как массово исправить «Порядок» после загрузки плана счетов из файла?

Достаточно перезаписать все элементы плана счетов: при записи сработает штатный обработчик и пересчитает реквизит. Это можно сделать обработкой группового изменения реквизитов или простым программным обходом с вызовом метода записи без изменения данных.

Переносится ли «Порядок» при обмене между базами 1С?

Обычно нет: типовые правила обмена не переносят этот реквизит, он формируется заново на стороне приёмника при записи счёта. Если в ваших правилах конвертации «Порядок» выгружается явно, убедитесь, что длина кода плана счетов в обеих базах одинакова.

Можно ли задать счетам нестандартную последовательность в отчётах?

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

Что будет, если изменить длину кода плана счетов в конфигураторе?

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