Добавить вторую собственную метку в поле, не заменяя первую

Учебные задачи

Значение стандартного параметра получает настоящая форма выбора, открытая платформой из расширенного поля множественных значений.

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

Основной блок — модуль управляемой формы выбора справочника; дополнительные блоки — отдельная родительская форма.

Подготовка

  1. В своей учебной конфигурации создайте неиерархический справочник УчебныеМеткиКниг, код Строка 10. Вручную создайте OWN-1 Бумажная и OWN-2 Учебная. Пустые / чужие ссылки не используйте.

  2. У справочника создайте управляемую форму выбора ВыборМеток штатным мастером. Оставьте основной динамический список Список и одноимённую таблицу. Выведите собственную команду ВыбратьСвоюМетку с основным блоком; выбирайте в таблице существующую OWN-2.

  3. Отдельная родительская общая управляемая форма: реквизит МеткиКниг типа СписокЗначений, связанное поле ввода ПолеМетки. Дополнительные обработчики ПриСозданииНаСервере и НачалоВыбора находятся только в модуле родителя. Для данных СписокЗначений поле ввода поддерживает множественные значения.

  4. Родитель заранее содержит OWN-1. Нажмите именно кнопку ВЫБОР / F4 в расширенном поле, не кнопку Открытие редактора списка. НачалоВыбора оставляет СтандартнаяОбработка=Истина; платформе известны тип значения и точная форма выбора.

  5. Стандартный ключевой параметр ВыборДобавлением создаёт механизм открытия формы. Не объявляйте одноимённый произвольный реквизит и не открывайте общую форму вручную с подставленным Истина ради демонстрации.

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

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

  1. Подготовьте два собственных элемента и обе формы.

  2. Откройте штатный выбор из расширенного поля с уже выбранной OWN-1.

  3. В дочерней форме выберите OWN-2 и вызовите собственную команду.

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

  1. ОповеститьОВыборе вызван без второго аргумента: используется стандартный параметр формы ВыборДобавлением. При Истина выбранная OWN-2 добавляется в список, а не заменяет OWN-1.

  2. Способ зависит от того, как начат выбор. Для единичного поля / режима без расширенного редактирования параметр Ложь; при кнопке Открытие действуют отдельные правила. Истина не присваивается повсюду без учёта контекста.

  3. НачалоВыбора не вызывает серверные методы формы и не меняет серверозависимые свойства. Все настройки выполняются при создании родителя. BSL, формы и запись справочника при сборке HTML не выполнялись.

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

Показаны настоящий источник стандартного параметра и его видимый эффект на список из двух собственных значений.

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

  1. Не отменяйте стандартную обработку родительского ОбработкаВыбора, если ожидаете автоматическое добавление в связанный список.

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

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

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

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

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