Имя: Пароль:
1C
1С v8
Как программно измененный результат СКД вывести пользователю?
,
0 aleksejafonkin
 
15.07.16
15:37
Изменил Результат СКД программно, правильные данные в ТЗ. Как теперь пользователю вывести на экран?

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

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Группа");
    ТЗ.Колонки.Добавить("СтатьяДДС");
    ТЗ.Колонки.Добавить("ТиповыеОперации");
    ТЗ.Колонки.Добавить("Проводки");
    
    ПроцессорВывода.УстановитьОбъект(ТЗ);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    ТЗ_Дубли = Новый ТаблицаЗначений;
    ТЗ_Дубли.Колонки.Добавить("СтатьяДДС");
    
    Для Каждого СтрТЗ Из ТЗ Цикл
        Если ТЗ_Дубли.Найти(СтрТЗ.СтатьяДДС, "СтатьяДДС") = Неопределено Тогда
            СтрТЗ_Дубли = ТЗ_Дубли.Добавить();
            СтрТЗ_Дубли.СтатьяДДС = СтрТЗ.СтатьяДДС;
        Иначе    
            СтрТЗ.СтатьяДДС = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка();
        КонецЕсли;    
    КонецЦикла;
        
КонецПроцедуры
1 Mankubus
 
15.07.16
15:38
(0) поместить в другую СКД
2 aleksejafonkin
 
15.07.16
15:39
(1) Можно по подробнее?
3 Fragster
 
гуру
15.07.16
15:39
заполнить ДокументРезультат
4 aleksejafonkin
 
15.07.16
15:41
(3) В моем случае как это сделать?
5 Горогуля
 
15.07.16
15:44
а поискать дубли без этих изощрений религия не позволяет?
6 aleksejafonkin
 
15.07.16
15:45
(5) Как в самой СКД? Честно не знаю как? Направь меня))
7 Горогуля
 
15.07.16
15:46
(6) запросом
8 aleksejafonkin
 
15.07.16
15:48
(7) где? в этой процедуре?
9 Горогуля
 
15.07.16
15:49
в наборе данных
10 aleksejafonkin
 
15.07.16
15:54
(9) буду думать... Хотя честно да же и не знаю как... У меня там 4 набора, при этом СтатьяДДС начинает дублировать не сразу... надо на свежую голову смотреть
11 Горогуля
 
15.07.16
15:56
ты ж каким-то образом получаешь одну таблицу в результате. и засоединяй её с собой. или сгруппируй
12 aleksejafonkin
 
15.07.16
16:03
(11) я там связи наборов делаю. Спасибо, покопаюсь
13 Горогуля
 
15.07.16
16:05
выбрать что-то там
поместить НаборРаз;
выбрать что-то там
поместить НаборДва;
выбрать всё подряд
поместить Результат
из
НаборРаз левое соединение НаборДва;
выбрать всё
из Результат
сгруппировать по чему-нибудь
имеющие количество(чего-то)>1

как вариант..
14 aleksejafonkin
 
15.07.16
16:07
(13) спасибо