Как открыть форму с заполнением

 

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

Открытие формы с заполнением (передача в параметре открываемой формы и реализация метода «ОбработкаЗаполнения()») выполняется одинаково в управляемом и обычном приложении (проверял на платформе 8.3.5.1146 — управляемое приложение и на платформе 8.2.18.102 — обычное приложение).

В том месте кода, откуда нужно сделать открытие и заполнение формы нужно добавить приблизительно такой код:

В структуру «ПараметрыЗаполнения» записываются все нужные для заполнения данные, затем эта структура вставляется в другую структуру под названием «ПараметрыФормы».

Причем ключ, под которым структура «ПараметрыЗаполнения» вставляется в структуру «ПараметрыФормы», должен называться именно «ЗначенияЗаполнения» иначе, ничего не работать не будет.

Далее нужно реализовать событие модуля формы заполняемого объекта — «ОбработкаЗаполнения()». Я для этого использую следующую конструкцию, которая, на мой взгляд, изящно выглядит и позволяет избежать всех возможных ошибок (поправьте, если я ошибаюсь):

Напомню, что метод структуры «Свойство()» проверяет наличие в структуре элементы с именем, указанным в первом параметре и записывает найденное значение во второй параметр — в данном случае это реквизит заполняемого объекта (если элемент с указанным именем в структуре не найден, то во второй параметр записывается «Неопределено»).

На этом все, надеюсь данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 24, средняя оценка: 4,25 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 8
  1. Михаил

    Спасибо! Пол дня мучился, а вот про «ЗначенияЗаполнения» ни где не видел, а в этом и была ошибка.

  2. Вадим

    я не робот

  3. Геннадий

    я тоже

  4. Алексей

    СПАСИБО за «ЗначенияЗаполнения» !!!

  5. Александр

    Более изящно выглядит так:
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип(«Структура») Тогда
    ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеЗаполнения);
    КонецЕсли;
    КонецПроцедуры

    Процедура вставляется в модуль объекта!

  6. Дмитрий

    во-первых, процедура ОбработкаЗаполнения не нужна, все и так будет заполнено. По крайней мере в 8.3.13
    во-вторых, а будут заполнены реквизиты формы или объекта?

    1. Владимир

      Процедура ОбработкаЗаполнения располагается в модуле объекта, соответственно произойдет заполнение реквизитов объекта, а из него и реквизиты формы.

      Вот только не пойму, почему не все поля заполняются из данных заполнения, если не делать их обработку в процедуре ОбработкаЗаполнения. Стандартные поля заполняются (Родитель), а свои — нет.

      1. Антон

        «Следует заметить, что для стандартных реквизитов Родитель, Владелец и для ведущих измерений регистров сведений платформа автоматически в конфигураторе устанавливает свойство Заполнять из данных заполнения. Для остальных стандартных реквизитов, как в нашем случае для даты, нужно это свойство устанавливать самостоятельно, если планируется использовать возможность их автоматического заполнения.» — из ИТС

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: