1С:Предприятие 8.2 /
Разработчикам /
Прикладные объекты
Особенности кода счета в 1С:Предприятии 8
Пример использования свойства АвтоПорядокПоКоду в форме списка счетов
Пример использования свойства АвтоПорядокПоКоду в запросе
Код счета
Код счета хранится в информационной базе в том виде, в котором был введен. Исключение составляет хранение кода счета в условиях, когда маска кода счета содержит символы “@”. В этом случае группа знаков кода, для которой в маске стоят символы “@”, упаковывается – из нее вырезаются пробелы.
Пример: маска кода "@@@.@@@.@@"
Ввели код "1 .1 .1 "
Сохранится "1.1.1"
При создании нового счета или редактировании уже имеющегося счета в плане счетов код счета редактируется с использованием маски. При вводе ссылки на счета в записях регистров и в других местах код счета вводится без маски.
Перед началом редактирования счета в плане счетов, код счета распаковывается до вида, подходящего под маску. После окончания редактирования код счета упаковывается.
Рассмотрим пример упаковки – распаковки кода счета. Пусть есть некоторый план счетов, для которого указано:
- длина кода счета 10;
- длина наименования счета 30;
- автопорядок по коду – включено;
- длина порядка – 10;
- маска кода счета – “@@@.@@@.@@”.
Выполним следующие действия:
- Введем при создании нового счета код “1 .1 .1 ”, наименование счета и порядок счета.
- Сохраним счет и закроем окно редактирования счета.
- В информационной базе в качестве кода счета сохранится строка “1.1.1”.
- Откроем окно редактирования счета: в качестве кода счета будем видеть строку “1 .1 .1 ”.
Порядок счета
Поскольку с помощью кода счета не всегда можно обеспечить его правильное упорядочивание среди других счетов, введено дополнительное поле - порядок счета (Порядок). Его назначение - хранение данных, обеспечивающих правильное упорядочивание счетов в формах списков и результатах запросов.
В информационной базе порядок счета хранится в том виде, в котором был задан. Задавать порядок счета можно только в том случае, если длина поля Порядок больше нуля.
В форме счета поле Порядок доступно для редактирования, однако по умолчанию в форму не включается, и его содержимое автоматически не заполняется. Если длина поля Порядок больше нуля и значение, записываемое в поле, представляет собой пустую строку, записать объект Счет не удастся, и произойдет соответствующая ошибка времени выполнения.
Если маска кода счета состоит только из символов "@" и ".", можно автоматически сформировать поле Порядок. Это можно сделать в обработчике события ПередЗаписью () с помощью метода ПолучитьПорядокКода():
Процедура ПередЗаписью(Отказ) Порядок = ПолучитьПорядокКода(); КонецПроцедуры
При формировании порядка счета функция ПолучитьПорядокКода() за основу берет код счета. В пределах групп номера счета символы кода счета сдвигаются вправо, дополняясь слева необходимым количеством пробелов.
Рассмотрим два примера:
1) Код счета: "10.12"
Маска кода счета: "@@@.@@@.@@"
Сформированный прядок счета: " 10. 12"
2) Код счета: "10.5"
Маска кода счета: "@@@.@@@.@@"
Сформированный прядок счета: " 10. 5"
В этих двух примерах, если в форме списка счетов или в запросе будет установлено упорядочивание по полю Порядок, сначала будет идти счет "10.5", а затем - счет "10.12".
Свойство АвтоПорядокПоКоду
Свойство АвтоПорядокПоКоду используется для при упорядочивании по коду в формах списков и в запросах. Его назначение - обеспечить правильный порядок следования счетов в формах списков и результатах запросов.
Свойство АвтоПорядокПоКоду используется для подмены упорядочивания по полю Код упорядочиванием по полю Порядок. Упорядочивание по полю Порядок в этом случае используется как, например, в формах списков счетов, так и в процессе формирования запросов.
Пример использования свойства АвтоПорядокПоКоду в форме списка счетов
В случае, если свойство АвтоПорядокПоКоду включено, сделаем следующее:
- Откроем форму списка для счета:
На рисунке видно, что в качестве колонки, по которой идет сортировка, отмечена колонка Код. Однако реально для сортировки используются данные из поля Порядок.
- Сменим сортировку: укажем, что сортировать надо по колонке Порядок:
На рисунке видно, что сортировка данных не изменилась. Это действительно так, поскольку свойство АвтоПорядокПоКоду включено.
Если же свойство АвтоПорядокПоКоду выключить, то сортировка будет выполняться иначе:
- Откроем еще раз форму списка для счета:
На рисунке видно, что сортировка выполнена по полю Порядок.
- Сменим сортировку: укажем, что сортировать надо по колонке Код:
На рисунке видно, что порядок следования счетов сменился и упорядочивание происходит по полю Код.
Пример использования свойства АвтоПорядокПоКоду в запросе
Пусть есть следующие счета:
Код Наименование Порядок
3.3.3 Счет 3.3.3 1
2.2.2 Счет 2.2.2 2
1.1.1 Счет 1.1.1 3
Выполним следующий запрос:
ВЫБРАТЬ ПланСчетов1.Код КАК Код, ПланСчетов1.Наименование, ПланСчетов1.Порядок ИЗ ПланСчетов.ПланСчетов1 КАК ПланСчетов1 УПОРЯДОЧИТЬ ПО Код
Результат:
На этом примере видно, что в случае упорядочивания по полю Код вместо него используется поле Порядок.
Другие материалы по теме:
код счета, маска кода счета, видно, 742, сортировка, план счетов, конецпроцедуры, записать, свойства, заполняется, буфер обмена, копировать, назначение, код, автоматически, обмен, сформировать, по умолчанию, например, наименование, результат, конфигурирование, пример, счета, значение, порядок, счет
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Прикладные объекты
Другие материалы по теме:
Особенности масштабирования по выбранному объекту
Нас находят: 1с порядок счета это, 1с наименования сдвигаются, маски счетов
Мы на Facebook