Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 09:26

Отбор в управляемых формах

Автор teodormommzen, 22 сен 2017, 22:55

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

teodormommzen

Доброго времени суток.
Помогите помогите пожалуйста реализовать то же самое (код ниже) в управляемых формах
Суть такова:
есть документ для расчета себестоимости автомобиля
с полями:   МодельШасси
            ПроизводительНадстройки
            ТипНадстройки

В справочнике Надстройки есть табличная часть ТЧПрименяемость, где содержатся значения из справочника МоделиШасси
Необходимо чтоб после выбора МоделиШасси, ПроизводителяНадстройки и ТипаНадстройке в форме выбора Надстройки устанавливался отбор по этим значениям.



Процедура НадстройкаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.Надстройки.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.РежимВыбора = Истина;
//Создвем и заполняем список значений для формы выбора
СЗ=НОвый СписокЗначений;
//отбираем из всех значений справочника Надстройки удовлетворяющие условиям отбора
Запрос=новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             | НадстройкиТЧПрименяемость.Ссылка
             |ИЗ
             | Справочник.Надстройки.ТЧПрименяемость КАК НадстройкиТЧПрименяемость
             |ГДЕ
             | НадстройкиТЧПрименяемость.МодельШасси = &МодельШасси
             | И НадстройкиТЧПрименяемость.Ссылка.ПроизводительНадстройки = &ПроизводительНадстройки
             | И НадстройкиТЧПрименяемость.Ссылка.ТипНадстройки = &ТипНадстройки";

Запрос.УстановитьПараметр("МодельШасси", ЭтотОбъект.МодельШасси);
Запрос.УстановитьПараметр("ТипНадстройки", ЭтотОбъект.ТипНадстройки);
Запрос.УстановитьПараметр("ПроизводительНадстройки", ЭтотОбъект.ПроизводительНадстройки);




Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СЗ.Добавить(выборка.ссылка);
КонецЦикла;
//Передаем в форму выбора список полученых значений
ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    ФормаВыбора.Отбор.Ссылка.Значение = сз;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    //открываем форму со списком
    ФормаВыбора.Открыть();

КонецПроцедуры


Oldman06

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

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьДанныеОтбораНаСервере(МодельШасси, ТипНадстройки, ПроизводительНадстройки)
    СЗ=НОвый СписокЗначений;
    //отбираем из всех значений справочника Надстройки удовлетворяющие условиям отбора
    Запрос=новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    НадстройкиТЧПрименяемость.Ссылка
                 |ИЗ
                 |    Справочник.Надстройки.ТЧПрименяемость КАК НадстройкиТЧПрименяемость
                 |ГДЕ
                 |    НадстройкиТЧПрименяемость.МодельШасси = &МодельШасси
                 |    И НадстройкиТЧПрименяемость.Ссылка.ПроизводительНадстройки = &ПроизводительНадстройки
                 |    И НадстройкиТЧПрименяемость.Ссылка.ТипНадстройки = &ТипНадстройки";
   
    Запрос.УстановитьПараметр("МодельШасси", МодельШасси);
    Запрос.УстановитьПараметр("ТипНадстройки", ТипНадстройки);
    Запрос.УстановитьПараметр("ПроизводительНадстройки", ПроизводительНадстройки);
   
    СЗ.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));
   
    Возврат СЗ;

КонецФункции

teodormommzen

Спасибо, все отлично работает.

Теги:

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

Рейтинг@Mail.ru

Поиск