Имя: Пароль:
1C
1С v8
Отчет по версиям объектов. Как обработать в запросе данные объектов документов?
0 SeiOkami
 
13.02.13
17:31
Выражусь понятнее. Стоит задача: отчет, который бы показывал историю изменений всех документов реализации за определенный период с использованием механизма версионирования в УПП.

На данный момент я получаю ТаблицуЗначений с ДокументОбъект.РеализацияТоваровУслуг



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

   Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
   Запрос.УстановитьПараметр("ДатаНач", ДатаНач);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   ТЗДокументов = Новый ТаблицаЗначений;
   ТЗДокументов.Колонки.Добавить("ДокументОбъект", Новый ОписаниеТипов("ДокументОбъект.РеализацияТоваровУслуг"));
   
   Пока Выборка.Следующий() Цикл
       
       ДокументОбъект = ПолучитьОбъектИзXML(ПолучитьСтрокуXMLПоДаннымХранилища(Выборка.ВерсияОбъекта));
       стрТЗ = ТЗДокументов.Добавить();
       стрТЗ.ДокументОбъект = ДокументОбъект;
       
   КонецЦикла;




На этом этапе все ок... Но! Я намеревался передать эту ТЗ в запрос и дальше работать с данными, однако понял, что в запрос нельзя передать ДокументОбъект (или можно?). Говорит "Тип не может быть выбран в запросе". Колонку я типизировал, но все равно ошибка. Видимо, с объектами запрос не работает. Подскажите, как теперь мне передать данные документов в запрос для последующей обработки?
1 SeiOkami
 
13.02.13
17:32
Знаю, что это жесткий будет отчет, но такова задача!
2 Fragster
 
гуру
13.02.13
17:40
надо в ТЗ создать колонки-реквизиты и их уже заполнять из истории, запихивать ТЗ в запрос и крутить
3 SeiOkami
 
13.02.13
17:42
Т.е. вручную прописать все колонки? А можно автоматически создать колонки?

+ Как передавать ТЧ с номенклатурой?
4 Maxus43
 
13.02.13
17:54
запрос работает или с данными БД, или с ТЗ типизированой, с объектами нет конечно
5 Maxus43
 
13.02.13
17:55
а судя по задаче самой - кто мешает переделать типовой отчет по версионированию? сранение версий там есть, но по одному доку. Днлай последовательно для каждого
6 SeiOkami
 
13.02.13
18:00
(5), а что на счет (3) ?

Если я создам колонки такие "Контрагент", "Организация", "Дата", "ТЧ_Номенклатура", то смогу работать с такой ТЗ в запросе? Меня смущает ТЧ
7 Maxus43
 
13.02.13
18:01
(6) ТЧ номенклатура - или отдельная ТЗ, или "Контрагент", "Организация", "Номер_строки", "Номенклатура" и т.д., в одной строке всё
8 SeiOkami
 
13.02.13
18:06
(7), спасибо, об этом почемусь не подумал! Попробую...
9 Fragster
 
гуру
13.02.13
18:15
(3) выбрать * из справочник.Номенклатура Где Ложь;
ТаблицаСоСтруктурой = Запрос.Выполнить().Выгрузить();
10 SeiOkami
 
13.02.13
18:16
(9), не понял
11 SeiOkami
 
13.02.13
18:16
(9), это о чем?
12 Fragster
 
гуру
13.02.13
18:19
(11) это ответ на вопрос, который будет после ответа "да" на вопрос "А можно автоматически создать колонки?"
13 SeiOkami
 
13.02.13
18:20
(12), 0_о. Гениально, спасибо =)