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