ОбъектМетаданных: Справочник.СерииКодов

Свойства · CodeSeries

Тип: СерииКодовПланаВидовХарактеристик, СерииКодовПланаСчетов, СерииКодовСправочника. Определяет варианты диапазона проверки кода на уникальность и автоматического присвоения кодов ( например, ВоВсемСправочнике, ВПределахПодчинения, ВПределахПодчиненияВладельцу).

Полное описание, параметры и ограничения

ОбъектМетаданных: Справочник.СерииКодов (MetadataObject: Catalog.CodeSeries)

ОбъектМетаданных: Справочник (MetadataObject: Catalog)

СерииКодов (CodeSeries)

Доступен, начиная с версии 8.1.

Использование:
Только чтение.
Описание:
Тип: СерииКодовПланаВидовХарактеристик, СерииКодовПланаСчетов, СерииКодовСправочника.
Определяет варианты диапазона проверки кода на уникальность и автоматического присвоения кодов ( например, ВоВсемСправочнике, ВПределахПодчинения, ВПределахПодчиненияВладельцу).
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Определить тип кода номенклатуры до преобразования входящей строки

В КА2 Progress код Номенклатура строковый. Учебный внешний код 000123 сохраняем как строку: превращение в число убирает ведущие нули.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

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

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

  5. Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.

Варианты = Метаданные.СвойстваОбъектов;
Описание = Метаданные.Справочники.Найти("Номенклатура");
Если Описание = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
КонецЕсли;
КодИзОбмена = "000123";
Если Описание.ТипКода = Варианты.ТипКодаСправочника.Строка Тогда
    КодДляПоиска = КодИзОбмена;
    Сообщить("Строковый код: ведущие нули сохранены");
ИначеЕсли Описание.ТипКода = Варианты.ТипКодаСправочника.Число Тогда
    КодДляПоиска = Число(КодИзОбмена);
    Сообщить("Числовой код: формат строки не является значением");
Иначе
    ВызватьИсключение "Неожиданный тип кода: изучите метаданные перед обменом";
КонецЕсли;
Сообщить(Описание.ТипКода = Варианты.ТипКодаСправочника.Строка);
Сообщить(КодДляПоиска = "000123");
Сообщить(Число(КодИзОбмена) = 123);
Сообщить(Описание.СерииКодов = Варианты.СерииКодовСправочника.ВоВсемСправочнике);
Сообщить("Основное представление: " + Строка(Описание.ОсновноеПредставление));
Если Описание.ОсновноеПредставление = Варианты.ОсновноеПредставлениеСправочника.ВВидеНаименования Тогда
    Сообщить("Пользователь видит наименование, но поиск по коду остаётся отдельной операцией");
КонецЕсли;

Разбор по шагам

  1. Находим реальное описание Номенклатура из предоставленного XML и проверяем наличие.

  2. СвойстваОбъектов предоставляет типизированные системные значения метаданных, не пользовательское перечисление товаров.

  3. Выбираем преобразование по фактическому ТипКода; текущий строковый код оставляем без преобразования.

  4. СерииКодов определяет область уникальности, ОсновноеПредставление — видимое представление; это разные свойства.

Как проверить результат

  1. В предоставленном XML четыре сравнения Истина: строковый код, сохранённое 000123, отдельно полученное число 123 и серия всего справочника.

  2. В другой версии конфигурации сначала сверяйте ТипКода и СерииКодов; пример не ищет и не создаёт товар.

Ожидаемый результат

Подготовлена корректная типизация входящего кода без потери ведущих нулей.

На что обратить внимание

  1. Не передавайте число 123 вместо строкового кода 000123 по привычке.

  2. Совпадение кода в данной серии ещё не является внешним идентификатором Avito или другого сервиса.

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

Проверить схему учебного справочника до импорта товаров

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

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

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


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Описание = Метаданные.Справочники.УчебныеТовары;
Сообщить(Описание.Имя = "УчебныеТовары");
Сообщить(Описание.ДлинаКода = 10);
Сообщить(Описание.ДлинаНаименования = 100);
Сообщить(Описание.ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Строка);
Сообщить(Описание.Автонумерация);
Сообщить(Описание.КонтрольУникальности);
Сообщить(Описание.Иерархический);
Сообщить("Вид иерархии: " + Строка(Описание.ВидИерархии));
Сообщить("Серии кодов: " + Строка(Описание.СерииКодов));
Сообщить("Допустимая длина кода: " + Строка(Описание.ДопустимаяДлинаКода));
Сообщить("Ограничение уровней: " + Строка(Описание.ОграничиватьКоличествоУровней));
Сообщить("Количество уровней в настройке: " + Строка(Описание.КоличествоУровней));
Сообщить("Группы сверху: " + Строка(Описание.ГруппыСверху));
Сообщить(Описание.Владельцы.Количество() = 0);
Сообщить("Использование подчинения: " + Строка(Описание.ИспользованиеПодчинения));
Сообщить("Полное имя: " + Описание.ПолноеИмя());
Сообщить("Представление: " + Описание.Представление());
Сообщить("Синоним: " + Описание.Синоним);
Сообщить("Комментарий разработчика: " + Описание.Комментарий);
Сообщить(Описание.Родитель().Имя = "Учебная85");
ИменаПредопределённых = Описание.ПолучитьИменаПредопределенных();
Сообщить(ИменаПредопределённых.Количество() = 0);

Разбор по шагам

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

  2. Код — строка длиной 10, наименование — строка длиной 100. Проверка этих настроек помогает обнаружить неверную подготовку.

  3. Автонумерация и контроль уникальности — настройки записи справочника. Чтение этих флагов не выделяет следующий номер.

  4. Иерархический и ВидИерархии описывают структуру групп. ОграничиватьКоличествоУровней определяет, применяется ли КоличествоУровней.

  5. Владельцы и ИспользованиеПодчинения — не родитель группы: в этом уроке владельцев нет. Родитель() метаданных возвращает корень конфигурации.

  6. ПолучитьИменаПредопределенных читает имена предопределённых элементов схемы; оно не выбирает обычные товары из базы.

Как проверить результат

  1. Все проверки учебного контракта — Истина: код 10/Строка, наименование 100, автонумерация, уникальность и иерархия включены.

  2. Владельцев и имён предопределённых элементов по подготовке 0.

  3. Измените длину кода в отдельной учебной конфигурации на 8 и обновите базу: сравнение длины станет Ложь.

Ожидаемый результат

Схема учебного справочника сверена с импортным контрактом без создания и записи товаров.

На что обратить внимание

  1. Метаданные.Родитель() — иерархия описаний, а Товар.Родитель — ссылка на группу: это разные уровни.

  2. Не изменяйте типовую УТ/КА2/УНФ ради прохождения учебных сравнений; пример предназначен для новой Учебная85.

  3. Чтение Автонумерация не доказывает успешную запись конкретного товара или достаточность прав пользователя.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.