Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 окт 2021, 14:07

Как заполнить реквизит программно

Автор PahaZybov, 15 авг 2021, 19:33

0 Пользователей и 1 гость просматривают эту тему.

PahaZybov

Всем привет, подскажите как правильно можно заполнить программно созданный реквизит с типом (Список значений) он у меня будет привязан к элементу с полем. В режиме 1с предприятия он  ссылается на Справочник для выбора нескольких значений. Но мне нужно заранее заполнить часть данных из массива. Как это можно сделать?



Я пробую хотя бы приравнять его к одному значению приравняв к Администратор, которое можно выбрать из списка в режиме 1с предприятие, но у меня так не выходит это сделать, что при открытии в поле ввода у меня было уже прописано Администратор. Возможно ли такое сделать?

Вот как я пытаюсь добавить значение к реквизиту МойРеквизит где я в цикле нахожу все возможные реквизиты с этим названием а у меня их несколько.

Для Каждого РеквизитФормы Из ЭтаФорма.ПолучитьРеквизиты() Цикл
            ЛевыйРеквит = Лев(ЭтаФорма.ПолучитьРеквизиты()[Счч].Имя,11);
            Если "МойРеквизит" = ЛевыйРеквит Тогда
                ЭтаФорма[ЭтаФорма.ПолучитьРеквизиты()[Счч].Имя] = "Администратор";
            КонецЕсли;
            Счч = Счч + 1;
        КонецЦикла;


antoneus

Для Каждого РеквизитФормы Из ЭтаФорма.ПолучитьРеквизиты() Цикл
Если СтрНачинаетсяС(РеквизитФормы.Имя, "МойРеквизит") Тогда
ЭтаФорма[РеквизитФормы.Имя].ЗагрузитьЗначения(МойМассив);
КонецЕсли;
КонецЦикла;

PahaZybov

@antoneus, Ух ты более адекватный и здоровый код по сравнению с моим костылем , спасибо за помощь. Я затестил, но почему то он занес как <Пустое значение>. Я для эксперемента добавил одно значение в массив, которое есть из списка выбора. Не знаешь, возможно ли это из-за того что у меня у этого поля элемент имеет ОписаниеТипов("СправочникСсылка.Партнеры). Я в массив добавил одного партера который существует ИБТ, но присвоилось Пустое Значение видимо он ругнулся и не позволил. Либо возможно можно как-то  сделать чтобы он понял что такое значение у меня есть в СправочникСсылка.Партнеры, случаем не знаешь?



МойМассив = Новый Массив;
МойМассив.Добавить("ИБТ");
Для Каждого РеквизитФормы Из ЭтаФорма.ПолучитьРеквизиты() Цикл
    Если СтрНачинаетсяС(РеквизитФормы.Имя, "МойРеквизит") Тогда
        ЭтаФорма[РеквизитФормы.Имя].ЗагрузитьЗначения(МойМассив);
    КонецЕсли;
КонецЦикла;


antoneus

Потому что не надо добавлять в список строку, если там ссылки должны быть.

МойМассив.Добавить(Справочники.Партнеры.НайтиПоНаименованию("ИБТ"));

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск