Справочники и Данные · 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 — именно так, как ожидает бухгалтер.
В типовых конфигурациях эта логика реализована в обработчиках записи элемента плана счетов (обычно в модуле объекта, в процедуре «ПередЗаписью» или «ПриЗаписи»). Пользователю ничего настраивать не нужно: достаточно указать код, и «Порядок» сформируется сам.
// Типовой принцип формирования порядка
Объект.Порядок = Объект.Код + СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", Метаданные.ПланыСчетов.Хозрасчетный.ДлинаКода - СтрДлина(Объект.Код));Где «Порядок» влияет на отображение данных
Основная область влияния — оборотно-сальдовая ведомость и все отчёты, построенные на её движке: анализ счёта, карточка счёта, обороты счёта. В настройках этих отчётов сортировка по умолчанию идёт по полю «Порядок» счёта, поэтому итоговые строки следуют в бухгалтерской последовательности.
Второе место — списки выбора счёта в документах и справочниках, где включён показ плана счетов в виде дерева или списка. Третья зона — регламентные операции и печатные формы, перечисляющие счета (например, расшифровки налоговых показателей). Если «Порядок» заполнен некорректно, во всех этих местах счета «поплывут» одновременно.
Проверить заполнение реквизита «Порядок» у «съехавших» счетов
Открыть элемент плана счетов и сравнить «Порядок» с кодом
Проверить правила обмена и перезаписать счета
Добавление собственного субсчёта
Когда бухгалтер добавляет пользовательский субсчёт (например, 10.12 или 60.03), достаточно задать код, наименование и аналитику. «Порядок» заполнится автоматически по тому же правилу, что и для предопределённых счетов, и новый субсчёт встанет на корректное место внутри родительской группы.
Проблема возникает, если хочется изменить последовательность внутри группы — например, поставить 60.02 перед 60.01. Тогда «Порядок» придётся задать вручную: в режиме предприятия это делается через «Ещё — Изменить форму» с выводом реквизита на форму либо через групповое изменение реквизитов, а в конфигураторе — напрямую. Следует помнить, что ручное значение сохраняется при записи, но типовые механизмы обновления могут его перезаписать.
- 1Откройте план счетов и создайте новый элемент с нужным кодом
- 2Заполните наименование, вид счёта и необходимую аналитику (субконто)
- 3Запишите элемент — реквизит «Порядок» сформируется автоматически
- 4Откройте оборотно-сальдовую ведомость и убедитесь, что счёт стоит на ожидаемом месте
- 5Если позиция не устраивает, скорректируйте «Порядок» вручную через групповое изменение реквизитов
Типичные проблемы и их исправление
Самая частая ситуация — пустой или «кривой» «Порядок» после загрузки данных из другой базы, из Excel или после конвертации. Внешняя обработка загрузки записывает код и наименование, но не вызывает типовую логику формирования порядка, либо переносит значение из источника с другой длиной кода. Внешне это проявляется как хаотичная сортировка в отчётах.
Исправление простое: перезаписать проблемные элементы плана счетов. При записи сработает штатный обработчик, и «Порядок» пересчитается. Для массового исправления используют групповое изменение реквизитов либо небольшую обработку, которая обходит все элементы и записывает их без изменения данных.
Вторая типовая ошибка — ручное редактирование «Порядка» без понимания формата. Если вписать туда произвольный текст или число без выравнивания пробелами, сортировка станет непредсказуемой: счёт может «утонуть» в конце списка или оказаться выше группы. Правило безопасной правки одно: новое значение должно быть построено по той же схеме — кодовая основа, дополненная пробелами до общей длины.
Особенности для разработчиков и при обменах
При написании собственных отчётов и запросов сортировку по счёту следует строить через реквизит «Порядок» ссылки, а не через код: УПОРЯДОЧИТЬ ПО Счет.Порядок. Это гарантирует совпадение результата с типовыми отчётами. Сортировка по коду допустима только если осознанно нужна лексикографическая последовательность.
При обменах между базами (например, между Бухгалтерией и Управлением торговлей) «Порядок» обычно не переносится, а формируется на стороне приёмника при записи. Если правила обмена явно выгружают этот реквизит, нужно убедиться, что длина кода плана счетов совпадает в обеих базах, иначе выравнивание пробелами даст разные результаты.
Как проверить корректность заполнения
Быстрая проверка выполняется через консоль запросов или обработку группового изменения: выведите список счетов с колонками «Код» и «Порядок» и убедитесь, что у всех элементов «Порядок» непустой и начинается со значения кода. Элементы, где это не так, — кандидаты на перезапись.
Функциональная проверка — открыть оборотно-сальдовую ведомость за любой период и просмотреть последовательность счетов. Она должна соответствовать привычной структуре плана счетов: активные и пассивные разделы в порядке возрастания номеров, субсчета — внутри своих групп.
Как проверить результат
Равно коду, дополненному пробелами до максимальной длины кода
Пустое значение, произвольный текст или число без выравнивания
01, 02, 04, 08, 10, 19, 20 и далее по возрастанию
01, 10, 19, 02, 20 — лексикографический порядок
Стоит внутри своей группы на логичном месте
Оказался в конце списка или выше родителя
Что важно запомнить
«Порядок» в плане счетов 1С — служебный реквизит, который платформа заполняет автоматически кодом с пробельным выравниванием, чтобы сортировка в списках и отчётах была «бухгалтерской». Сортируйте собственные запросы по «Порядку», а не по коду, а при сбоях после загрузок просто перезапишите элементы плана счетов.
Частые вопросы
Можно ли вообще не заполнять «Порядок» у счёта?
Технически элемент запишется и без него, но сортировка в типовых отчётах и списках станет непредсказуемой: счета с пустым порядком обычно выводятся отдельно от остальных. Заполнять реквизит нужно всегда, благо платформа делает это автоматически при записи.
Почему в оборотно-сальдовой ведомости счёт 10 идёт раньше счёта 02?
Это признак того, что отчёт отсортирован по коду как по строке, а не по реквизиту «Порядок». Проверьте настройки сортировки отчёта, а если отчёт самописный — замените в запросе упорядочивание по коду на упорядочивание по «Счет.Порядок».
Как массово исправить «Порядок» после загрузки плана счетов из файла?
Достаточно перезаписать все элементы плана счетов: при записи сработает штатный обработчик и пересчитает реквизит. Это можно сделать обработкой группового изменения реквизитов или простым программным обходом с вызовом метода записи без изменения данных.
Переносится ли «Порядок» при обмене между базами 1С?
Обычно нет: типовые правила обмена не переносят этот реквизит, он формируется заново на стороне приёмника при записи счёта. Если в ваших правилах конвертации «Порядок» выгружается явно, убедитесь, что длина кода плана счетов в обеих базах одинакова.
Можно ли задать счетам нестандартную последовательность в отчётах?
Да, для этого «Порядок» заполняется вручную значениями, которые при строковой сортировке дадут нужную последовательность. Значения должны быть одинаковой длины и построены по единому принципу, иначе сортировка станет хаотичной. Учтите, что ручные значения могут быть перезаписаны при обновлении конфигурации.
Что будет, если изменить длину кода плана счетов в конфигураторе?
Существующие значения «Порядка» останутся выровненными по старой длине, а новые счета получат выравнивание по новой — сортировка станет смешанной. После такого изменения нужно перезаписать все элементы плана счетов, предварительно сделав резервную копию базы.