Тип: Булево. Если свойство установлено в Истина, то запись движений регистра с пустым значением этого измерения будет невозможна.
Полное описание, параметры и ограничения
ОбъектМетаданных: Измерение.ЗапрещатьНезаполненныеЗначения (MetadataObject: Dimension.DenyIncompleteValues)
ОбъектМетаданных: Измерение (MetadataObject: Dimension)
ЗапрещатьНезаполненныеЗначения (DenyIncompleteValues)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Булево.
Если свойство установлено в Истина, то запись движений регистра с пустым значением этого измерения будет невозможна.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Используется для измерений регистра бухгалтерии, регистра накопления, регистра расчета, регистра сведений.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Различить базовое измерение сотрудника и физическое лицо в регистре расчёта
Начисления использует Сотрудник как базовое измерение; ФизическоеЛицо не базовое. Это не взаимозаменяемые ключи расчёта.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Регистр = Метаданные.РегистрыРасчета.Найти("Начисления");
Если Регистр = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Начисления";
КонецЕсли;
Поле = Регистр.Измерения.Найти("Сотрудник");
Если Поле = Неопределено Тогда
ВызватьИсключение "В Начисления отсутствует измерение Сотрудник";
КонецЕсли;
ФизическоеЛицо = Регистр.Измерения.Найти("ФизическоеЛицо");
Если ФизическоеЛицо = Неопределено Тогда
ВызватьИсключение "Не найдено измерение ФизическоеЛицо";
КонецЕсли;
Сообщить(Поле.БазовоеИзмерение);
Сообщить(Не ФизическоеЛицо.БазовоеИзмерение);
Сообщить(Поле.ЗапрещатьНезаполненныеЗначения);
Сообщить(Поле.Тип.СодержитТип(Тип("СправочникСсылка.Сотрудники")));
Сообщить(ФизическоеЛицо.Тип.СодержитТип(Тип("СправочникСсылка.ФизическиеЛица")));
Сообщить("Для получения базы изучайте сопоставление именно измерений расчётного регистра");Разбор по шагам
Каждое измерение находим по собственному имени, не берём первое в коллекции.
БазовоеИзмерение влияет на получение базы расчёта и дополнительное индексирование.
Ссылка сотрудника и ссылка физического лица относятся к разным справочникам.
Мы читаем структуру, не рассчитываем зарплату, базу или перерасчёты.
Как проверить результат
Пять сравнений Истина по XML: базовый сотрудник, небазовое физлицо, обязательность и два разных ссылочных типа.
Начисления не изменились, расчёт зарплаты не запускается.
Ожидаемый результат
Выбран правильный уровень идентичности для дальнейшего изучения расчёта.
На что обратить внимание
Одно физическое лицо может иметь несколько контекстов трудовых отношений; не подменяйте ключ сотрудника без анализа.
Базовое измерение не доказывает правильность формулы, периода действия или состава ведущих видов расчёта.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Сравнить обязательную номенклатуру и необязательную характеристику
В регистре ТоварыНаСкладах измерение Номенклатура запрещает незаполненные значения, Характеристика — нет. Эти свойства описывают ключи, не остатки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Регистр = Метаданные.РегистрыНакопления.Найти("ТоварыНаСкладах");
Если Регистр = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыНакопления.ТоварыНаСкладах";
КонецЕсли;
Поле = Регистр.Измерения.Найти("Номенклатура");
Если Поле = Неопределено Тогда
ВызватьИсключение "В ТоварыНаСкладах отсутствует измерение Номенклатура";
КонецЕсли;
Характеристика = Регистр.Измерения.Найти("Характеристика");
Если Характеристика = Неопределено Тогда
ВызватьИсключение "Не найдено второе учебное измерение Характеристика";
КонецЕсли;
Сообщить(Поле.Тип.СодержитТип(Тип("СправочникСсылка.Номенклатура")));
Сообщить(Поле.ЗапрещатьНезаполненныеЗначения);
Сообщить(Не Характеристика.ЗапрещатьНезаполненныеЗначения);
Сообщить(Поле.Имя = "Номенклатура");
Сообщить("Назначение: " + Поле.Подсказка);
Сообщить("Комментарий разработчика: " + Поле.Комментарий);Разбор по шагам
Находим конкретный регистр и оба измерения, проверяя каждый результат поиска.
Тип измерения номенклатуры содержит ссылку справочника, а не имя товара строкой.
ЗапрещатьНезаполненныеЗначения проверяется при записи движения; это не ответ на вопрос об остатке.
Подсказка описывает назначение измерения, комментарий — дополнительное пояснение разработчика.
Как проверить результат
Четыре сравнения Истина по предоставленному XML: ссылочный тип, обязательная номенклатура, необязательная характеристика и имя.
Никакие движения не читаются и не записываются, наличие товара не утверждается.
Ожидаемый результат
Поняты тип и обязательность двух частей ключа складского регистра.
На что обратить внимание
Необязательная характеристика не означает, что у каждого товара её нет.
Обязательная номенклатура не доказывает существование конкретной переданной ссылки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.