Имя: Пароль:
1C
1С v8
УФ: Ограничить список типов реквизита
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
Назначать надо перед выбором, а не при изменении. Какой толк там ставить - если уже произведено изменение реквизита
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс