ОбъектМетаданных: ТабличнаяЧасть.СтандартныеРеквизиты

Свойства · StandardAttributes

Тип: ОписанияСтандартныхРеквизитов. Содержит стандартные реквизиты табличной части.

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

ОбъектМетаданных: ТабличнаяЧасть.СтандартныеРеквизиты (MetadataObject: TabularSection.StandardAttributes)

ОбъектМетаданных: ТабличнаяЧасть (MetadataObject: TabularSection)

СтандартныеРеквизиты (StandardAttributes)

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

Использование:
Только чтение.
Описание:
Тип: ОписанияСтандартныхРеквизитов.
Содержит стандартные реквизиты табличной части.
Доступность:

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

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

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

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

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

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

Табличная часть в метаданных описывает колонки. Она не содержит фактические строки штрихкодов товара или товаров заявки.

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

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

Подготовка

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

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

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

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

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

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

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


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

Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Части = Новый Массив;
Части.Добавить(Метаданные.Справочники.УчебныеТовары.ТабличныеЧасти.Штрихкоды);
Части.Добавить(Метаданные.Документы.УчебнаяЗаявка.ТабличныеЧасти.Товары);
Для Каждого Описание Из Части Цикл
    Сообщить("Часть: " + Описание.ПолноеИмя());
    Сообщить("Имя: " + Описание.Имя + "; синоним: " + Описание.Синоним);
    Сообщить("Комментарий: " + Описание.Комментарий);
    Сообщить("Подсказка: " + Описание.Подсказка);
    Сообщить("Длина номера строки: " + Строка(Описание.ДлинаНомераСтроки));
    Сообщить("Использование: " + Строка(Описание.Использование));
    Сообщить("Проверка заполнения: " + Строка(Описание.ПроверкаЗаполнения));
    Сообщить("Владелец описания: " + Описание.Родитель().ПолноеИмя());
    Сообщить("Собственных реквизитов: " + Строка(Описание.Реквизиты.Количество()));
    Для Каждого Реквизит Из Описание.Реквизиты Цикл
        Сообщить(Реквизит.Имя + ": " + Строка(Реквизит.Тип));
    КонецЦикла;
    Для Каждого Стандартный Из Описание.СтандартныеРеквизиты Цикл
        Сообщить("Стандартный реквизит: " + Стандартный.Имя);
    КонецЦикла;
КонецЦикла;
Сообщить(Части[0].Реквизиты.Количество() = 2);
Сообщить(Части[1].Реквизиты.Количество() = 3);

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

  1. В собственных метаданных получаем Штрихкоды справочника и Товары документа, не создавая ни одного объекта данных.

  2. ТабличныеЧасти — коллекция описаний. Каждое описание имеет Реквизиты пользовательских колонок и отдельные СтандартныеРеквизиты.

  3. ПолноеИмя включает владельца и имя части. Родитель возвращает описание справочника или документа, не строку табличной части.

  4. ДлинаНомераСтроки — настройка стандартного номера; Количество реквизитов — количество колонок схемы, не товаров.

  5. Использование зависит от владельца: для справочника связано с группами/элементами; не переносим этот смысл на все виды владельцев.

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

  1. Штрихкоды имеет два собственных реквизита Штрихкод/Основной, Товары — три Товар/Количество/Цена.

  2. Сообщения включают полные имена обеих частей и их владельцев.

  3. Откройте пустой новый товар: в его Штрихкоды по-прежнему 0 строк, несмотря на две колонки описания.

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

Прочитана конкретная схема двух табличных частей и объяснено отличие метаданных от строк объекта.

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

  1. Количество колонок описания не является Количество() строк табличной части объекта.

  2. Стандартный НомерСтроки не нужно создавать как собственный пользовательский реквизит.

  3. Настройка проверки заполнения не доказывает прохождение проверок для будущих данных заявки.

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

Проверить НомерСтроки табличной части без изменения заказа

НомерСтроки — стандартное поле табличной части Товары заказа клиента. Его метаданные не содержат порядок строк конкретного документа.

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

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

Подготовка

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

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

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

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

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

Объект = Метаданные.Документы.Найти("ЗаказКлиента");
Если Объект = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует Документы.ЗаказКлиента";
КонецЕсли;
Часть = Объект.ТабличныеЧасти.Найти("Товары");
Если Часть = Неопределено Тогда
    ВызватьИсключение "Не найдена учебная табличная часть";
КонецЕсли;
Описания = Часть.СтандартныеРеквизиты;
Стандартный = Неопределено;
Для Каждого ОписаниеПоля Из Описания Цикл
    Если ОписаниеПоля.Имя = "НомерСтроки" Тогда
        Стандартный = ОписаниеПоля;
        Прервать;
    КонецЕсли;
КонецЦикла;
Если Стандартный = Неопределено Тогда
    ВызватьИсключение "Стандартный реквизит НомерСтроки не найден";
КонецЕсли;
Сообщить(Стандартный.Тип.СодержитТип(Тип("Число")));
Минимум = Стандартный.МинимальноеЗначение;
Максимум = Стандартный.МаксимальноеЗначение;
Сообщить(Минимум = Неопределено);
Сообщить(Максимум = Неопределено);
Сообщить("Выделять отрицательные: " + Строка(Стандартный.ВыделятьОтрицательные));
Сообщить("Формат просмотра: " + Стандартный.Формат);
Сообщить("Формат редактирования: " + Стандартный.ФорматРедактирования);
УчебныйНомер = 1;
ДопустимПоУчебномуПравилу = УчебныйНомер > 0 И УчебныйНомер = Цел(УчебныйНомер);
Сообщить(ДопустимПоУчебномуПравилу);
Сообщить(Формат(УчебныйНомер, "ЧДЦ=0; ЧГ=0") = "1");

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

  1. Сначала находим документ, затем табличную часть и её стандартное поле: каждый поиск проверяется.

  2. МинимальноеЗначение и МаксимальноеЗначение здесь в XML не заданы; не выдаём это за разрешение любого номера.

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

  4. Формат просмотра, формат редактирования и выделение отрицательных не управляют сортировкой строк документа.

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

  1. По XML пять явных проверок Истина: числовой тип, два незаданных предела, учебное правило и строка 1.

  2. Код не получает объект заказа, не переставляет строки и не присваивает НомерСтроки реальному документу.

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

Разобран стандартный номер строки и граница между схемой и данными документа.

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

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

  2. Не переносите учебное правило на все системные числовые поля без изучения их назначения.

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

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

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

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

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