Расширение поля формы для поля ввода.ОбработкаФормированияКоманд

События · CommandGenerateProcessing

Событие при нажатии правой кнопки мыши в поле ввода.

Синтаксис

ОбработкаФормированияКоманд(<ПараметрыКоманд>, <Команды>)
Полное описание, параметры и ограничения

Расширение поля формы для поля ввода.ОбработкаФормированияКоманд (Form field extension for a text box.CommandGenerateProcessing)

Расширение поля формы для поля ввода (Form field extension for a text box)

ОбработкаФормированияКоманд (CommandGenerateProcessing)

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

Синтаксис:
ОбработкаФормированияКоманд(<ПараметрыКоманд>, <Команды>)
Параметры:

<ПараметрыКоманд>
Тип: ПараметрыФормированияКомандПоляВвода.
Параметры формирования команд поля ввода.

<Команды>
Тип: Массив.
Список команд, которые можно добавить. Значения элементов массива имеют тип ОписаниеКомандыПоляВвода. Значения другого типа игнорируются.
При вызове список заполнен командами контекстного меню по умолчанию. Команды, добавленные в контекстное меню через свойство поля формы КонтекстноеМеню, не будут добавлены в данный массив.
Описание:

Событие при нажатии правой кнопки мыши в поле ввода.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Добавить свою команду в меню множественного ввода

Поле связано с подготовленным своим списком ссылок. Параметры события передаёт платформа после настоящего действия пользователя, а не неизвестный вызывающий код.

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

Модуль своей управляемой формы: клиентские события поля Книги и экспортный callback, серверная подготовка отдельно.

Подготовка

  1. В своей учебной конфигурации создайте справочник УчебныеКарточки: код Строка 10, наименование 100. Вручную создайте УЧЕБ-КНИГ / Учебная книга и УЧЕБ-ТЕТР / Учебная тетрадь; нужны только свои данные.

  2. У своей обработки создайте управляемую форму, реквизит Книги типа СписокЗначений и поле ввода Книги, путь данных Книги. Это множественные значения, не строка с названиями через запятую.

  3. Добавьте Статус Строка 200. Подготовительный блок назначьте ПриСозданииНаСервере. Основной клиентский обработчик назначьте указанному событию поля Книги через редактор.

  4. Тонкий / толстый / веб-клиент. Обработчики поля получают начальный параметр Элемент; не добавляйте его событиям самой формы.

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

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

  1. Подготовьте две свои карточки и заполните СписокЗначений в этой форме.

  2. Назначьте обработчик событию поля, сохранив сигнатуру редактора.

  3. Выполните указанное действие над своей книгой и сравните результат со стандартным поведением.

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

  1. Вызовите меню и нажмите Сколько своих книг: показано фактическое количество элементов своего списка.

  2. Callback получает только ДополнительныеПараметры, не Команда и не Элемент. Существующие команды не удаляются.

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

Событие и команда связаны с собственным множественным полем и воспроизводимым действием.

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

  1. Идентификатор элемента не совпадает с его индексом; после удаления / вставки это особенно важно.

  2. Создание команды меню не означает её выполнение. Чужие справочники и данные для этого опыта не нужны.

  3. BSL здесь не исполнялся; результат в клиенте 1С требует ручной проверки.

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

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

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

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

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