Тип: Булево. Содержит признак того, что в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL. Истина - не нужно включать.
Полное описание, параметры и ограничения
РольПоляНабораДанныхКомпоновкиДанных.ИгнорироватьЗначенияNULL (DataCompositionDataSetFieldRole.IgnoreNULLValues)
РольПоляНабораДанныхКомпоновкиДанных (DataCompositionDataSetFieldRole)
ИгнорироватьЗначенияNULL (IgnoreNULLValues)
Доступен, начиная с версии 8.1.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак того, что в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL.
Истина - не нужно включать.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Связать название товара с его измерением
Код BOOK является измерением, Книга — его реквизитом. Родитель задаётся путём поля Товар, а не его отображаемым заголовком.
Где и как запускать
Полный серверный общий модуль собственной учебной базы; настройка схемы не является проведением документов.
Подготовка
В своей отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеРолиПолейСКД. Вставьте полный текст одного урока: процедуру и две функции ниже неё.
Вызовите УчебныеРолиПолейСКД.ВыполнитьПример() из серверной команды собственной обработки. Схема и таблицы остаются на сервере, на клиент выводятся только сообщения.
Товары, даты, остатки и номер 50 заданы собственными константами. Код не читает и не изменяет регистры, план счетов, документы или файлы.
Схема описывается явно: АвтоЗаполнениеДоступныхПолей выключено, каждое поле добавляется через коллекцию Поля. Роль получается из настоящего поля, отдельного конструктора роли нет.
В первом уроке выполняется СКД. Уроки остатков, измерений, периодов и бухгалтерских ролей отдельно проверяют настройку схемы и её исходные строки; это не доказательство корректных итогов рабочего отчёта.
Процедура ВыполнитьПример() Экспорт
Схема = СоздатьУчебнуюСхему("ВЫБРАТЬ ""BOOK"" КАК Товар, ""Книга"" КАК Название, 750 КАК Сумма
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ ""PEN"", ""Ручка"", 50");
Набор = Схема.НаборыДанных.Получить(0);
Товар = ДобавитьУчебноеПоле(Набор, "Товар", "Строка");
Название = ДобавитьУчебноеПоле(Набор, "Название", "Строка");
ДобавитьУчебноеПоле(Набор, "Сумма", "Число");
Товар.Роль.Измерение = Истина;
Товар.Роль.ИгнорироватьЗначенияNULL = Истина;
Товар.Роль.Основное = Истина;
РольНазвания = Название.Роль;
РольНазвания.РеквизитИзмерения = Истина;
РольНазвания.РодительскоеИзмерение = Товар.ПутьКДанным;
РольНазвания.Измерение = Ложь;
РольНазвания.Основное = Ложь;
Сообщить(РольНазвания.РодительскоеИзмерение = "Товар");
Сообщить(Набор.Поля.Найти(РольНазвания.РодительскоеИзмерение) = Товар);
Сообщить(РольНазвания.РеквизитИзмерения И НЕ РольНазвания.Измерение);
Сообщить(Товар.Роль.ИгнорироватьЗначенияNULL);
Сообщить(Товар.Роль.Основное И НЕ РольНазвания.Основное);
Запрос = Новый Запрос(Набор.Запрос);
Строки = Запрос.Выполнить().Выгрузить();
Сообщить(Строки.Количество() = 2);
Сообщить(Строки.Найти("BOOK", "Товар").Название = "Книга");
Сообщить(Строки.Найти("PEN", "Товар").Название = "Ручка");
Сообщить(Строки.Итог("Сумма") = 800);
КонецПроцедуры
Функция СоздатьУчебнуюСхему(ТекстЗапроса)
Схема = Новый СхемаКомпоновкиДанных;
Источник = Схема.ИсточникиДанных.Добавить();
Источник.Имя = "УчебныйИсточник";
Источник.ТипИсточникаДанных = "Local";
Набор = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Набор.Имя = "УчебныеДанные";
Набор.ИсточникДанных = Источник.Имя;
Набор.АвтоЗаполнениеДоступныхПолей = Ложь;
Набор.Запрос = ТекстЗапроса;
Возврат Схема;
КонецФункции
Функция ДобавитьУчебноеПоле(Набор, ИмяПоля, ТипПоля)
Поле = Набор.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле.Поле = ИмяПоля;
Поле.ПутьКДанным = ИмяПоля;
Поле.Заголовок = ИмяПоля;
Поле.ТипЗначения = Новый ОписаниеТипов(ТипПоля);
Возврат Поле;
КонецФункцииРазбор по шагам
Создать самостоятельное поле Товар и поясняющее поле Название. Обозначить роль первого как Измерение.
У Название включить РеквизитИзмерения, выключить самостоятельное измерение и указать РодительскоеИзмерение = Товар.ПутьКДанным.
Для Товар установить ИгнорироватьЗначенияNULL: при группировке это исключает групповые записи с NULL. В собственных двух строках NULL нет, поэтому эффект группировки этим запуском не проверяется.
Включить Основное только у Товар. В 8.5.1 генератор табличного документа помещает основное поле первым в расшифровке деталей; этот урок не создаёт табличный документ и не открывает объекты.
Проверить настоящую связь полей через Найти и исходные пары BOOK/Книга, PEN/Ручка.
Как проверить результат
Девять проверок дают Истина.
Основное включено только у одного поля. BOOK — строка, не ссылка справочника: этот образец не обещает открытие карточки товара.
Ожидаемый результат
Корректно настроенные измерение, его название и единственное основное поле собственной схемы.
На что обратить внимание
РодительскоеИзмерение — путь к данным, не название общего модуля и не имя таблицы SQL.
NULL не равен пустой строке или Неопределено; флаг не является фильтром всех пустых значений.
Несколько основных полей не рекомендуются. Это роль расшифровки, а не сортировка результата.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.