Тип: ПроверкаЗаполнения. Устанавливает включение табличной части в автоматическую проверку заполнения, выполняемую системой.
Полное описание, параметры и ограничения
ОбъектМетаданных: ТабличнаяЧасть.ПроверкаЗаполнения (MetadataObject: TabularSection.FillChecking)
ОбъектМетаданных: ТабличнаяЧасть (MetadataObject: TabularSection)
ПроверкаЗаполнения (FillChecking)
Доступен, начиная с версии 8.2.
Использование:
Только чтение.
Описание:
Тип: ПроверкаЗаполнения.
Устанавливает включение табличной части в автоматическую проверку заполнения, выполняемую системой.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Прочитать структуру табличных частей справочника и документа
Табличная часть в метаданных описывает колонки. Она не содержит фактические строки штрихкодов товара или товаров заявки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.
Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.
Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Части = Новый Массив;
Части.Добавить(Метаданные.Справочники.УчебныеТовары.ТабличныеЧасти.Штрихкоды);
Части.Добавить(Метаданные.Документы.УчебнаяЗаявка.ТабличныеЧасти.Товары);
Для Каждого Описание Из Части Цикл
Сообщить("Часть: " + Описание.ПолноеИмя());
Сообщить("Имя: " + Описание.Имя + "; синоним: " + Описание.Синоним);
Сообщить("Комментарий: " + Описание.Комментарий);
Сообщить("Подсказка: " + Описание.Подсказка);
Сообщить("Длина номера строки: " + Строка(Описание.ДлинаНомераСтроки));
Сообщить("Использование: " + Строка(Описание.Использование));
Сообщить("Проверка заполнения: " + Строка(Описание.ПроверкаЗаполнения));
Сообщить("Владелец описания: " + Описание.Родитель().ПолноеИмя());
Сообщить("Собственных реквизитов: " + Строка(Описание.Реквизиты.Количество()));
Для Каждого Реквизит Из Описание.Реквизиты Цикл
Сообщить(Реквизит.Имя + ": " + Строка(Реквизит.Тип));
КонецЦикла;
Для Каждого Стандартный Из Описание.СтандартныеРеквизиты Цикл
Сообщить("Стандартный реквизит: " + Стандартный.Имя);
КонецЦикла;
КонецЦикла;
Сообщить(Части[0].Реквизиты.Количество() = 2);
Сообщить(Части[1].Реквизиты.Количество() = 3);Разбор по шагам
В собственных метаданных получаем Штрихкоды справочника и Товары документа, не создавая ни одного объекта данных.
ТабличныеЧасти — коллекция описаний. Каждое описание имеет Реквизиты пользовательских колонок и отдельные СтандартныеРеквизиты.
ПолноеИмя включает владельца и имя части. Родитель возвращает описание справочника или документа, не строку табличной части.
ДлинаНомераСтроки — настройка стандартного номера; Количество реквизитов — количество колонок схемы, не товаров.
Использование зависит от владельца: для справочника связано с группами/элементами; не переносим этот смысл на все виды владельцев.
Как проверить результат
Штрихкоды имеет два собственных реквизита Штрихкод/Основной, Товары — три Товар/Количество/Цена.
Сообщения включают полные имена обеих частей и их владельцев.
Откройте пустой новый товар: в его Штрихкоды по-прежнему 0 строк, несмотря на две колонки описания.
Ожидаемый результат
Прочитана конкретная схема двух табличных частей и объяснено отличие метаданных от строк объекта.
На что обратить внимание
Количество колонок описания не является Количество() строк табличной части объекта.
Стандартный НомерСтроки не нужно создавать как собственный пользовательский реквизит.
Настройка проверки заполнения не доказывает прохождение проверок для будущих данных заявки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Узнать колонки табличных частей документа
Разбираем структуру всех табличных частей РеализацииТоваровУслуг, чтобы подготовить корректное сопоставление полей импорта.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Если в конфигурации нет РеализацияТоваровУслуг, замените имя на реально существующий документ с табличной частью.
В Конфигураторе откройте Документы → выбранный документ → Табличные части → Реквизиты.
Документ = Метаданные.Документы.Найти("РеализацияТоваровУслуг");
Если Документ = Неопределено Тогда
ВызватьИсключение "Нет выбранного документа в этой конфигурации";
КонецЕсли;
Для Каждого Часть Из Документ.ТабличныеЧасти Цикл
Сообщить(Часть.ПолноеИмя());
Сообщить(Часть.Представление());
Сообщить(СтрШаблон("Часть: %1 (%2); реквизитов: %3", Часть.Имя, Часть.Синоним, Часть.Реквизиты.Количество()));
Сообщить(Часть.Комментарий);
Сообщить(Часть.Использование);
Сообщить(Часть.ПроверкаЗаполнения);
Сообщить(Часть.Родитель());
Для Каждого Поле Из Часть.Реквизиты Цикл
Сообщить(СтрШаблон(" %1 (%2): %3; заполнение: %4", Поле.Имя, Поле.Синоним, Поле.Тип, Поле.ПроверкаЗаполнения));
КонецЦикла;
КонецЦикла;Разбор по шагам
Обходим описания табличных частей, а не товарные строки существующей продажи.
Для каждой части выводим имя, родителя и настройки использования и заполнения.
Внутренний цикл выводит имена и типы колонок: по ним составляется сопоставление полей внешнего файла.
Не предполагаем названия Товары, Количество или Цена заранее — используем фактический состав метаданных.
Как проверить результат
В выводе присутствуют реальные части и реквизиты из дерева конфигурации; количества совпадают.
В конфигурации без табличных частей цикл ничего не выводит — это допустимый результат.
Стандартный НомерСтроки не обязан находиться среди собственных Реквизиты; не путайте их со СтандартныеРеквизиты.
Ожидаемый результат
Получена схема для подготовки импорта строк документа без создания документа.
На что обратить внимание
Числовой тип колонки не объясняет формулу её расчёта или единицу измерения.
Заполнение строк ещё не означает корректный документ: обработчики могут рассчитывать дополнительные поля.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.