Имя: Пароль:
1C
1С v8
СКД как взять результат для дальнейшей обработки.
,
0 Peka50
 
08.07.15
10:10
После получения результата отчета необходимо заполнить документ.
Как программно взять результат для дальнейшей обработки ?
1 Одинесю
 
08.07.15
10:22
Орел!
2 Peka50
 
08.07.15
10:23
А взять то как ?
3 Timon1405
 
08.07.15
10:25
даю наводку: ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений
4 ИС-2
 
naïve
08.07.15
10:27
не понятно какой результат нужен - табличный документ или таблица значений и что потом делать. В любом случаем смотри
http://yandex.ru/search/?text=скд+вывод+в+тз&clid=45369&lr=44
5 bootini
 
08.07.15
10:28
6 Peka50
 
08.07.15
10:39
Понятно. Взять сформированный результат и перебрать значения возможности нет.
7 Лодырь
 
08.07.15
10:40
(6) Есть.
8 Peka50
 
08.07.15
11:20
Ну так подскажи.
9 MUXACb
 
08.07.15
12:28
(8) Если результат отчета линейный(без группировок) и Вы его хотите просто получить и потом сформировать свой документ то (3), если Вы хотите сформировать свой документ после вывода отчета в табличный документ то программным обходом табличного документа
10 Гёдза
 
08.07.15
12:29
можно еще по данным расшифровки пробежать
11 Peka50
 
08.07.15
13:14
(9) Нужен вариант сформировать свой документ после вывода отчета в табличный документ. Вопрос в том как программно получить значения результата ?
12 ИС-2
 
naïve
08.07.15
13:28
(11) результат это табличный документ? Элементыформы.табдок.

Извращение: запрос СКД выполняем в ТЗ, ТЗ пихаем в СКД и выводим таб. док.
13 MUXACb
 
08.07.15
13:33
(11) ОбластьДанных = ЭлементыФормы.ТабДок.ПолучитьОбласть(<типа "R1:C3">);

А дальше по каким-то своим признакам определяешь что именно нужно делать
14 Peka50
 
08.07.15
13:38
(13) Пользователь с помощью отчета выискивает товары, которые необходимо уценить либо наценить. По результатам его работы необходимо сформировать документ переоценки. Хотелось бы результат без группировок выгрузить например в ТЗ, а после заполнить табличную часть документа.
15 alex74
 
08.07.15
13:40
(14) а чем тебе не нравится ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ?
16 MUXACb
 
08.07.15
13:44
(14) В таком случае (15), а если еще результат в табличный документ вывести то при обходе ТЗ рисуешь свой макет
17 Peka50
 
08.07.15
13:52
(13) Не работает. {Форма.ФормаОтчета.Форма(11)}: Ошибка при вызове метода контекста (ПолучитьОбласть)
    ТЗ = ЭлементыФормы.Результат.ПолучитьОбласть("R3:C10");
по причине:
Область не найдена: R3:C10

Подозреваю что при таком подходе нужно будет получать каждую строку из отчета.
(15) ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений работает на этапе компоновки результата для вывод в табличный документ отчета, а у меня отчет уже выведен (сформирован).
18 Timon1405
 
08.07.15
13:59
(17) в ПриКомпоновкеРезультата
Стандартнаяобработка = ложь;
//описываем процессор вывода
...
//выводим в ТЗ
...
//выводим его же в табдок
какой из пунктов непонятен?
19 Peka50
 
08.07.15
14:03
(18) При таком подходе каждая попытка пользователя найти нужный товар будет формировать ТЗ. Пользователь может крутить отчет целый день и не создать ни одного документа переоценки. Поэтому хотелось бы отдельную кнопку для создания и заполнения документа переоценки. А все мне предлагают вмешиваться на этапе формирования отчета а не по желанию пользователя.
20 Peka50
 
08.07.15
14:16
Блин. Ну работает же метод записить()
ЭлементыФормы.Результат.Записать("c:\1cv8\1.xls", ТипФайлаТабличногоДокумента.XLS);
а получить в ТЗ не катит. Что за ...
21 Molinor
 
08.07.15
14:35
Что мешает повесить на кнопку "создать переоценку" ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений?
22 Peka50
 
08.07.15
14:44
(21) Всегда мешают незнание.
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТаблицаЗначений =  Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
    ПроцессорВывода.Вывести(...);

Что нужно поставить в ... ?
23 Molinor
 
08.07.15
14:51
СКД = ЖурналДолжниковЗаСопровождение.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
    СписокКонтрагентовОтчет = Новый ТаблицаЗначений;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(СписокКонтрагентовОтчет);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,Истина);
24 Peka50
 
08.07.15
14:53
(23) Спасибо Molinor. Получилось. Вот код может кому пригодиться:
    Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
    Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    Компоновщик.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки);//Настрой получим из настоящего отчета
    
    Компоновщик.Восстановить();
            
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

    ТаблицаЗначений = Новый ТаблицаЗначений;
        
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
        
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
25 eklmn
 
гуру
08.07.15
15:22
(24) так пишет каждый 10-ый который не может/хочет читать и думать.