ОбъектМетаданных: Поле.ЗаполнятьИзДанныхЗаполнения

Свойства · FillFromFillingValue

Тип: Булево. Свойство определяет возможность заполнения поля из данных заполнения. Используется для заполнения полей из значений текущего отбора списков. Если установлено Истина, то процедура стандартной обработки заполнения будет заполнять поле из данных заполнения. Если в данных заполнения нет данных для заполнения этого поля или свойство имеет значение Ложь, то поле будет заполнен из свойства ЗначениеЗаполнения, если оно установлено.

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

ОбъектМетаданных: Поле.ЗаполнятьИзДанныхЗаполнения (MetadataObject: Field.FillFromFillingValue)

ОбъектМетаданных: Поле (MetadataObject: Field)

ЗаполнятьИзДанныхЗаполнения (FillFromFillingValue)

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

Использование:
Только чтение.
Описание:
Тип: Булево.
Свойство определяет возможность заполнения поля из данных заполнения. Используется для заполнения полей из значений текущего отбора списков. Если установлено Истина, то процедура стандартной обработки заполнения будет заполнять поле из данных заполнения. Если в данных заполнения нет данных для заполнения этого поля или свойство имеет значение Ложь, то поле будет заполнен из свойства ЗначениеЗаполнения, если оно установлено.
Доступность:

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

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

Для количества задано заполнение 0. Читаем это значение, параметры выбора и происхождение описания; саму запись не создаём.

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

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

Подготовка

  1. Используйте отдельную учебную конфигурацию Учебная85 без расширений, не рабочие КА2/УНФ/УТ. В Конфигураторе создайте Внешние источники данных → УчебныйВнешний → Таблицы → Товары. Строку подключения оставьте пустой: упражнения читают только метаданные, внешняя СУБД не требуется.

  2. Для таблицы задайте вид Таблица, тип ОбъектныеДанные, имя в источнике guide_books, ТолькоЧтение=Истина. В её Полях создайте Код (Строка 20, имя book_code), Наименование (Строка 100, имя book_name), Количество (Число 9.0, имя book_quantity) и Версия (Число 15.0, имя book_version). Это описание учебного источника, не команда создания SQL-таблицы.

  3. В ПоляКлюча и ПоляБлокировкиДанных включите Код, ПолеПредставления=Наименование, ПолеВерсииДанных=Версия, ПолеРодителя не задавайте. ВводПоСтроке: Код и Наименование. Для Количество запретите Null, задайте заполнение 0 и Подсказку «Количество книг». Для Наименование задайте Синоним «Название книги». СозданиеПриВводе оставьте без использования.

  4. Модули и справку оставьте пустыми, не создавайте обработчики подключения и команды записи. Обновите только эту учебную конфигурацию. Фрагменты запускайте отдельно на сервере в учебной обработке: они не обращаются к данным источника и не меняют метаданные.

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

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

  1. ЗначениеЗаполнения имеет тип поля: здесь число 0, хотя общий API описывает динамическое значение.

  2. ЗаполнятьИзДанныхЗаполнения — правило заполнения. Чтение свойства не вызывает Заполнить и не создаёт строку SQL.

  3. ФормаВыбора у поля — строковое имя, не объект метаданных формы. Параметры и связи параметров — отдельные фиксированные массивы.

  4. Родитель поля проверяется на отсутствие и должен быть собственной таблицей Товары.

  5. В конфигурации без расширений проверяем происхождение описания. Само значение поля в рабочих строках не читается.

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

  1. Четыре сравнения Истина; остальные строки диагностические.

  2. Количество параметров выбора не выдаётся за количество книг.

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

Настройки заполнения, выбора и происхождения прочитаны отдельно.

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

  1. Чтение ЗначениеЗаполнения не доказывает, что внешняя СУБД настроена с таким DEFAULT.

  2. Параметры выбора неизменяемые; этот урок не пытается дописывать их на сервере.

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

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

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

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

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