При настройке плана счетов в типовых конфигурациях, таких как 1С:Бухгалтерия предприятия 3.0, разработчики иногда сталкиваются с необходимостью добавить дополнительный уровень субсчетов (например, создать счет 90.01.11 вместо 90.01.1). Для этого в конфигураторе увеличивают длину кода и корректируют маску счета (например, с @@.@@.@ на @@.@@.@@). Однако после обновления конфигурации базы данных в режиме предприятия поле ввода по-прежнему ограничивает ввод символов, а вновь созданные счета отображаются с обрезанным кодом.
Разберем причины такого поведения платформы 1С:Предприятие 8.3, пошагово рассмотрим способ корректной настройки маски и проанализируем возможные последствия таких изменений для типового функционала.
В объекте метаданных План счетов параметры длины кода и маски задаются на двух независимых уровнях:
Длина кода и Маска).Код.Элементы управляемых форм, связанные с реквизитом Код, по умолчанию считывают маску ввода, формат и ограничение длины именно из свойств стандартного реквизита. Если изменить маску только на титульной вкладке плана счетов, в стандартном реквизите Код остаются прежние настройки. В результате в пользовательском интерфейсе платформа принудительно форматирует и ограничивает строку по старой маске.
Разберем по шагам, как правильно изменить маску и длину кода плана счетов в конфигураторе:
Планы счетов.Хозрасчетный).Длину кода (например, увеличим с 8 до 9 знаков) и зададим новую Маску (например, @@.@@.@@).Код и откроем его палитру свойств (клавиша F4).После выполнения этих действий в режиме 1С:Предприятие поле ввода кода счета на управляемой форме позволит вводить все предусмотренные символы без принудительного усечения.
Проанализируем еще одну техническую деталь платформы 1С: механизм АвтоПорядокПоКоду. Платформа упорядочивает счета в списках и оборотно-сальдовых ведомостях не по прямому строковому значению кода, а с использованием системного поля Порядок.
Символ @ в маске обозначает любой алфавитно-цифровой символ. Платформа упаковывает группы символов перед записью и распаковывает их при отображении. При увеличении разрядности кода длина поля Порядок также может потребовать проверки. Если после изменения структуры счетов сортировка в ОСВ или плане счетов нарушилась, необходимо выполнить групповое перепроведение или программную перезапись элементов плана счетов, чтобы платформа заново сформировала значения системного реквизита Порядок.
Перед внесением изменений в структуру плана счетов типовой конфигурации необходимо учитывать следующие критические риски:
EnterpriseData, обмены с 1С:ЗУП, 1С:УТ или 1С:ERP) используют XDTO-пакеты. Во многих схемах длина кода счета строго ограничена типовым форматом. Передача кодов с нетиповой длиной может приводить к ошибкам валидации XDTO и срыву обмена.Выясним, какими способами можно реализовать требования детального учета без изменения длины кода и структуры метаданных:
@ в стандартной маске @@.@@.@ принимает не только цифры, но и буквы (с автоматическим переводом в верхний регистр), можно создавать субсчета вида 90.01.А, 90.01.Б, 90.01.В. Это позволяет расширить перечень доступных субсчетов без редактирования метаданных и снятия конфигурации с поддержки.