Тип: ТипНомераДокумента. Определяет тип номера документа (например, Число, Строка).
Полное описание, параметры и ограничения
ОбъектМетаданных: Нумератор.ТипНомера (MetadataObject: DocumentNumerator.NumberType)
ОбъектМетаданных: Нумератор (MetadataObject: DocumentNumerator)
ТипНомера (NumberType)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: ТипНомераДокумента.
Определяет тип номера документа (например, Число, Строка).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Проверить общий нумератор реализации и форму собственного номера
В КА2 используется строковый номер длиной 11 с годовой периодичностью; форма номера не доказывает его свободность.
Где и как запускать
Полный серверный общий модуль собственной учебной копии КА2 Progress 2.5.20.75, только чтение схемы.
Подготовка
Используйте отдельную учебную копию КА2 Progress из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, конфигурация КомплекснаяАвтоматизация 2.5.20.75, платформа 8.5.1.1343. Это не инструкция запуска в рабочей базе.
Создайте серверный общий модуль УчебныеКонтрактыИнтерфейса с флагом Сервер. Вставьте полный модуль одного урока и вызовите УчебныеКонтрактыИнтерфейса.ВыполнитьПример() из серверной учебной команды.
Команды подтверждены в Catalogs\Номенклатура.xml и Documents\РеализацияТоваровУслуг.xml; форма — в Catalogs\Номенклатура\Forms\ФормаСписка.xml; нумератор — в DocumentNumerators\ДокументыРеализацииТоваров.xml.
Исходники конфигурации не меняются. Код только читает метаданные и обрабатывает собственные значения в памяти: не вызывает штатную команду, не открывает форму списка, не получает новый номер и не записывает документы.
При отличающейся версии или расширениях результат может отличаться от выгрузки. Сверяйте активную конфигурацию, а не исправляйте её ради зелёных сообщений.
Процедура ВыполнитьПример() Экспорт
Нумератор = Метаданные.НумераторыДокументов.Найти("ДокументыРеализацииТоваров");
Если Нумератор = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого нумератора ДокументыРеализацииТоваров";
КонецЕсли;
Реализация = Метаданные.Документы.Найти("РеализацияТоваровУслуг");
Если Реализация = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого документа реализации";
КонецЕсли;
Сообщить(Реализация.Нумератор = Нумератор);
Сообщить(Нумератор.ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Строка);
Сообщить(Нумератор.ДлинаНомера = 11);
Сообщить(Нумератор.ДопустимаяДлинаНомера = ДопустимаяДлина.Фиксированная);
Сообщить(Нумератор.ПериодичностьНомера = Метаданные.СвойстваОбъектов.ПериодичностьНомераДокумента.Год);
Сообщить(Нумератор.КонтрольУникальности);
Входные = Новый Массив;
Входные.Добавить("КА-00000001");
Входные.Добавить("1");
ПодходитПоДлине = 0;
НеПодходитПоДлине = 0;
Для Каждого НомерИзОбмена Из Входные Цикл
Если ТипЗнч(НомерИзОбмена) <> Тип("Строка") Тогда
ВызватьИсключение "В этом опыте номер должен оставаться строкой";
КонецЕсли;
ДлинаПодходит = СтрДлина(НомерИзОбмена) <= Нумератор.ДлинаНомера;
Если Нумератор.ДопустимаяДлинаНомера = ДопустимаяДлина.Фиксированная Тогда
ДлинаПодходит = СтрДлина(НомерИзОбмена) = Нумератор.ДлинаНомера;
КонецЕсли;
Если ДлинаПодходит Тогда
ПодходитПоДлине = ПодходитПоДлине + 1;
Иначе
НеПодходитПоДлине = НеПодходитПоДлине + 1;
КонецЕсли;
КонецЦикла;
Сообщить(ПодходитПоДлине = 1 И НеПодходитПоДлине = 1);
Сообщить("КА-00000001 проверен только по типу и длине; не присваивался документу и не проверялся на свободность");
КонецПроцедурыРазбор по шагам
Нумератор найден в отдельной коллекции конфигурации. Свойство Нумератор документа реализации указывает на него согласно исходному XML.
NumberType=String, NumberLength=11, NumberAllowedLength=Fixed, NumberPeriodicity=Year, CheckUnique=true проверяются отдельно.
Собственный номер КА-00000001 содержит 11 символов; строка 1 — один символ. Не превращаем первый номер в Число и не удаляем префикс.
Для фиксированной длины проверяется равенство, для переменной — верхний предел. Это предварительная проверка формы входа, не полный алгоритм назначения номера 1С.
Годовая периодичность относится к контролю/повторению номеров, не обещает одинаковую свободность по всем документам и разделителям данных.
Не вызываем УстановитьНовыйНомер и не резервируем номер. Уникальность, префиксы и конфигурационные проверки требуют отдельного транзакционного сценария записи.
Как проверить результат
Семь сравнений ожидаются Истина: связь документа, пять правил схемы, один подходящий/один неподходящий собственный номер.
Номер не появился в базе и не занят этим опытом.
Ожидаемый результат
На настоящем нумераторе проверена только структура двух входных номеров с явным отделением от уникальности.
На что обратить внимание
КонтрольУникальности=Истина не означает, что выдуманный номер уже проверен на свободность.
Не рассчитывать новый номер по максимуму без учёта штатной нумерации и конкурентной записи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.