Имя: Пароль:
1C
1С v8
УФ Динамический список, спозиционироваться как?
0 1Сергей
 
20.09.12
12:45
Существует реквизит в документе типа СправочникСсылка.ФизЛица
Но Выбор нужно осуществлять не из справочника, а из регистра сведений.


&НаСервере
Процедура ВыбратьАвторизовал(Ключ)
   Если (Ключ <> Неопределено) И (Объект.Авторизовал <> Ключ.АвторизованноеЛицо.Ссылка) Тогда
       Объект.Авторизовал = Ключ.АвторизованноеЛицо.Ссылка;
       ЭтаФорма.Модифицированность = Истина;
   КонецЕсли;
КонецПроцедуры

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

В Форме списка регистра сведений:


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

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

Всё работает, за исключением последней строки. Не удаётся спозиционироваться на записи регистра сведений, у которой Реквизит равен реквизиту документа.
КАк сделать? Подскажите новичку, пожалуйста
1 AaNnDdRrEeYy
 
20.09.12
12:58
попробуй Элементы.Список.ТекущиеДАнные = Запись;
2 1Сергей
 
20.09.12
12:58
(1) ТекущиеДАнные - только чтение
3 1Сергей
 
20.09.12
13:23
Разобрался.


Всё нужно делать до открытия формы.

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


&НаСервере
Процедура ВыбратьАвторизовал(Ключ)
   Если (Ключ <> Неопределено) И (Объект.Авторизовал <> Ключ.АвторизованноеЛицо.Ссылка) Тогда
       Объект.Авторизовал = Ключ.АвторизованноеЛицо.Ссылка;
       ЭтаФорма.Модифицированность = Истина;
   КонецЕсли;
КонецПроцедуры

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

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


А форму списка регистра можно вообще пустую оставить
4 Nexux
 
20.09.12
13:27
а вот как спозиционироваться на группировке дс? :)
5 1Сергей
 
20.09.12
13:44
(4) В справочнике ещё проще, а в регистре сведений какие группы?
6 ChAlex
 
20.09.12
13:50
(5) - группировка - это не группа, а именно группировка динамического списка и группировать можно все что угодно
7 ChAlex
 
20.09.12
13:54
(3) - брр, вооще не понял что и зачем делал...ощущение все в обход - ну да ладно, хозяин барин
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс