1С при установке нового номера

1С при установке нового номера

УстановитьНовыйНомер( )
Параметры:
(необязательный)
Тип: Строка.
Префикс устанавливаемого номера.
Значение по умолчанию: Пустая строка
Описание:
Устанавливает новый номер документа для заданного префикса номера.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Для документов с нумерацией в пределах периода, номер устанавливается в пределах периода, соответствующего установленной дате документа. Если дата — пустая, процедура установит номер в пределах периода соответствующего пустой дате.
Пример:
Код 1C v 8.х

В типовой конфигурации, как правило, установка нового номера происходит через подписку на событие "ПриУстановкеНовогоНомера. ". Последовательность вызова процедур, при работе через форму документа, при этом следующая:
— МодульФормы ПередЗаписью()
— МодульОбъекта ПередЗаписью()
— МодульОбъекта ПриУстановкеНовогоНомера()
— Событие(подписка) ПриустановкеНовогоНомера() (установка префиксов и номера)
— МодульОбъекта ПриЗаписи() (префиксы и номер установлены)
— Модульформы ПриЗаписи()
— МодульФормы ПослеЗаписи()

Эта заметка вероятно заинтересует Вас, если вы уже работаете в программе 1С: Бухгалтерия предприятия, редакция 3.0 после перехода со второй редакции и столкнулись с новыми форматами нумерации документов. Если вы только планируете переход на редакцию 3.0, то эта информация будет полезна во избежание дальнейших трудностей с корректной нумерацией.

Хотя я и использую слово «трудности», но на самом деле, разработчики позаботились о пользователях и по максимуму упростили восстановление нумерации документов в программе, и никаких сложностей возникнуть у Вас не должно.

Приведу небольшую инструкцию по «перенумерации» и расскажу о префиксах в новом формате номера.

В ПП 1С: Бухгалтерия предприятия, редакция 3.0 был введен новый формат нумерации документов, и при создании нового документа программа автоматически присваивает ему новый номер по шаблону «0000 – 000000». Если на момент изменения нумерации у Вас уже имелись в программе документы, номер которых имеет другой формат (например, «00000000000» — одинадцатизначный номер, где первые три символа отведены под префикс организации), тогда номер у следующего нового документа будет выглядеть так «0000 – 000001», где первые два символа до знака дефиса отведены также под префикс организации.

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

Если изначально такой префикс был задан, то он никуда не исчезнет, только обрежется до двух символов, если он был длиннее, и номер будет выглядеть так — «ТД00-000001».

Читайте также:  Создание штриховки в автокаде

Многих пользователей смущают и префикс, и знак дефиса в номере, сразу скажу, что ни то, ни другое не выводится на печать и имеет строго «внутребазовое» назначение технического или логического уровня.

Возникает вопрос, для чего нужны еще два символа перед знаком дефиса. Как ни странно, но они тоже отведены под префикс – префикс информационной базы. С течением времени и прогрессом во всех областях постепенно преображается и обмен данными между различными программами, так вот в случае, если вы используете синхронизацию (новое современное названия обмена) с другими ПП 1С, например, 1С: Зарплата и управление персоналом 3.0 или 1С: Управление торговлей, то префикс базы просто необходим. Повторюсь, он также состоит из двух символов и задается в «Настройках синхронизации данных» (Администрирование – Настройки синхронизации данных рис.2), тут указано, для чего необходим префикс и где он будет проставляться в программе.

Предположим, изначально в базе был указан только префикс организации из трех символов «ТДК». Укажем еще префикс информационной базы «БП», префикс организации обрезан до двух символов автоматически «ТД».

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

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

Чтобы в дальнейшем при создании нового документа этого типа программа знала, какой номер должен быть следующим, задаем вручную номер, следующий за последним, в новом формате, в нашем примере он будет выглядеть так: «ТДБП-000006». И записываем документ

Создаем новый документ, записываем, убеждаемся, что номера теперь идут по порядку. Рис.4.

Эту последовательность действий необходимо будет выполнить для всех объектов, которые должны иметь сквозную нумерацию.

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

Александра Люфт. Специалист Линии Консультации.

Читайте также:  Что означает синее сердечко в сообщении

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как восстановить vcf файл

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка на основную публикацию
Adblock detector