Параметры в программно создаваемой кнопке формы.
Как создать кнопку с параметрами? Или передать параметр в обработчик?
Ниже код: создал две кнопки, пользователь должен быть кассу, форма должна закрыться и передать ссылку из запроса, но как в обработчик команды передать эту ссылку нигде не могу найти.
Ниже код: создал две кнопки, пользователь должен быть кассу, форма должна закрыться и передать ссылку из запроса, но как в обработчик команды передать эту ссылку нигде не могу найти.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КассыККМ.Ссылка КАК Ссылка,
| КассыККМ.Наименование КАК Наименование
|ИЗ
| Справочник.КассыККМ КАК КассыККМ
|ГДЕ
| КассыККМ.РабочееМесто = &РабочееМесто
| И НЕ КассыККМ.ПометкаУдаления";
Запрос.УстановитьПараметр("РабочееМесто", ПараметрыСеанса.РабочееМестоКлиента);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Кмд = ЭтаФорма.Команды.Добавить(СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование," ",""));
Кмд.Действие = "НажатиеКнопки";
Кмд.Заголовок = ВыборкаДетальныеЗаписи.Наименование;
//Добавляем новую кнопку
Элемент2 = ЭтаФорма.Элементы.Добавить(СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование," ",""), Тип("КнопкаФормы"), ЭтаФорма);
Элемент2.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
Элемент2.ИмяКоманды = СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование," ","");
КонецЦикла;
&НаКлиенте
Процедура НажатиеКнопки(Элемент,здесь ПАРАМЕТР)
Закрыть( Или здесь должен быть параметр из создаваемой программно кнопки\команды)
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
сч = 1;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДобавляемыеРеквизиты = Новый Массив;
ТипРеквизита = новый ОписаниеТипов("");
РеквизитФормы = Новый РеквизитФормы(
"КассаККМ" + сч, //Имя реквизита формы
ТипРеквизита, //Тип
"", //Путь (Пусто, "Объект", ИмяТЧ)
// например "Объект.Товары"
"Касса ККМ");//Заголовок
ДобавляемыеРеквизиты.Добавить(РеквизитФормы);
//Заставляем форму создать новые реквизиты
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
//Обращение к реквизиту формы из кода
ЭтаФорма.КассаККМ = ВыборкаДетальныеЗаписи.Ссылка;
//Вывод реквизита на форму (при необходимости)
ПолеВвода = Элементы.Добавить("ФормаКассаККМ + сч", Тип("ПолеФормы"), ЭтаФорма);
ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи;
ПолеВвода.ПутьКДанным = "КассаККМ + сч";
ПолеВвода.Гиперссылка = Истина;
сч = сч +1;
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) а хотя бы примерный код можете начиркать? Я не могу подобраться к реквизиту хоть какому нибудь.
Кнопка программно создается и отрабатывает, в заголовок команды передается наименование ккт, НО на клиенте заголовок недоступен, передать его на сервер чтобы запросом получить кассу по наименованию не получается, можно передать имя но у имени нет пробелов в итоге чтобы в запросе получить кассу по наименованию нужно городить запрос с подстрокой.
Вот и ищу хоть какой нибудь способ передать в "НажатиеКнопки" наименование или ссылку на ккт на которую нажимает пользователь.
Кнопка программно создается и отрабатывает, в заголовок команды передается наименование ккт, НО на клиенте заголовок недоступен, передать его на сервер чтобы запросом получить кассу по наименованию не получается, можно передать имя но у имени нет пробелов в итоге чтобы в запросе получить кассу по наименованию нужно городить запрос с подстрокой.
Вот и ищу хоть какой нибудь способ передать в "НажатиеКнопки" наименование или ссылку на ккт на которую нажимает пользователь.
сч = 1;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДобавляемыеРеквизиты = Новый Массив;
ТипРеквизита = новый ОписаниеТипов("");
РеквизитФормы = Новый РеквизитФормы(
"КассаККМ" + сч, //Имя реквизита формы
ТипРеквизита, //Тип
"", //Путь (Пусто, "Объект", ИмяТЧ)
// например "Объект.Товары"
"Касса ККМ");//Заголовок
ДобавляемыеРеквизиты.Добавить(РеквизитФормы);
//Заставляем форму создать новые реквизиты
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
//Обращение к реквизиту формы из кода
ЭтаФорма.КассаККМ = ВыборкаДетальныеЗаписи.Ссылка;
//Вывод реквизита на форму (при необходимости)
ПолеВвода = Элементы.Добавить("ФормаКассаККМ + сч", Тип("ПолеФормы"), ЭтаФорма);
ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи;
ПолеВвода.ПутьКДанным = "КассаККМ + сч";
ПолеВвода.Гиперссылка = Истина;
сч = сч +1;
КонецЦикла;
Показать
(6)
Создаете реквизит формы произвольного типа.
Создаете соответствие - где ключ - имя элемента формы (кнопки), а значение - ссылку на кассу.
Реквизиту формы присваиваете фиксированное соответствие, сформированное из этого соответствия.
Далее при нажатии на кнопку в обработчике команды находите текущий активный элемент - это будет кнопка, которую нажали. Берете имя этого элемента.
Из реквизита формы с фиксированным соответствием получаете ссылку на кассу по имени элемента.
Как-то так.
Создаете реквизит формы произвольного типа.
Создаете соответствие - где ключ - имя элемента формы (кнопки), а значение - ссылку на кассу.
Реквизиту формы присваиваете фиксированное соответствие, сформированное из этого соответствия.
Далее при нажатии на кнопку в обработчике команды находите текущий активный элемент - это будет кнопка, которую нажали. Берете имя этого элемента.
Из реквизита формы с фиксированным соответствием получаете ссылку на кассу по имени элемента.
Как-то так.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот