Имя: Пароль:
1C
1С v8
Заполнение результата запроса в отдельный список и его загрузка на форму
0 deadpuma
 
03.08.12
09:51
Есть запрос, результат которого заполняется в табличную часть документа по отдельной записи.
   Запрос = Новый Запрос("ВЫБРАТЬ
                             |    РеализацияТоваровУслуг.Ссылка КАК Реализация,
                             |    РеализацияТоваровУслуг.бтВнешнийНомерДокумента КАК ВнешНомер
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    НЕ РеализацияТоваровУслуг.ПометкаУдаления
                             |    И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
                             |    " + ?(Организация.Пустая(),"","И РеализацияТоваровУслуг.Организация = &Организация") + "
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    РеализацияТоваровУслуг.Дата");
       Запрос.УстановитьПараметр("ДатаКон",ДатаКон);                      
       Запрос.УстановитьПараметр("ДатаНач",ДатаНач);                      
       Запрос.УстановитьПараметр("Организация",Организация);
   иначе
         Запрос = Новый Запрос("ВЫБРАТЬ
                             |    РеализацияТоваровУслуг.Ссылка КАК Реализация,
                             |    РеализацияТоваровУслуг.бтВнешнийНомерДокумента КАК ВнешНомер
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    НЕ РеализацияТоваровУслуг.ПометкаУдаления
                             | И  РеализацияТоваровУслуг.бтВнешнийНомерДокумента В (&Заказы)
                             |    И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
                             |    " + ?(Организация.Пустая(),"","И РеализацияТоваровУслуг.Организация = &Организация") + "
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    РеализацияТоваровУслуг.Дата");
       Запрос.УстановитьПараметр("ДатаКон",ДатаКон);                      
       Запрос.УстановитьПараметр("ДатаНач",ДатаНач);                      
       Запрос.УстановитьПараметр("Организация",Организация);
       Запрос.УстановитьПараметр("Заказы",лмасЗаказы);
   КонецЕсли;
    рез = Запрос.Выполнить().Выбрать();
   
   // СтрДанных = Новый Структура();
   
    Пока рез.Следующий() Цикл
       ЗаполнитьЗначенияСвойств(Список.Добавить(),рез);
   КонецЦикла;

Необходимо сделать заполнение чтобы сначала результат заполнялся в отдельный список, а потом уже загрузить весь список целиком на форму.

так можно будет сделать? если да то подскажите как лучше?
1 Maxus43
 
03.08.12
09:55
ЭтаФорма.ТабПоле1.Значение = Запрос.Выполнить.Выгрузить();
ЭтаФорма.ТабПоле1.СоздатьКолонки();
2 Кир Пластелинин
 
03.08.12
09:56
а для чего в начале грузить отдельно, а потом только выводить? О_о
3 deadpuma
 
03.08.12
10:00
(2) так попросили, какие-то проблемы возникают при загрузке по одному

(1) вы наверное неправильно поняли меня, вот форма
<a target="_blank" href="http://www.radikal.ru"><img src="http://s40.radikal.ru/i089/1208/58/712b6975c4a1.jpg" ></a>
4 Maxus43
 
03.08.12
10:06
конечно не понял. какой тип у ТП в форме у (3)? там столбцов много, а в запросе только 2. что загружать и как хотим?
5 Кир Пластелинин
 
03.08.12
10:08
(3) как объяснили - так и поняли.
6 deadpuma
 
03.08.12
10:20
(4) надо загрузить значения столбцов в отдельный промежуточный список (или еще куда-то) а потом из него уже на форму. Т.е загружать поля Масса, Гос.Номер и т.д у них разные типы строка, число,булево и есть тип ДокументСсылка.РеализацияТоваровУслуг.
У ТП тип Список. У Списка 11 реквизитов.
7 Кир Пластелинин
 
03.08.12
10:28
(6) так для чего грузить в промежуточный объект? какие проблемы возникают?
8 deadpuma
 
03.08.12
10:33
(6) при загрузке документов, курсор мыши не успевает за ними, постоянно перескакивает в середину.
9 Maxus43
 
03.08.12
10:34
(8) чо?
10 Кир Пластелинин
 
03.08.12
10:35
(8) О_О. ах ты ж ептить. сегодня ж пятница) если вопрос в фокусе на определенную сторку, то его можно устанавливать на какой хочешь строке
11 Maxus43
 
03.08.12
10:38
и нафига вобще выводить в процессе загрузки, загрузил ВСЁ - потом вывел, с позиционированием там где надо
12 deadpuma
 
03.08.12
11:08
(11) так я это и пытаюсь выяснить загрузить ВСЕ куда-то, а потом сразу вывести.
13 Maxus43
 
03.08.12
11:10
как сечас сделано покажи, я не понимаю как по кускам вывод сделали, это изначально неправильно имхо
14 deadpuma
 
03.08.12
11:11
Процедура ЗаполнитьНажатие(Элемент)
   
   лмасЗаказы = новый массив;
   
   лмасЗаказы.Очистить();
   
   Для инд = 1 по стрЧислоСтрок(ФильтрЗаказов) ЦИкл
           лстр = стрПолучитьСтроку(ФильтрЗаказов,инд);
           лмасЗаказы.Добавить(СокрП(лстр));
   КонецЦикла;
   
   
   Если лмасЗаказы.Количество()<2 и СокрП(ФильтрЗаказов)="" Тогда
       Запрос = Новый Запрос("ВЫБРАТЬ
                             |    РеализацияТоваровУслуг.Ссылка КАК Реализация,
                             |    РеализацияТоваровУслуг.бтВнешнийНомерДокумента КАК ВнешНомер
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    НЕ РеализацияТоваровУслуг.ПометкаУдаления
                             |    И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
                             |    " + ?(Организация.Пустая(),"","И РеализацияТоваровУслуг.Организация = &Организация") + "
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    РеализацияТоваровУслуг.Дата");
       Запрос.УстановитьПараметр("ДатаКон",ДатаКон);                      
       Запрос.УстановитьПараметр("ДатаНач",ДатаНач);                      
       Запрос.УстановитьПараметр("Организация",Организация);
   иначе
         Запрос = Новый Запрос("ВЫБРАТЬ
                             |    РеализацияТоваровУслуг.Ссылка КАК Реализация,
                             |    РеализацияТоваровУслуг.бтВнешнийНомерДокумента КАК ВнешНомер
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    НЕ РеализацияТоваровУслуг.ПометкаУдаления
                             | И  РеализацияТоваровУслуг.бтВнешнийНомерДокумента В (&Заказы)
                             |    И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
                             |    " + ?(Организация.Пустая(),"","И РеализацияТоваровУслуг.Организация = &Организация") + "
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    РеализацияТоваровУслуг.Дата");
       Запрос.УстановитьПараметр("ДатаКон",ДатаКон);                      
       Запрос.УстановитьПараметр("ДатаНач",ДатаНач);                      
       Запрос.УстановитьПараметр("Организация",Организация);
       Запрос.УстановитьПараметр("Заказы",лмасЗаказы);
   КонецЕсли;
    рез = Запрос.Выполнить().Выбрать();
   
   // СтрДанных = Новый Структура();
   
    //заполнение табличной части в отдельный список и загрузка данного списка в таблицу значений!

   
    Пока рез.Следующий() Цикл
       ЗаполнитьЗначенияСвойств(Список.Добавить(),рез);
   КонецЦикла;    
             
КонецПроцедуры
15 Maxus43
 
03.08.12
11:13
Список - это значение ТП? тип ТаблицаЗначений?
16 Maxus43
 
03.08.12
11:20
если это ТЗ то:
Список = Запрос.Выполнить.Выгрузить();
если это СписокЗначений то
Список1 = Новый СписокЗначений;    
Пока рез.Следующий() Цикл
       ЗаполнитьЗначенияСвойств(Список1.Добавить(),рез);
КонецЦикла;
Список = Список1;
типа того
17 deadpuma
 
03.08.12
11:24
(16) сейчас попробую так сделать. Список это вот http://s019.radikal.ru/i631/1208/67/d870b1902af2.jpg
18 Maxus43
 
03.08.12
11:29
сразу бы сказал.
Список.Загрузить(Запрос.Выполнить.Выгрузить())
19 Maxus43
 
03.08.12
11:29
вопрос про ТИП значения был в (4) ещё, это самаое главно для решения конкретной задачи
20 deadpuma
 
03.08.12
11:42
(19)спасибо.