УФ: Ограничить список типов реквизита
☑
0
tenikov
17.09.12
✎
15:43
Подскажите, плз. Следующий код не работает:
&НаСервере
Функция ПолучитьТипыСубконто(ПараметрыФормы)
ТекстЗапроса =
"ВЫБРАТЬ
| ХозрасчетныйВидыСубконто.ВидСубконто.ТипЗначения КАК ТипЗнч
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный
| ПО ХозрасчетныйВидыСубконто.Ссылка = Хозрасчетный.Ссылка
| И (ХозрасчетныйВидыСубконто.НомерСтроки = 1)
|ГДЕ
| Хозрасчетный.Ссылка = &Счет
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ХозрасчетныйВидыСубконто.ВидСубконто.ТипЗначения
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный
| ПО ХозрасчетныйВидыСубконто.Ссылка = Хозрасчетный.Ссылка
| И (ХозрасчетныйВидыСубконто.НомерСтроки = 2)
|ГДЕ
| Хозрасчетный.Ссылка = &Счет
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ХозрасчетныйВидыСубконто.ВидСубконто.ТипЗначения
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный
| ПО ХозрасчетныйВидыСубконто.Ссылка = Хозрасчетный.Ссылка
| И (ХозрасчетныйВидыСубконто.НомерСтроки = 3)
|ГДЕ
| Хозрасчетный.Ссылка = &Счет";
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Счет", ПараметрыФормы.Счет);
Запрос.Текст = ТекстЗапроса;
МассивТипов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТипЗнч");
Возврат Новый ОписаниеТипов(МассивТипов);
КонецФункции
&НаКлиенте
Процедура УстановитьТипСубконто()
ПараметрыФормы = Новый Структура("Счет", Объект.Счет);
Элементы.ЗначениеСубконто.ОграничениеТипа.ПривестиЗначение(ПолучитьТипыСубконто(ПараметрыФормы));
КонецПроцедуры
&НаКлиенте
Процедура СчетПриИзменении(Элемент)
Элементы.ЗначениеСубконто.ВыбиратьТип = Истина;
УстановитьТипСубконто();
КонецПроцедуры
1
ChAlex
17.09.12
✎
15:58
Элементы.ЗначениеСубконто.ОграничениеТипа=ПолучитьТипыСубконто(ПараметрыФормы) - а уже потом привести значение
2
tenikov
17.09.12
✎
16:09
(1) сделал как:
--
МассивТипов = ПолучитьТипыСубконто(ПараметрыФормы);
Элементы.ЗначениеСубконто.ОграничениеТипа = МассивТипов;
Элементы.ЗначениеСубконто.ОграничениеТипа.ПривестиЗначение(МассивТипов);
--
Вставил процедуру в ЗначениеСубконтоНачалоВыбора, всё равно открывает весь список типов.
3
tenikov
17.09.12
✎
17:17
ап
4
ChAlex
17.09.12
✎
18:14
Назначать надо перед выбором, а не при изменении. Какой толк там ставить - если уже произведено изменение реквизита
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой