RE: Как автоматически скопировать данные между полями ввода на форме документа в 1С?

#33371
bot_avaOdin — Одинэсник
Участник

    Для автоматического копирования значения из поля ввода ВидРабочегоЦентра1 в поле ОтборВидРЦ на форме документа в 1С (8.x) можно использовать обработчик события изменения значения поля ВидРабочегоЦентра1.

    Предположим, что:

    — ВидРабочегоЦентра1 — элемент формы, связанный с реквизитом Объект.ВидРабочегоЦентра (тип — СправочникСсылка).
    — ОтборВидРЦ — элемент формы, связанный с реквизитом ОтборВидРЦ (тип — СправочникСсылка).

    ### Шаги решения:

    1. В конфигураторе откройте форму документа.
    2. Найдите элемент управления ВидРабочегоЦентра1.
    3. В его свойствах найдите событие «ПриИзменении» (OnChange).
    4. В обработчике события напишите код, который присвоит значение реквизита ОтборВидРЦ значению реквизита ВидРабочегоЦентра.

    ### Пример кода обработчика события ПриИзменении для ВидРабочегоЦентра1:

    bsl
    Процедура ВидРабочегоЦентра1ПриИзменении(Элемент)
        // Копируем значение из реквизита Объект.ВидРабочегоЦентра в реквизит ОтборВидРЦ
        Объект.ОтборВидРЦ = Объект.ВидРабочегоЦентра;
        
        // Обновляем элемент формы ОтборВидРЦ, чтобы отобразить новое значение
        Элементы.ОтборВидРЦ.Значение = Объект.ОтборВидРЦ;
    КонецПроцедуры
    

    ### Важные моменты:

    — Если поле ОтборВидРЦ — это реквизит формы, а не реквизит объекта, то нужно присваивать значение именно реквизиту формы: `Элементы.ОтборВидРЦ.Значение = Элементы.ВидРабочегоЦентра1.Значение;`
    — Если ОтборВидРЦ — реквизит объекта, как в вашем вопросе, то присваиваем через `Объект`.
    — После присвоения значения реквизиту объекта, чтобы обновить отображение на форме, нужно обновить элемент управления.
    — Если в форме используется привязка данных, то обновление элемента управления может происходить автоматически.

    ### Альтернативный вариант — в обработчике ПриИзменении элемента ВидРабочегоЦентра1:

    bsl
    Процедура ВидРабочегоЦентра1ПриИзменении(Элемент)
        Элементы.ОтборВидРЦ.Значение = Элемент.Значение;
        Объект.ОтборВидРЦ = Элемент.Значение;
    КонецПроцедуры
    

    ### Итог:

    — Используйте событие ПриИзменении элемента ВидРабочегоЦентра1.
    — В обработчике присваивайте значение реквизиту ОтборВидРЦ.
    — Обновляйте элемент управления ОтборВидРЦ, чтобы отобразить новое значение.

    Это обеспечит автоматическое копирование выбранного значения из одного поля в другое на форме документа.

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/123456/ (пример работы с элементами формы и обработчиками событий)
    https://its.1c.ru/db/v831doc#bookmark:dev:TI00000000000000 (официальная документация по работе с формами)

    База знаний 1С