Автонумерация
В данном разделе рассматриваются особенности работы механизма автонумерации на примере справочника.
Что такое автонумерация и зачем она нужна?
Автоматическая нумерация элементов справочников позволяет устанавливать во вновь создаваемых элементах уникальные коды. При этом создаваемые коды элементов последовательно увеличиваются.
Формирование нового уникального кода справочника зависит от того, как у справочника настроены серии кодов:
Последовательное увеличение кодов элементов справочника в процессе автонумерации будет происходить таким образом, чтобы создаваемый код справочника соответствовал настройке серии кодов.
Добавим в справочник первый элемент:
На рисунке видно, что автоматическая нумерация элементов справочника началась с 000001.
Добавим в справочник второй элемент:
Добавим в него еще один элемент, который будет дочерним для второго элемента:
На рисунке видно, что в процессе автоматического формирования кода для нового элемента справочника была учтена настройка серии кодов: код для третьего элемента уникален только в пределах элементов, родителем которых является второй элемент.
Одной из особенностей автонумерации является использование лидирующих нулей. Это необходимо для того, чтобы поиск и сортировка по коду (номеру) работали эффективно. Для этого используется индекс базы данных по полю код (или номер). Использование индекса требует упорядоченной последовательности с точки зрения базы данных. Поэтому 1С:Предприятие 8 в процессе автоматического формирования новых кодов (номеров) всегда использует лидирующие нули.
Обеспечить правильную сортировку, например, документов по их номеру без использования лидирующих нулей невозможно. Например, пусть у нас есть документы со строковыми номерами «Док11» и «Док3». В этом случае документ с номером «Док3» будет идти после документа с номером «Док11», что неправильно.
Работа с префиксом кода справочника в процессе автонумерации
Установка префикса при формировании нового номера кода элемента имеет смысл только в том случае, если код элемента является строкой.
Рассмотрим следующий пример. Пусть есть конфигурация для распределенной информационной базы, в которой с помощью префиксов обеспечивается формирование уникальных кодов справочников в каждом из узлов. Формирование такого уникального кода можно сделать так:
// Процедура обработчик события ПриУстановкеНовогоКода
// Подменяет префикс кода на предопределенный для данной ИБ
//
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
КонецПроцедуры // ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
// Выдает префикс нового номера
//
// Возвращаемое значение:
// Строка – Префикс нового номера
//
Функция ПолучитьПрефиксНомера() Экспорт
Поддержка автонумерации другими объектами метаданных
Кроме справочника, автонумерацию поддерживают следующие объекты метаданных:
Заметки из Зазеркалья
Реализовано в версии 8.3.6.1977.
Мы значительно автоматизировали модификацию прикладных решений в тех случаях, когда удаляются или переименовываются объекты конфигурации, их реквизиты, а так же элементы, реквизиты и параметры форм.
Платформа контролирует ссылочную целостность дерева объектов конфигурации. Она автоматически отслеживает ссылки на объекты (реквизиты и т.д.), и не позволяет удалять их тогда, когда они используются в других объектах. Точно так же переименование объектов (реквизитов и т.д.) конфигурации не нарушает существующие связи их с другими объектами конфигурации.
Однако имена объектов используются не только в структуре метаданных, но и в программном коде. И в случае удаления/переименования объектов вам приходится вручную вносить исправления в программный код. Такая работа требует внимательности и аккуратности, и по этой же причине она является источником ошибок.
Теперь этот процесс значительно автоматизирован. При удалении или переименовании объектов конфигурации платформа автоматически находит фрагменты кода, которые связаны с изменяемым объектом. Очевидные фрагменты платформа может переименовать самостоятельно, а в неочевидных случаях она предлагает принять решение вам.
Настройки
Использование этого механизма настраивается в параметрах конфигуратора. Теперь там появилась группа настроек Рефакторинг при изменениях в метаданных и формах:
Автоматический анализ текстов модулей вы можете настроить по-отдельности для каждого вида операций. При удалении, при переименовании, при изменениях, выполняемых в формах. Также вы можете настроить реакцию платформы в тех случаях, когда требуется ваше участие: Задавать вопрос, Продолжать операцию или Отменять операцию.
Терминология
Не всегда есть возможность автоматически определить, что данный фрагмент кода работает с конкретным объектом конфигурации.
Например, если в коде используется конструкция Справочники.Номенклатура, то мы со 100%-ой уверенностью можем сказать, что выполняется работа со справочником Номенклатура. Такие случаи называются фактическим использованием. Их платформа умеет обрабатывать автоматически, а в окне результатов поиска они помечаются пиктограммой i.
Поиск ссылок
Если вы хотите заранее проанализировать последствия переименования или удаления объектов конфигурации, вы можете найти все ссылки на них в модулях:
Платформа перечислит все фрагменты кода, которые могут использовать выбранный объект. По двойному клику мыши она откроет соответствующий модуль и подсветит найденную строку:
Удаление
При удалении объекта конфигурации платформа автоматически покажет список фрагментов, которые могут использовать удаляемый объект:
Соответственно вы можете сначала удалить объект и потом исправить фрагменты кода. Или наоборот, сначала отказаться от удаления объекта, исправить все фрагменты кода, а затем удалить объект.
Переименование
При переименовании объектов платформа (если найдёт фрагменты кода) также сначала поинтересуется, хотите ли вы продолжать эту операцию:
Вы можете отказаться, и сначала исправить все фрагменты кода. А можете согласиться. Тогда платформа самостоятельно исправит случаи фактического использования и выведет общий список найденных фрагментов. В этом списке случаи возможного использования вам нужно будет исправить вручную, нажимая на ссылку Заменить.
Чтобы ускорить ручное изменение фрагментов, вы можете выделить сразу несколько строк, а затем из контекстного меню выполнить команду Заменить.
Надеемся, что новый механизм значительно сократит количество «ручной» работы и желаем вам удачного переименования и удаления объектов :).
Имена объектов метаданных в конфигурациях
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
п/п | Объекты метаданных | Правила наименования | Область применения (уточнение) |
1. | Подсистемы |