План счетов в 1С 8.3

Курс

План счетов

План счетов предназначен для хранения списка бухгалтерских счетов.

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

В данной статье будут рассмотрены только специфические для плана счетов свойства.

Чтобы добавить план счетов в конфигурацию нужно в дереве метаданных в узле Планы счетов выбрать команду Добавить:

План счетов

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

В отличии от справочника, план счетов не может быть подчиненным. Но при этом он может выступать в роли владельца для справочников:

План счетов

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

Иерархия плана счетов

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

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

В отличии от справочников, для плана счетов по умолчанию устанавливается основное представление по коду. Чаще всего именно оно и используется:

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

Маска кода

Для плана счетов не поддерживается автонумерация. Код счета нужно заполняться вручную.

При этом для кода на закладке Данные можно указать маску кода:

Маска кода

С помощью маски можно ограничить используемые в коде символы, а также задать иерархию кодов.

В маске можно использовать следующие специальные символы:

  • ! — любой введенный символ будет преобразован в верхний регистр
  • 9 — любая цифра
  • # — любая цифра, пробел, а также знаки минус и плюс
  • N — любые буквы и цифры
  • U — любые буквы и цифры, при заполнении они будут преобразованы в верхний регистр
  • X — любой символ
  • ^ — нельзя интерактивно ввести символ на эту позицию
  • h — только символы для обозначения шестнадцатеричных цифр (0-9, A-F)
  • @ – любые буквы и цифры в верхнем регистре, а также пробел.

Если нужно использовать в маске спец. символ, то нужно указать перед ним обратный слеш «\»:

При этом маска, введенная в свойстве Маска кода не работает. Для того чтобы маска заработала ее нужно ввести в свойстве Маска стандартного реквизита Код. Это ошибка платформы, зарегистрированная еще в 2017 году и не исправленная до сих пор.

Маска кода
Маска кода

Например, если указать маску !!!!!, то любой введенный символ в поле Код будет преобразован в верхний регистр.

Если указать 99.99, то можно вводить только цифры, при этом на третьем месте всегда будет точка.

Если указать @@.@@, то можно вводить любые буквы и цифры (буквы будут преобразованы в верхний регистр), а также пробел. На третьем месте всегда будет точка.

Если указать \@@.@@, то можно вводить любые буквы и цифры (буквы будут преобразованы в верхний регистр), а также пробел. На первом месте всегда будет @, на третьем месте всегда будет точка.

Если длина кода равна 9 символов, а в маске указано только 5 символов, то фактически можно будет ввести только 5 символов.

Если в маске используется символ @, то при записи в базу данных из кода будут удалены пробелы. Например, если используется маска @@.@@ и ввести код 1 .1, то код будет упакован и в базу данных будет записано 1.1. При открытии формы код будет распакован и приведен к маске. Для других масок код записывается как есть.

Например:

Номер символа12345
Маска@@.@@
Введено в поле1пробел.1пробел
Сохранено в базе1.1
Номер символа12345
Маска##.##
Введено в поле1пробел.1пробел
Сохранено в базе1пробел.1пробел

Как правило в маске используется как минимум один разделитель «.» (точка), который разделяет значение родительского счета и его субсчета, например код 41.01 предполагает, что он подчинен счету 41. Однако ничто не мешает указать для подчиненного счета код 42.01, хотя фактически он будет подчинен счету 41. Подчиненность счета определяется по полю Родитель, а не по коду.

Порядок

Если для одного счета ввести десять субсчетов, то они будут неправильно сортироваться по коду:

Порядок плана счетов

Субсчет 10 находится выше субсчетов 2, 3 и т.д.

Конечно, можно использовать лидирующие нули:

Порядок плана счетов

Но более правильным будет воспользоваться свойством Порядок.

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

Длина порядка

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

Порядок плана счетов

И не будет давать записать счета с ошибкой «Значение поля «Порядок» не заполнено»:

Порядок плана счетов

Для автоматического заполнения поля Порядок можно воспользоваться функцией ПолучитьПорядокКода. Данная функция преобразует код счета в соответствии с маской счета, и если длина кода меньше маски, то добавляются лидирующие пробелы. Например, для маски @@.@@ и кода 1.1 будет выполнено преобразование в 1. 1.

Например:

Номер символа12345
Маска@@.@@
Введено в поле1пробел.1пробел
Сохранено в базе1.1
ПолучитьПорядокКодапробел1.пробел1

Добавим вызов данной функции в модуле объекта плана счетов в обработчике Перед записью:

В пользовательском режиме перезапишем все счета и отсортируем по полю Порядок. Теперь сортировка выполняется правильно:

Порядок плана счетов

Стоит отметить, что функция ПолучитьПорядокКода работает только с масками где используются символы «@» и «.» (точка).

Автопорядок по коду

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

Автопорядок по коду

После его установки поле Порядок не будет отображаться на форме списка плана счетов и теперь при сортировке по полю Код будет выполняться сортировка по полю Порядок:

Автопорядок по коду

Если в запросе будет указана сортировка по полю Код, то фактически сортировка будет выполнена по полю Порядок:

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

Автопорядок по коду

Вид счета и признак Забалансовый

У каждого счета есть такие свойства как Вид и Забалансовый:

Вид счета

В поле Вид можно указать вид счета:

  • Активный
  • Пассивный
  • Активный/Пассивный

Это нужно чтобы платформа знала как подсчитывать остатки по этому счету.

Флаг Забалансовый позволяет отключить контроль двойной записи по счету.

Программная работа с планом счетов

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


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Здесь может быть Ваша реклама
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok