Имя: Пароль:
1C
1С v8
Вывод отчет задваивает значения.
0 ghostrid3r
 
22.03.12
13:14
Помогите уважаемые форумчане не могу понять почему, но вот в чем беда вывод отчета задваивает данные, хотя в консоли запросов данные не двоятся.

вот текст процедурки

   Результат.Очистить();
   
   ПредставлениеПериода = ПредставлениеПериода(Период.ДатаНачала, Период.ДатаОкончания, "ФП = Истина");
   
   Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ РАЗРЕШЕННЫЕ
                 |    МТРВЭксплуатацииОперативныйУчет.Организация КАК Организация,
                 |    МТРВЭксплуатацииОперативныйУчет.Склад КАК Склад,
                 |    МТРВЭксплуатацииОперативныйУчет.СтатьяДвиженияМТР КАК СтатьяДвиженияМТР,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура КАК Номенклатура,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.Артикул КАК Артикул,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
                 |    СУММА(МТРВЭксплуатацииОперативныйУчет.Количество) КАК Количество,
                 |    МТРВЭксплуатацииОперативныйУчет.ПодразделениеОрганизации КАК Подразделение
                 |ИЗ
                 |    РегистрНакопления.МТРВЭксплуатацииОперативныйУчет КАК МТРВЭксплуатацииОперативныйУчет
                 |ГДЕ
                 |    МТРВЭксплуатацииОперативныйУчет.Период <= &КонецПериода
                 |    И МТРВЭксплуатацииОперативныйУчет.Период >= &НачалоПериода
                 |    И МТРВЭксплуатацииОперативныйУчет.Склад = &Склад
                 |    И МТРВЭксплуатацииОперативныйУчет.Организация = &Организация
                 |    И (&СтатьяДвиженияМТР = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженийМТРОперативныйУчет.ПустаяСсылка)
                 |            ИЛИ МТРВЭксплуатацииОперативныйУчет.СтатьяДвиженияМТР = &СтатьяДвиженияМТР)
                 |    И (&Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                 |            ИЛИ МТРВЭксплуатацииОперативныйУчет.ПодразделениеОрганизации = &Подразделение)
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    МТРВЭксплуатацииОперативныйУчет.СтатьяДвиженияМТР,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура,
                 |    МТРВЭксплуатацииОперативныйУчет.Склад,
                 |    МТРВЭксплуатацииОперативныйУчет.Организация,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.Артикул,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.ЕдиницаХраненияОстатков,
                 |    МТРВЭксплуатацииОперативныйУчет.ПодразделениеОрганизации
                 |
                 |ИМЕЮЩИЕ
                 |    СУММА(МТРВЭксплуатацииОперативныйУчет.Количество) <> 0
                 |
                 |ОБЪЕДИНИТЬ ВСЕ
                 |
                 |ВЫБРАТЬ
                 |    МТРВЭксплуатацииОперативныйУчет.Организация,
                 |    МТРВЭксплуатацииОперативныйУчет.Склад,
                 |    МТРВЭксплуатацииОперативныйУчет.СтатьяДвиженияМТР,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.Артикул,
                 |    МТРВЭксплуатацииОперативныйУчет.Номенклатура.ЕдиницаХраненияОстатков,
                 |    МТРВЭксплуатацииОперативныйУчет.Количество,
                 |    МТРВЭксплуатацииОперативныйУчет.ПодразделениеОрганизации
                 |ИЗ
                 |    РегистрНакопления.МТРВЭксплуатацииОперативныйУчет КАК МТРВЭксплуатацииОперативныйУчет
                 |ГДЕ
                 |    МТРВЭксплуатацииОперативныйУчет.Период <= &КонецПериода
                 |    И МТРВЭксплуатацииОперативныйУчет.Период >= &НачалоПериода
                 |    И МТРВЭксплуатацииОперативныйУчет.Организация = &Организация
                 |    И (&СтатьяДвиженияМТР = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженийМТРОперативныйУчет.ПустаяСсылка)
                 |            ИЛИ МТРВЭксплуатацииОперативныйУчет.СтатьяДвиженияМТР = &СтатьяДвиженияМТР)
                 |    И (&Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                 |            ИЛИ МТРВЭксплуатацииОперативныйУчет.ПодразделениеОрганизации = &Подразделение)
                 |    И (&Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                 |            ИЛИ МТРВЭксплуатацииОперативныйУчет.Склад = &Склад)
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    Организация,
                 |    Склад,
                 |    СтатьяДвиженияМТР,
                 |    Номенклатура
                 |ИТОГИ ПО
                 |    Организация,
                 |    Склад,
                 |    СтатьяДвиженияМТР,
                 |    Подразделение
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    Утверждающие.НомерСтроки,
                 |    Утверждающие.ФизЛицо,
                 |    ВЫБОР
                 |        КОГДА Утверждающие.ДолжностьПредставление <> """"""""
                 |            ТОГДА Утверждающие.ДолжностьПредставление
                 |        ИНАЧЕ Утверждающие.Должность
                 |    КОНЕЦ КАК Должность
                 |ПОМЕСТИТЬ Утверждающие
                 |ИЗ
                 |    &Утверждающие КАК Утверждающие
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                 |    Утверждающие.НомерСтроки КАК НомерСтроки,
                 |    Утверждающие.Должность КАК Должность,
                 |    ФИОФизЛицСрезПоследних.Фамилия + "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 0, 1) + "". "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 0, 1) + ""."" КАК ФИО
                 |ИЗ
                 |    Утверждающие КАК Утверждающие
                 |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
                 |        ПО Утверждающие.ФизЛицо = ФИОФизЛицСрезПоследних.ФизЛицо
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    НомерСтроки";
   Запрос.УстановитьПараметр("НачалоПериода"    , Период.ДатаНачала);
   Запрос.УстановитьПараметр("КонецПериода"     , Период.ДатаОкончания);
   Запрос.УстановитьПараметр("Склад"            , Склад);
   Запрос.УстановитьПараметр("Подразделение"    , Подразделение);
   Запрос.УстановитьПараметр("Организация"      , Организация);
   Запрос.УстановитьПараметр("СтатьяДвиженияМТР", Справочники.СтатьиДвиженийМТРОперативныйУчет.НайтиПоНаименованию("Списание МБП", ИСТИНА));
   Запрос.УстановитьПараметр("Утверждающие"     , Утверждающие.Выгрузить());
   РезультатЗапроса = Запрос.ВыполнитьПакет();
   
   
   Макет = ПолучитьМакет("Макет1");
   
   ОбластьШапка  = Макет.ПолучитьОбласть("Шапка");
   ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
   ОбластьШапка2 = Макет.ПолучитьОбласть("Шапка2");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   ОбластьПодписи = Новый ТабличныйДокумент;
   ОбластьСтрокаСогласования = Макет.ПолучитьОбласть("СтрокаСогласования");
   ВыборкаУтверждающие = РезультатЗапроса[2].Выбрать();
   Пока ВыборкаУтверждающие.Следующий() Цикл
       ОбластьСтрокаСогласования.Параметры.Заполнить(ВыборкаУтверждающие);
       ОбластьПодписи.Вывести(ОбластьСтрокаСогласования);    
   КонецЦикла;
   
   
   ВыборкаПоОрганизациям = РезультатЗапроса [0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   
   Пока ВыборкаПоОрганизациям.Следующий() Цикл
       
       ВыборкаПоСкладам = ВыборкаПоОрганизациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
       Пока ВыборкаПоСкладам.Следующий() Цикл
           
           ВыборкаПоСтатьям = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
           Пока ВыборкаПоСтатьям.Следующий() Цикл
               
               ВыборкаПоПодразделениям = ВыборкаПоСтатьям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
               //ВыборкаПоПодразделениям = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
               Пока ВыборкаПоПодразделениям.Следующий() Цикл
                   ОбластьШапка.Параметры.Заполнить(ВыборкаПоПодразделениям);
                   ОбластьШапка.Параметры.Период = ПредставлениеПериода;
                   Результат.Вывести(ОбластьШапка);

                   ВыборкаДетали = ВыборкаПоПодразделениям.Выбрать();        
                   Пока ВыборкаДетали.Следующий() Цикл
                       //Результат.Вывести(ОбластьШапка);
                       ОбластьСтрока.Параметры.Заполнить(ВыборкаДетали);
                       ОбластьСтрока.Параметры.Количество = Формат(ВыборкаДетали.Количество, "ЧЦ=15; ЧДЦ=3");
                       Результат.Вывести(ОбластьСтрока);                    
   
                   КонецЦикла; //ВыборкаДетали
                   
                   Результат.Вывести(ОбластьПодвал);
                   Результат.Вывести(ОбластьШапка2);
                   Результат.Вывести(ОбластьПодписи);
                   Результат.ВывестиГоризонтальныйРазделительСтраниц();
                   //КонецЦикла; //ВыборкаДетали            
               КонецЦикла; //ВыборкаПоПодразделениям
                   
           КонецЦикла; //ВыборкаПоСтатьям            
           
       КонецЦикла; //ВыборкаПоСкладам    
       
   КонецЦикла; //ВыборкаПоОрганизациям
1 Человечкин
 
22.03.12
13:18
(0)Че за ересь? Будь мужиком, юзай СКД!
2 ghostrid3r
 
22.03.12
13:20
Нахера мне СКД в управляемой форме
3 ghostrid3r
 
22.03.12
13:21
Корооче запрос двоит на уровне склада
4 Fragster
 
гуру
22.03.12
13:23
задваивает потому что 2 раза берешь данные из регистра, и когда берешь в первый раз - часть отсеиваешь, а во второй - нет. а потом делаешь из этого "объединить"
5 ghostrid3r
 
22.03.12
13:25
(4) спасибо понял где забочил все сделал