Консультация Беларусь
Консультация Россия
Блог

Как избавиться от контекстного вызова в ПриАктивизацииСтроки()

Постановка задачи:

При работе с методом ПриАктивизацииСтроки() в модуле формы (на клиенте) может возникнуть потребность использовать контекстный серверный вызов. Например, в форме списка справочника "Номенклатура" при выборе вида номенклатуры мы хотим добавить  на форму отображение фильтров для выбранного вида номенклатуры.


Метод ИзменитьРеквизиты(), который мы будет использовать для добавления новых фильтров на форму, можно использовать только на сервере. При этом в справке к методу ПриАктивизацииСтроки() сказано, что контекстный вызов сервера использовать нельзя:


Как же сделать контекстный вызов из метода ПриАктивизацииСтроки() в случае, когда это необходимо?

Исходные данные:

1. Учебная конфигурация;
2. Платформа 8.3.19.1150.

Решение задачи:



Пояснение:

В обработчике события ПриАктивизацииСтроки() подключаем обработчик ожидания ПодключитьОбработчикОжидания(). В качестве первого параметра "ИмяПроцедуры" передаем имя процедуры, которая будет вызвана. Второй параметр "Интервал" отвечает за то время, через которое будет вызван обработчик ожидания. В данном случае это 0.2 секунды. Третий параметр "Однократно" - признак однократного выполнения обработчика ожидания.

Таким образом из метода ПриАктивизацииСтроки() через метод "ПодключитьОбработчикОжидания" на клиенте вызываем процедуру  "ОтборВидаНоменклатурыПриАктивизацииСтрокиНаКлиенте", из которой в свою очередь делаем серверный контекстный вызов процедуры "ВидыНоменклатурыПриАктивизацииСтрокиНаСервере", в которой добавляем в форму нужные реквизиты.

Вывод:

Таким образом через использование метода ПодключитьОбработчикОжидания() мы можем передать контекст формы на сервер при возникновении события ПриАктивизацииСтроки.

Ссылки:

  1. Скачать код решения задачи
  2. Описание на сайте ИТС
Программирование