В какое значение можно установить свойство серии кодов объекта конфигурации справочник 1с

Обновлено: 06.07.2024

Автонумерация

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

Что такое автонумерация и зачем она нужна?

Автоматическая нумерация элементов справочников позволяет устанавливать во вновь создаваемых элементах уникальные коды. При этом создаваемые коды элементов последовательно увеличиваются.

Формирование нового уникального кода справочника зависит от того, как у справочника настроены серии кодов:

  • во всем справочнике - в процессе формирования нового кода для элемента справочника будет сформирован код, уникальный во всем справочнике;
  • в пределах подчинения - в процессе формирования нового кода для элемента справочника будет сформирован код, уникальный в пределах иерархии элемента (элементы, имеющие одного и того же родителя будут иметь различные коды, элементы, имеющие разных родителей могут иметь одинаковые коды);
  • в пределах подчинения владельцу - в процессе формирования нового кода для элемента справочника будет сформирован код, уникальный в пределах подчинения (элементы, имеющие одного и того же владельца будут иметь различные коды; элементы, имеющие различных владельцев могут иметь одинаковые коды).

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

Рассмотрим пример. Пусть есть справочник: иерархический, иерархия элементов, серии кодов - в пределах подчинения, автонумерация - включена.

Добавим в справочник первый элемент:

На рисунке видно, что автоматическая нумерация элементов справочника началась с 000001.

Добавим в справочник второй элемент:

Добавим в него еще один элемент, который будет дочерним для второго элемента:

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

Одной из особенностей автонумерации является использование лидирующих нулей. Это необходимо для того, чтобы поиск и сортировка по коду (номеру) работали эффективно. Для этого используется индекс базы данных по полю код (или номер). Использование индекса требует упорядоченной последовательности с точки зрения базы данных. Поэтому 1С:Предприятие 8 в процессе автоматического формирования новых кодов (номеров) всегда использует лидирующие нули.

Обеспечить правильную сортировку, например, документов по их номеру без использования лидирующих нулей невозможно. Например, пусть у нас есть документы со строковыми номерами "Док11" и "Док3". В этом случае документ с номером "Док3" будет идти после документа с номером "Док11", что неправильно.

Работа с префиксом кода справочника в процессе автонумерации

Установка префикса при формировании нового номера кода элемента имеет смысл только в том случае, если код элемента является строкой.

Для того чтобы при формировании нового кода (номера) устанавливать префикс, можно воспользоваться обработчиком события При установке нового кода . Это событие возникает в тот момент, когда начинается формирование нового кода, например нового кода элемента справочника. Синтаксис описания этого обработчика следующий:

ПриУстановкеНовогоКода(<Стандартная обработка>, <Префикс>),

  • <Стандартная обработка> - признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового кода производиться не будет;
  • <Префикс> - префикс, который будет использоваться для генерации кода.

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

// Процедура обработчик события ПриУстановкеНовогоКода
// Подменяет префикс кода на предопределенный для данной ИБ
//
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)

КонецПроцедуры // ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)

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

// Выдает префикс нового номера
//
// Возвращаемое значение:
// Строка – Префикс нового номера
//
Функция ПолучитьПрефиксНомера() Экспорт

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

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

Поддержка автонумерации другими объектами метаданных

Кроме справочника, автонумерацию поддерживают следующие объекты метаданных:

  • Документ;
  • План видов характеристик;
  • Бизнес-процесс;
  • Задача.

Для документа, бизнес-процесса и задачи установку нового номера можно обработать в обработчике события При установке нового номера .

Для плана видов характеристик установку нового кода можно обработать в обработчике события При установке нового кода .

Для хранения информации, имеющей списочный характер, используются объекты типа Справочник. Содержимое каждой позиции справочника может характеризоваться совокупностью признаков - реквизитов, а также иметь какие-то подчиненные сущности также списочного характера - они отображаются в таблице. Например, график оплаты может характеризоваться наименованием и формой оплаты, а сам набор этапов оплаты по срокам будет храниться в подчиненной таблице:

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

Вопрос 01.01 экзамена 1С:Профессионал по платформе. В какое значение можно установить свойство "Серии кодов" объекта конфигурации "Справочник"?

  1. Во всем справочнике
  2. В пределах подчинения
  3. В пределах подчинения владельцу
  4. Верны все указанные ответы
  5. Верны ответы 1 и 2

Правильный ответ - четвертый. Во всем справочнике означает вообще сквозную нумерацию; в пределах подчинения - нумерация сквозная в пределах группы иерархии; в пределах подчинения владельцу - нумерация будет сквозная для всех позиций, подчиненных одному владельцу (например для всех договоров одного контрагента).

Вопрос 01.17 экзамена 1С:Профессионал по платформе. Для каких целей служат табличные части справочников?

  1. Для хранения подчиненных сущностей, имеющих объектную природу
  2. Для хранения подчиненных сущностей, не имеющих объектную природу
  3. Для формирования печатных форм элементов справочника

Правильный ответ второй. Табчасти хранят подчиненные сущности. Под объектной природой понимается самостоятельность табчасти. Так как строка табчасти справочника не имеет самостоятельного, отдельного от справочника смысла, объектной природы она не имеет.

Вопрос 01.70 экзамена 1С:Профессионал по платформе. Что содержится в объекте информационной базы при редактировании нового элемента справочника с табличными частями?

  1. Данные реквизитов
  2. Ссылка на элемент справочника
  3. Строки табличных частей
  4. Верны ответы 1 и 3
  5. Верны все варианты

Правильный ответ четвертый - раз элемент новый, значит еще не записан, то есть ссылки на него еще нет в базе данных.

  1. Данные реквизитов
  2. Ссылку на элемент справочника
  3. Строки табличных частей
  4. Верны ответы 1 и 3
  5. Верны все варианты

Правильный ответ пятый, в случае существующего элемента ссылка уже есть.

Вопрос 06.15 экзамена 1С:Профессионал по платформе. Как повлияет удаление элемента справочника, который уже используется в других объектах, а потом создать новый с такими же реквизитами, на поведение программы?

  1. Ничего, на логику программы это никак не повлияет
  2. У элемента будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
  3. Возникнет исключительная ситуация

Правильный ответ второй. У каждого элемента справочника, даже идентичного другим, свой номер и свой GUID.

Занимаюсь подготовкой к профу. Попался такой вопрос:
В какое значение можно установить свойство "Серии кодов" объекта конфигурации "Справочник"?

Ответы:
1.Во всем справочнике
2.В пределах подчинения
3.В пределах подчинения владельцу
4.Верны все указанные ответы
5.Верны ответы 1 и 2

Не знаю, ответа. Что за такое св-во Серии кодов, первый раз про него слышу.

Разъясните кто знает. За ответы премного благодарен.

Ну то бишь как генерируются коды новых элементов справочника.

не понятный точно вопрос по профу:

Выбор типа значения основного реквизита приводит
Какого реквизита 0_о, не понятно.
Кстати 1С-ниги специально что ли такие неодназначные вопросы задают, денег наверное надо

у формуДокумента документы есть документОбьект ответ 4
основной реквизит формы. Как при изменении его типа, может измениться контекст модуля формы, бред какой то.
фсе правильно в модуле формаЭлемнта Справочник нельза определить обработчик проведения и заполнения

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

Есть форма с двумя реквизитами: ДокументОбъект, Реквизит1. Реквизит ДокументОбъект является основным реквизитом и имеет в свою очередь реквизиты с именами Реквизит1, Реквизит2. Тогда обращение к реквизитам в модуле формы будет осуществляться следующим образом:

Есть форма с двумя реквизитами: ДокументОбъект, Реквизит1. Реквизит ДокументОбъект является основным реквизитом и имеет в свою очередь реквизиты с именами Реквизит1, Реквизит2. Тогда обращение к реквизитам в модуле формы будет осуществляться следующим образом:

Использование кодов (номеров) объектов конфигурации

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Методическая рекомендация (полезный совет)

Длины кодов (номеров) объектов конфигурации задаются в зависимости от их прикладного смысла.

    Необходимость применения кодов (номеров) объектов конфигурации определяется из их прикладного смысла. Основания для применения кодов (номеров):

1.1. Пользователям предстоит работать со списками, содержащими большое количество элементов.
Пример: справочник Номенклатура .

1.2. Искать данные по коду (номеру) удобнее, чем по другим свойствам.
Например, справочник Статьи расходов . Пользователю проще запомнить код, чем каждый раз вчитываться в название статьи. Кроме того, названия статей могут меняться.

1.3. Код имеет прикладной смысл, продиктованный спецификой автоматизируемой области.
Например, код справочника Единицы измерения соответствует коду единицы измерения в ОКЕИ, код справочника Номера ГТД соответствует номеру грузовой таможенной декларации и т.д.

2.1. Код используется как краткое представление элемента данных в виде строки.
Например, для справочника Пользователи автонумерация не применяется, т.к. в коде хранится краткое имя пользователя (логин).

2.2. Код (номер) получается из внешних источников (т.н. входящие данные).
Например, это все классификаторы.
Другой пример - справочник Номера ГТД , код которого вводится исходя из данных входящих документов.

3.1. Для объектов с автонумерацией длина кода (номера) выбирается, исходя из потенциального количества всех объектов, хранимых в базе данных;
объектов, относящихся к определенному периоду (для документов и бизнес-процессов);
или объектов, относящихся к определенному владельцу (иерархические и подчиненные справочники, задачи).
При этом в длине номера необходимо учитывать длину префиксов нумерации, например, префикс информационной базы, префикс организации, если это предусмотрено конфигурацией и т.п.

При разработке типовых конфигураций рекомендуемыми, но не обязательными к применению являются длины кодов (номеров) из следующего ряда: 3, 5, 9, 11. При этом в длине номера необходимо учитывать длину префиксов нумерации, например, префикс информационной базы, префикс организации, если это предусмотрено конфигурацией и т.п.

Если в конфигурации используется подсистема Префиксация объектов из Библиотеки стандартных подсистем , то совокупную длину (с учетом префикса) номеров документов и кодов справочников рекомендуется устанавливать не менее 11 символов (11, 13, 15, …). Подробнее см. документацию к подсистеме "Префиксация объектов" на ИТС.

3.2. Для объектов, в которых код используется как краткое представление элемента данных в виде строки (см. п. 2.1) длина кода устанавливается достаточной для хранения краткого строкового представления объектов исходя из прикладного смысла кода.

3.3. Для объектов, в которых код (номер) получается из внешних источников (см. п. 2.2), длина кода (номера) зависит от этого источника.

3.4. Рекомендуется устанавливать допустимую длину кода (номера) объектов переменной.

В случае если прикладное решение рассчитано на работу с данными, которые могут вводиться параллельно из нескольких мест (в рамках РИБ, в других программах), в нем должна быть реализована возможность автоматической префиксации объектов конфигурации, для которых выполняются следующие условия:
- используется строковый код (номер),
- используется автонумерация,
- данные, соответствующие области, в пределах которой коды (номера) должны быть уникальными, могут вводиться параллельно из нескольких мест (узлов РИБ, программ) и впоследствии консолидироваться, например, в результате выполнения синхронизации данных. Пример такой области для большинства видов документов – организация и период.
При использовании в конфигурации Библиотеки стандартных подсистем реализовать данное требование позволяет подсистема Префиксация объектов .

Читайте также: