Имя: Пароль:
1C
1С v8
v8.2 Список значений в поле таблицы значений
0 BOFFKA
 
15.08.11
15:04
Есть реквизит формы типа (таблица значений), есть колонка этого реквизита, типа "Список значений", нужно присвоить тип списку значений "СправочникСсылка.Номенклатура". Кто-то знает как это сделать?
Как задать колонке реквизита (таблицы значений) тип списка значений?
1 BOFFKA
 
15.08.11
15:06
ПС: Управляемая форма
2 BOFFKA
 
15.08.11
15:14
Ап
3 BOFFKA
 
15.08.11
15:31
Неужели никто не знает?
4 GANR
 
15.08.11
15:37
(3)Мне пришло на ум только одно: ограничить ввод в список значений разных типов посредством интерфейсов (форма выбора и подбора).
5 BOFFKA
 
15.08.11
15:40
(4) а как это делается?
6 GANR
 
15.08.11
15:47
Пишешь специальную форму выбора, события НачалоВыбора и ОбработкаВыбора переписываешь. Ну, примерно вот так:

1.1. В форме выбора справочника:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Список.Параметры.УстановитьЗначениеПараметра("Период", НачалоМесяца(Параметры.Период));
КонецПроцедуры

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

1.2. В форме документа

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

&НаКлиенте
Процедура ОсновныеНачисленияСотрудникОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Если Не ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
       СтандартнаяОбработка = Ложь;
       
       Таблица = Элементы.ОсновныеНачисления;
       Таблица.ТекущиеДанные.Сотрудник = ВыбранноеЗначение.Сотрудник;
       Таблица.ТекущиеДанные.Размер = ВыбранноеЗначение.ТарифнаяСтавка;
   КонецЕсли;
КонецПроцедуры
7 GANR
 
15.08.11
15:49
+(6) У Гилева и Насипова это доходчиво рассказано.
8 BOFFKA
 
15.08.11
16:14
(7) Спасибо!
9 BOFFKA
 
15.08.11
17:29
Если вдруг кому-то пригодится. Обошёл я эти страсти, получилось конечно кривенько, зато действенно и красиво!!! =)
Итак, создаём реквизит таблицы значений с типом "Список значений", далее в событии начало выбора пишу:

&НаКлиенте
Процедура ТаблицаОбщаяНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка = ЛОЖЬ;
   ТекСтр = Элементы.ТаблицаОбщая.ТекущиеДанные;
   ТекСтр.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
   СтандартнаяОбработка = ИСТИНА;
КонецПроцедуры
10 BOFFKA
 
15.08.11
17:30
И всё! При нажатии на кнопочку выбора, открывается формочка с подбором! и Всё вери гуд!!!!
11 BOFFKA
 
15.08.11
17:32
Работает и так:
&НаКлиенте
Процедура ТаблицаОбщаяНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка = ЛОЖЬ;
   ТекСтр = Элементы.ТаблицаОбщая.ТекущиеДанные;
   ТекСтр.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
   СтандартнаяОбработка = ИСТИНА;
КонецПроцедуры

Можно и не мучать станд обработку))
12 BOFFKA
 
15.08.11
17:33
&НаКлиенте
Процедура ТаблицаОбщаяНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   ТекСтр = Элементы.ТаблицаОбщая.ТекущиеДанные;
   ТекСтр.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
КонецПроцедуры
13 GANR
 
15.08.11
17:44
(9) Спасибо, я улучшу свою прогу ))).
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший