Имя: Пароль:
1C
1С v8
Список выбора для каждой строки ТЗ (УФ)
0 rull9ss
 
25.10.12
14:02
Сильно не пинать, только учусь.

В общем ситуация следующая:
есть ТЗ, есть СпособЗаполнения(Тип перечисление), есть ТипСравнения(Тип строка)
Пытаюсь установить для каждой строки для Реквизита2 свой Список выбора, в зависимости от значения Реквизит1

ТекСтрока = Элементы.СчетаУчетаДоп.ТекущиеДанные;
   Если ТекСтрока.СпособЗаполнения = ПредопределенноеЗначение("Перечисление.СпособЗаполненияСчетов.СчетаУчетаПользователей") Тогда
       
Элементы.СчетаУчетаДопТипСравнения.СписокВыбора.Добавить("Все");
       Элементы.СчетаУчетаДопТипСравнения.СписокВыбора.Добавить("Основной");    
   КонецЕсли;

Но понимаю что такой код работать правильно не будет, т.к. таким образом установится список выбора для всей ТЗ
А для ТекСтрока.ТипСравнения установить список выбора не предоставляется возможным.

Подскажите как решить проблему?
1 rull9ss
 
25.10.12
14:12
всем спасибо, разобрался сам.

перенести добавление списка выбора в процедуру СчетаУчетаДопТипСравненияНачалоВыбора() и уже там в зависимости от ТекСтрока.СпособЗаполнения изменять список выбора
2 1Сергей
 
25.10.12
14:13
Всегда рады помочь. Обращайся
3 rull9ss
 
25.10.12
14:16
(2)
как же я люблю мисту))

зайдет какая нибудь камвхора с нулевый рейтом, выложит полотенце с припиской "ОЙ! У мну тут что-то не работает, помогите мальчики" - так сразу отряд робингудов примчится и растянут топик на 100+ страниц, страстно желая угодить даме наилучшим ответом.
4 vmv
 
25.10.12
14:21
я уже писало на УФ нужно забыть про списки выбора - это больше дань совместимости с 8.1, а использовать вот так решения подобных (0) задач

&НаКлиенте
Процедура РфПериодичностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
       Если ЯБухой Тогда
       ДанныеВыбора = СзПошлиВсе();
       ИначеЕсли ЯНеБухой Тогда
       ДанныеВыбора = СзАдавайте();
       Иначе
   ДанныеВыбора = ПериодичностьПолучитьДанныеВыбора();
     КонецЕсли;
КонецПроцедуры


&НаКлиенте
Функция ПериодичностьПолучитьДанныеВыбора()
   
   ДанныеВыбора = Новый СписокЗначений;
   
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Месяц"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Квартал"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Полугодие"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Год"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"), "Период");
   
   Возврат ДанныеВыбора;
   
КонецФункции


&НаКлиенте
Функция СзПошлиВсе()
   
   ДанныеВыбора = Новый СписокЗначений;
   
   ДанныеВыбора.Добавить(Неопределено, "Да пошти вы");
   
   Возврат ДанныеВыбора;
   
КонецФункции

&НаКлиенте
Функция СзАдавайте()
   
   ДанныеВыбора = Новый СписокЗначений;
   
   ДанныеВыбора.Добавить(Неопределено, "А давайте");
   
   Возврат ДанныеВыбора;
   
КонецФункции
5 vmv
 
25.10.12
14:23
(1) херня это, ибо не будет отрабатывать автоподбор при наборе текта в поле вода, т.е. при включенном "Редактирование текста" могут выбрать данные вне списка
6 rull9ss
 
25.10.12
14:26
(4)

благодарность! сейчас попробую
7 rull9ss
 
25.10.12
14:27
(4)
только не совсем понятно для чего в
ДанныеВыбора.Добавить(Неопределено, "А давайте");
"неопределено"?
8 vmv
 
25.10.12
14:30
(7) фактически юзер сможет выбрать/подобрать/увидеть, но системе будет пофиг на этот выбор как-то так.

Списки пошливсе и адавайте чисто для закрепления материала, ибо если писать сухо и тупо ты не станешь Джоном О`Конером, хто будет спасать мир?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший