1С 8.3 Меняем форму выбора, выводим колонку из регистра, и передаем в форму параметры.

Сегодня попробую изменить стиль повествования на другой, надеюсь такой формат будет более удобен Вам, и вы сможете найти решение быстрее.

Идем по стопам статьи в который мы изучали динамические списки, тут пойдет речь о форме выбора, рассмотрим задачу: «Необходимо добавить в форму выбора колонку с данными из регистра сведений, в форме выбора должен быть отбор по реквизиту основной формы.

Что нужно сделать для решения задачи

  1.  В необходимом справочнике создаем форму выбора, по материалам из предыдущей статьи добавляет колонку.
  2.  В свойствах списка указываем ему Режим выбора.
  3.  У события списка нас интересует событие — Выбор, данное событие происходит когда пользователь выбирает элемент справочника. В обработчике события добавляем: 

     ОповеститьОВыборе(Элементы.Список.ТекущиеДанные.Ссылка

  4. Интересует еще событие  ПриСозданииНаСервере, в нем необходимо делать проверку на переданные параметры с основной формы документа.
  5. Уходим в документ где требуется вызвать данный список выбора, нас интересует абстрактное поле с выбором справочника, именно то в котором будем вызывать форму выбора, создаем событие НачалоВыбора, и вызываем форму выбора справочника:
  6. //Отключаем стандартную обработку
    СтандартнаяОбработка = Ложь;
    //Тут создаем структуру в которой будем передавать форме выбора
    ПараметрыФормы = Новый Структура(«Дата», Объект.Дата);
    //Получаем форму
    Форма = ПолучитьФорму(«Справочник.Товары.ФормаВыбора», ПараметрыФормы,ЭтаФорма);
    Форма.Открыть();

  7. Теперь на самой форме ищем Событие — ОбработкаВыбора, создаем, и пишем:
  8. Элементы.Товары.ТекущиеДанные.Товар = ВыбранноеЗначение;

    В принципе это все что нужно знать. Для облегчения понимания, объясняю что за чем идет: Пользователь вызывает форму выбора, при вызове передаются параметры формы, отключается стандартная обработка, открывается форма, выбирается значение, оповещаем о выборе на форме, и ОбработкаВыбора записывает выбранное значение в поле.

Какие проблемы могут возникнуть, и о которых пишут на форуме:

  1. Форма выбора открывается дважды — происходит если в НачалоВыбора не отключить стандартную обработку
  2. После выбора элемента — значение не передается в основную форму. Для решения данной проблемы мы как раз в Событии Выбор — оповещаем о выборе, и принимаем это оповещение в событии ОбработкаВыбора.
  3. Открывается форма элемента справочника при выборе — для этого нужно включить режим выбора, см. п. 2

Оставьте комментарий