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

заполнение массива

Автор sali, Вчера в 07:37

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

sali

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

sali

мои эксперименты
ДобавляемыеРеквизиты = Новый Массив; 
Для строка = 1 По НоменклатураНаВыбор.Количество() Цикл

Если строка = 1 Тогда 
НовыйЭлемент = Новый РеквизитФормы("Товар", Новый ОписаниеТипов("Строка"));
ИначеЕсли строка > 1 Тогда
Наименование = "Товар" + Строка;
НовыйЭлемент =  Новый РеквизитФормы(Наименование, Новый ОписаниеТипов("Строка"));
КонецЕсли;   

ДобавляемыеРеквизиты.Добавить(НовыйЭлемент);
КонецЦикла;   

ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);                   

Для Каждого Товар Из НоменклатураНаВыбор.Количество() Цикл
       // Для ЭлементМассива=1 по ДобавляемыеРеквизиты.Количество() Цикл

НовыйЭлементФормы = Элементы.Добавить(ЭлементМассива.Имя, Тип("ДекорацияФормы")); 
НовыйЭлементФормы.Вид = ВидДекорацииФормы.Надпись;   
НовыйЭлементФормы.Заголовок = Товар.Наименование;
НовыйЭлементФормы.Ширина = 21;
НовыйЭлементФормы.Высота = 10;   
НовыйЭлементФормы.ЦветФона = Новый Цвет(238, 238, 238);
НовыйЭлементФормы.Шрифт = Новый Шрифт(, "Times New Roman", 16);   

НовыйЭлементФормы.ВертикальноеПоложение          = ВертикальноеПоложениеЭлемента.Центр;
НовыйЭлементФормы.ГоризонтальноеПоложение        = ГоризонтальноеПоложениеЭлемента.Центр;
НовыйЭлементФормы.ВертикальноеПоложениеВГруппе   = ВертикальноеПоложениеЭлемента.Центр;
НовыйЭлементФормы.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Центр;

НовыйЭлементФормы = Новый Рамка(ТИпРамкиЭлементаУправления.Одинарная, 3);   

КонецЦикла;
КонецЦикла;


sali

решил этот вопрос, помогите с другим
есть форма редактирования цены, суммы, скидки и прочего всего. мне надо чтобы по нажатию на какое-либо поле вводились данные с экранной клавиатуры. то бишь нажимаем на поле рядом с ценой , она становится активным, нажимаем что-то на клавиатуре и ввод идет в цену
для этого добавляю в процедуру При Создании На Сервере строку Элементы.Цена.УстановитьДействие("Нажатие","ЦенаНажатие");, выходит ошибка
ЦитироватьОшибка при вызове метода контекста (УстановитьДействие). по причине: Недопустимое значение параметра (параметр номер '1')
что делать?

antoneus

А зачем программно?

sali

antoneus, а потому что у поля ввода Цена (и всех остальных) нет такой процедуры и я не понимаю в какой из предложенных процедур можно засунуть набранное число

antoneus

Ну вот поэтому и недопустимое значение параметра. Нельзя впихнуть невпихуемое. Что делать? Взять элемент, у которого это "Нажатие" есть.

sali

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

antoneus

Взять два элемента, играться видимостью. Да, костыль, а что делать.

sali

Цитата: antoneus от Вчера в 11:00играться видимостью
не понял. каким образом? сделать наложение реквизита на реквизит?

antoneus

Как все делают. Расположить рядом, один - видимый, другой нет. Тыкнули на видимый - прячем его, показываем невидимый.

Теги:

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

Рейтинг@Mail.ru

Поиск