Довідковий матеріал

Особливості коду рахунку в 1С:Підприємстві 8

Код рахунку зберігається в інформаційній базі в тому вигляді, у якому був введений. Винятком є зберігання коду рахунку за умов, коли маска коду рахунку містить символи “@”. У цьому разі група знаків коду, для якої в масці стоять символи “@”, упаковується – з неї вирізаються пробіли.Код рахунку. Порядок рахунку. Властивість АвтоПорядокПоКоду. Приклад використання властивості АвтоПорядокПоКоду у формі списку рахунків. Приклад використання властивості АвтоПорядокПоКоду в запиті

Особливості коду рахунку в 1С:Підприємстві 8

Код рахунку

Порядок рахунку

Властивість АвтоПорядокПоКоду

Приклад використання властивості АвтоПорядокПоКоду у формі списку рахунків

Приклад використання властивості АвтоПорядокПоКоду в запиті

 

Код рахунку

Код рахунку зберігається в інформаційній базі в тому вигляді, у якому був введений. Винятком є зберігання коду рахунку за умов, коли маска коду рахунку містить символи “@”. У цьому разі група знаків коду, для якої в масці стоять символи “@”, упаковується – з неї вирізаються пробіли.

Приклад: маска коду "@@@.@@@.@@"
Ввели код "1 .1 .1 "
Збережеться "1.1.1"

Під час створення нового рахунку або редагування вже наявного рахунку в плані рахунків код рахунку редагується з використанням маски. Під час введення посилання на рахунки в записах регістрів та в інших місцях код рахунку вводиться без маски.

Перед початком редагування рахунку в плані рахунків код рахунку розпаковується до вигляду, що відповідає масці. Після завершення редагування код рахунку упаковується.

Розглянемо приклад упаковки – розпаковки коду рахунку. Нехай є деякий план рахунків, для якого зазначено:

  • довжина коду рахунку 10;
  • довжина найменування рахунку 30;
  • автопорядок за кодом – увімкнено;
  • довжина порядку – 10;
  • маска коду рахунку – “@@@.@@@.@@”.

Виконаємо такі дії:

  1. Введемо під час створення нового рахунку код “1 .1 .1 ”, найменування рахунку та порядок рахунку.
  2. Збережемо рахунок і закриємо вікно редагування рахунку.
  3. В інформаційній базі як код рахунку збережеться рядок “1.1.1”.
  4. Відкриємо вікно редагування рахунку: як код рахунку бачитимемо рядок “1 .1 .1 ”.

Порядок рахунку

Оскільки за допомогою коду рахунку не завжди можна забезпечити його правильне впорядкування серед інших рахунків, введено додаткове поле - порядок рахунку (Порядок). Його призначення - зберігання даних, що забезпечують правильне впорядкування рахунків у формах списків і результатах запитів.

В інформаційній базі порядок рахунку зберігається в тому вигляді, у якому був заданий. Задавати порядок рахунку можна лише в тому разі, якщо довжина поля Порядок більша за нуль.

У формі рахунку поле Порядок доступне для редагування, однак за замовчуванням до форми не включається, і його вміст автоматично не заповнюється. Якщо довжина поля Порядок більша за нуль і значення, що записується в поле, являє собою порожній рядок, записати об'єкт Рахунок не вдасться, і станеться відповідна помилка часу виконання.

Якщо маска коду рахунку складається лише із символів "@" і ".", можна автоматично сформувати поле Порядок. Це можна зробити в обробнику події ПередЗаписью() за допомогою методу ПолучитьПорядокКода():

Процедура ПередЗаписью(Отказ)
	Порядок = ПолучитьПорядокКода();
КонецПроцедуры

Під час формування порядку рахунку функція ПолучитьПорядокКода() за основу бере код рахунку. У межах груп номера рахунку символи коду рахунку зсуваються праворуч, доповнюючись зліва необхідною кількістю пробілів.

Розглянемо два приклади:
1) Код рахунку: "10.12"
Маска коду рахунку: "@@@.@@@.@@"
Сформований порядок рахунку: " 10. 12"

2) Код рахунку: "10.5"
Маска коду рахунку: "@@@.@@@.@@"
Сформований порядок рахунку: " 10. 5"

У цих двох прикладах, якщо у формі списку рахунків або в запиті буде встановлено впорядкування за полем Порядок, спочатку йтиме рахунок "10.5", а потім - рахунок "10.12".

Властивість АвтоПорядокПоКоду

Властивість АвтоПорядокПоКоду використовується під час упорядкування за кодом у формах списків і в запитах. Її призначення - забезпечити правильний порядок проходження рахунків у формах списків і результатах запитів.

Властивість АвтоПорядокПоКоду використовується для підміни впорядкування за полем Код упорядкуванням за полем Порядок. Упорядкування за полем Порядок у цьому разі використовується як, наприклад, у формах списків рахунків, так і в процесі формування запитів.

Приклад використання властивості АвтоПорядокПоКоду у формі списку рахунків

У разі, якщо властивість АвтоПорядокПоКоду увімкнено, зробимо таке:

  1. Відкриємо форму списку для рахунку:


На рисунку видно, що як колонку, за якою відбувається сортування, позначено колонку Код. Однак реально для сортування використовуються дані з поля Порядок.

  1. Змінимо сортування: зазначимо, що сортувати треба за колонкою Порядок:


На рисунку видно, що сортування даних не змінилося. Це дійсно так, оскільки властивість АвтоПорядокПоКоду увімкнено.

Якщо ж властивість АвтоПорядокПоКоду вимкнути, то сортування виконуватиметься інакше:

  1. Відкриємо ще раз форму списку для рахунку:


На рисунку видно, що сортування виконано за полем Порядок.

  1. Змінимо сортування: зазначимо, що сортувати треба за колонкою Код:


На рисунку видно, що порядок проходження рахунків змінився і впорядкування відбувається за полем Код.

Приклад використання властивості АвтоПорядокПоКоду в запиті

Нехай є такі рахунки:

Код Найменування Порядок
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

УПОРЯДОЧИТЬ ПО
Код

Результат:

На цьому прикладі видно, що у разі впорядкування за полем Код замість нього використовується поле Порядок.

Записатися телефоном