Имя: Пароль:
1C
1С v8
Колонка на форме списка
0 Gill
 
27.06.12
14:05
Всем привет! Конфа УПП 1.2 (8.1) Возникла необходимость выводить колонку на форме списка справочника "Основные средства" материально ответственное лицо.Вначале обрадовался,вроде выводит,но когда нажимаешь кнопку обновить на панели или просто крутишь скрол мыши,то "МОЛ"ы меняются по какой-то непонятной для меня логике.Что я делаю не так.

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
   // Вставить содержимое обработчика.
     ОформлениеСтрокиПоОС = Новый Соответствие;
     ОтображаемыеДанные = Новый Массив;

     Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
           ОС= ОформлениеСтроки.ДанныеСтроки.Ссылка;
           ОтображаемыеДанные.Добавить(ОС);
           ОформлениеСтрокиПоОС.Вставить(ОС, ОформлениеСтроки);
     КонецЦикла;
   
       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ
                      |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.МОЛ КАК Работник,
                      |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
                      |ИЗ
                      |    РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&Дата, ) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних
                      |ГДЕ
                      |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство = &ТекущееОС
                      |АВТОУПОРЯДОЧИВАНИЕ";
       
       Запрос.УстановитьПараметр("Дата",ТекущаяДата() );
       Запрос.УстановитьПараметр("ТекущееОС",ОС);
       
       Результат = Запрос.Выполнить();
       Выборка = Результат.Выбрать();
               
       Пока Выборка.Следующий() Цикл    
           
           ОформлениеСтрокиПоОС.Получить(Выборка.ОсновноеСредство).Ячейки.Работник.УстановитьТекст(Выборка.Работник);
   
       КонецЦикла;

КонецПроцедуры
1 vicof
 
27.06.12
14:07
Надо внимательно читать СП
2 Gill
 
27.06.12
14:08
(1) приму к сведению, а применительно к конкретному коду?
3 vicof
 
27.06.12
14:14
Я бы сделал по-другому.
Сначала бы получил список всех ОС и МОЛов, к ним привязанных, а потом при выводе строки находил ОС в таблице и делал оформление.
4 vicof
 
27.06.12
14:18
(0) Здесь сначала выбираются все средства, которые поместились на экране, потом идет запрос по одному средству. И так каждый раз при скроллинге.
5 Gill
 
27.06.12
14:20
(3) т.е. мне нужно использовать событие ПриВыводеСтроки()?...если да,то в коде что-то нужно менять?
6 Gill
 
27.06.12
14:21
в качестве значение параметра запроса "ТекущееОС" что нужно передавать?
7 vicof
 
27.06.12
14:26
(5) Нужно. Убрать условие ГДЕ. Выгрузить все в таблицу. При выводе строки НайтиСтроки с отбором по ДанныеСтроки.Ссылка.
(6) или
|ГДЕ
                      |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство = &ТекущееОС

поменять на
8 vicof
 
27.06.12
14:26
|ГДЕ
                      |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство В (&ТекущееОС)
9 vicof
 
27.06.12
14:26
Запрос.УстановитьПараметр("ТекущееОС",ОтображаемыеДанные);
10 Gill
 
27.06.12
14:52
спасибо