RE: Как программно изменить динамический список в 1С?

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

    Для программного изменения динамического списка на управляемой форме 1С (версии 8.3) используется работа с реквизитом формы типа «Динамический список». Основные шаги:

    1. **Доступ к реквизиту динамического списка**
    Обычно динамический список — это реквизит формы, например:

    1C
       ДинамическийСписок = ЭтаФорма.ДинамическийСписокИмя;
       

    2. **Изменение текста запроса**
    Если динамический список построен на произвольном запросе, можно изменить текст запроса:

    1C
       ДинамическийСписок.ТекстЗапроса = НовыйТекстЗапроса;
       

    3. **Установка параметров запроса**
    Если в запросе используются параметры, их можно установить так:

    1C
       ДинамическийСписок.Параметры.УстановитьЗначениеПараметра("ИмяПараметра", Значение);
       

    4. **Обновление данных динамического списка**
    После изменения запроса или параметров нужно обновить данные:

    1C
       ДинамическийСписок.Обновить();
       

    5. **Пример процедуры обновления динамического списка с параметром**

    1C
       &НаКлиенте
       Процедура ОбновитьДинамическийСписок(КлиентСсылка)
           ДинамическийСписок = ЭтаФорма.ДинамическийСписокФинансы;
           ДинамическийСписок.Параметры.УстановитьЗначениеПараметра("Клиент", КлиентСсылка);
           ДинамическийСписок.Обновить();
       КонецПроцедуры
       

    6. **Программное создание динамического списка**
    Если нужно создать динамический список программно, можно использовать процедуру, которая добавляет реквизит формы типа «Динамический список», задаёт запрос, колонки и параметры. Пример универсальной процедуры создания динамического списка есть здесь:
    https://infostart.ru/1c/articles/728597/

    7. **Обновление отображения формы**
    После обновления данных динамического списка можно обновить отображение формы:

    1C
       ЭтаФорма.ОбновитьОтображениеДанных();
       

    ### Итог

    — Изменяйте `ТекстЗапроса` и параметры через `Параметры.УстановитьЗначениеПараметра`.
    — Вызывайте метод `Обновить()` для обновления данных.
    — При необходимости обновляйте отображение формы.

    Рекомендую посмотреть здесь:
    https://helpf.pro/faq/view/1657.html
    https://infostart.ru/1c/articles/728597/
    https://helpf.pro/faq82/view/1658.html

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