Имя: Пароль:
1C
 
Программное создание реквизита в обычных формах
,
0 bebibo
 
26.05.24
23:13
Всем здравствуйте!
Подскажите пожалуйста, как на обычных формах программно создать элемент с типом список значений? Я создал элемент с типом ссылка, то есть могу выбрать 1 склад. А мне нужно несколько складов выбрать, чтобы в дальнейшем использовать их для отбора.
1 VS-1976
 
27.05.24
00:56
Ну так сделай сразу реквизит составного типа с типом склад на сколько я помню
2 lEvGl
 
гуру
27.05.24
01:51
(0) Элемент если уже есть на форме, то формируете сам список программно и назначаете его Элементу.СписокЗначений. у элемента свойство ДоступенСписокЗначениц и еще что то было кажется
3 TormozIT
 
гуру
27.05.24
08:40
(0) Реквизит обычной формы нельзя создать программно. Но можно создать табличное поле без связи с реквизитом и установкой ему  свойства "ТипЗначения" создать данные формы нужного типа. Если же нужно поле ввода, то там просто можно присвоить свойству "Значение" значение нужного типа.
4 lEvGl
 
гуру
27.05.24
10:33
Реквизит обычной формы нельзя создать программно

чего бы это, элемент формы без данных когда добавляется, он и становится реквизитом формы
5 bebibo
 
27.05.24
21:53
(1) Зачем составной тип?
6 bebibo
 
27.05.24
21:53
(2) Сейчас напишу как я сделал
7 bebibo
 
27.05.24
21:54
(3) Как нельзя? можно
8 bebibo
 
27.05.24
22:05
Создание реквизита:

Элемент = ЭтаФорма.ЭлементыФормы.Добавить(Тип("ПолеВыбора"), "СкладСписком", Истина);
        
        Элемент.Лево = 100;
        Элемент.Верх = 154;
        Элемент.Ширина = 80;
        Элемент.Высота = 19;
        Элемент.КнопкаВыбора = Истина;
ЭтаФорма.ЭлементыФормы.СкладСписком.СписокВыбора.ЗагрузитьЗначения(СписокЗначСкладов);

Далее даю действие

ДействиеПриИзмененииСкладаСписком = Новый Действие("ПоказатьПодразделения");
        ЭлементыФормы.СкладСписком.УстановитьДействие("НачалоВыбора", ДействиеПриИзмененииСкладаСписком);

Процедура ПоказатьПодразделения(П = "",П2 = "" )  
    СтандартнаяОбработка = Ложь;
    П = Новый Структура;
    П.Вставить("Ключ", ЭтаФорма);
    ФормаПодбора  = Справочники.ПодразделенияКомпании.ПолучитьФормуВыбора(,П,);
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Истина;
    ФормаПодбора.МножественныйВыбор = Истина;    
       ФормаПодбора.Открыть();
КонецПроцедуры


Проблема в том, что выбранное мной подразделение не сохраняется в реквизите. То есть выбрал я склад (подразделение), а оно не сохранилось в моем реквизите.
Списком сделал ,потому что нужно выбирать несколько подразделений
9 Мимохожий Однако
 
28.05.24
07:53
(8) Какие процедуры сохранения содержания списка прописал? Полагаю, что не прописывал. Форма и значения на ней живут пока форма существует
10 Chameleon1980
 
28.05.24
07:56
добавь Тч и в нее
11 lEvGl
 
гуру
28.05.24
08:55
(8) что это
зачем форма выбора, зачем действие
не понятно что нужно

нужно несколько складов выбрать


как в одном поле можно выбрать несколько складов

чтобы в дальнейшем использовать их для отбора. 


если отчет, если на скд, то просто вывести отбор на форму
если документ или что там, несколько значений только в таблицу можно выбрать ТЗ ТЧ или еще что нибудь коллекционное