Имя: Пароль:
1C
1C 7.7
v7: из другого отчета вывести СумПриход
0 Pechka
 
11.09.12
16:03
Выводится отчет с подразделениями (АТЦ,Инструмент участок и т.д.),продукцией. Нужно напротив каждой строки подразделения указать Сумму-приход с другого отчета -Производственные затраты,сделала второй запрос , читает с регистра, помогите пожалуйста их объедиинить..цифры выходят,но ниже таблицы,или напротив нужных строк выходят нули..
Прикрепляю свой код,второй запрос сама написала.видимо неправильный

//******************************************************************************
//
Функция ПроверкаДат()
   Если ДатаНач > ПолучитьДатуТА() Тогда
       ДатаНач = ПолучитьДатуТА();
       Предупреждение("Начальная дата не может быть
                      |больше даты точки актуальности!");
       Возврат 0;
   ИначеЕсли ДатаНач > ДатаКон Тогда
       ДатаНач = ДатаКон;
       Предупреждение("Начальная дата не может быть больше
                      |конечной даты формирования отчета!");
       Возврат 0;
   КонецЕсли;
   Возврат 1;
КонецФункции // ПроверкаДат()

//*******************************************
//{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)

Процедура Сформировать()
   
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   
   Таб.ВывестиСекцию("Заголовок");
   Таб.ВывестиСекцию("Шапка");
   
   ПериодПо = "";
   Если ПроверкаДат() = 0 Тогда
       Возврат;
   ИначеЕсли ДатаКон >= ПолучитьДатуТА() Тогда
       ПериодПо = "";
       ПериодДляШапкиОтчета = Формат(ДатаНач, "Д ДДММГГГГ") + " - " + Формат(ПолучитьДатуТА(), "Д ДДММГГГГ") + " " + ПолучитьВремяТА(,,);
   Иначе
       ПериодДляШапкиОтчета = ПериодСтр(ДатаНач, ДатаКон);
       ПериодПо = " по ДатаКон";
   КонецЕсли;
             
     
       
   
   // Расчет базы при распределениях пропорционально измерителям, характеризующим объем деятельности МВЗ
   ТекстОбъемДеятельности = "//{{ЗАПРОС(ОбъемДеятельностиОснПроизв)
   |Период с ДатаНач " + ПериодПо + ";
   |ОбрабатыватьДокументы Проведенные;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Подразделение    = Документ.КМ_КорректировкаИзмерителей.Подразделение;
   |Продукция        = Документ.КМ_КорректировкаИзмерителей.Номенклатура;
   |Заказчик         = Документ.КМ_КорректировкаИзмерителей.Номенклатура.КМ_ПодразделениеЗаказчик;
   |Владелец         = Документ.КМ_КорректировкаИзмерителей.Владелец;
   |СтатьяЗатрат     = Документ.КМ_КорректировкаИзмерителей.СтатьяЗатратНаПроизводство;
   |НачКоличество    = Документ.КМ_КорректировкаИзмерителей.НачКоличество;
   |НачКоличествоВып = Документ.КМ_КорректировкаИзмерителей.НачКоличествоВып;
   |Количество       = Документ.КМ_КорректировкаИзмерителей.Количество;
   |КоличествоНП     = Документ.КМ_КорректировкаИзмерителей.КоличествоНП;
   |КоличествоНПВып  = Документ.КМ_КорректировкаИзмерителей.КоличествоНПВып;
   |Всего            = Документ.КМ_КорректировкаИзмерителей.Сумма;
   |
   |Функция НачБаза    = Сумма(НачКоличество);
   |Функция НачБазаВып = Сумма(НачКоличествоВып);
   |Функция База       = Сумма(Количество);
   |Функция БазаНП     = Сумма(КоличествоНП);
   |Функция БазаНПВып  = Сумма(КоличествоНПВып);
   |Функция СуммаВсего = Сумма(Всего);
   |
   |Группировка Подразделение без групп;
   |Группировка Заказчик без групп;
   |Группировка Продукция без групп;
   |Группировка Владелец без групп;
   |
   |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач)));
   |";//}}ЗАПРОС
   
     
   
   
   
   
   Если ПустоеЗначение(ВыбИсполнитель) = 0 Тогда
       ТекстОбъемДеятельности = ТекстОбъемДеятельности + "
       |Условие (Подразделение = ВыбИсполнитель);";
   КонецЕсли;

   Если ПустоеЗначение(ВыбЗаказчик) = 0 Тогда
       ТекстОбъемДеятельности = ТекстОбъемДеятельности + "
       |Условие (Заказчик = ВыбЗаказчик);";
   КонецЕсли;
   
       
       //ЗапросОстаткиНП = СоздатьОбъект("Запрос");

   
   
   
   
   
   
   ЗапросПоказателиДеятельности = СоздатьОбъект("Запрос");
   ЗапросПоказателиДеятельности.Выполнить(ТекстОбъемДеятельности);
       
         
//        
   Пока ЗапросПоказателиДеятельности.Группировка("Подразделение") = 1 Цикл  
       
           //Если  ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда
           //      ЕдИзм = "м/час";
           //КонецЕсли;    
       
       Пока ЗапросПоказателиДеятельности.Группировка("Заказчик") = 1 Цикл
           
               
                   
           
           Пока ЗапросПоказателиДеятельности.Группировка("Продукция") = 1 Цикл
               
               
               
               Пока ЗапросПоказателиДеятельности.Группировка("Владелец") = 1 Цикл
                   
                     ЕдИзм = " ";
                     
                   
                   Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда
                     ЕдИзм = "м/час" ;
           //    //
           //
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;  
               
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Инструментальный участок" Тогда
               ЕдИзм = "час" ;  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;  
               
                     Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Компрессорная" Тогда
               ЕдИзм = "куб.м." ;  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
               
                     Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Котельная" Тогда
               ЕдИзм = "гкал" ;  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
               
                      Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Насосная" Тогда
               ЕдИзм = "куб.м.";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
               
                      Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ОТК" Тогда
               ЕдИзм = "час";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
                   
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "РМЦ" Тогда
               ЕдИзм = "час";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
                   
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "СГМ" Тогда
               ЕдИзм = "час";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
                   
                   Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Участок по обслуживанию сантехники" Тогда
               ЕдИзм = "час";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
                   
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ЦЗЛ" Тогда
               ЕдИзм = "пробы";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
               
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Электроцех" Тогда
               ЕдИзм = "пробы";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;  
               
                    Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ЭТЛ" Тогда
               ЕдИзм = "час";  
                   Таб.ВывестиСекцию("Строка");
               КонецЕсли;
                   
               //Таб.ВывестиСекцию("Строка");
                   
               КонецЦикла;
               
           КонецЦикла;

       КонецЦикла;

   КонецЦикла;
////                
       
                   
   
       ТекстЗапроса = "//{{ЗАПРОС(ПолучитьСум)
   |Период с ДатаНач" + ПериодПо + ";
   |Продукция       = Регистр.ПроизводственныеЗатраты.Продукция;
   |Подразделение   = Регистр.ПроизводственныеЗатраты.Подразделение;
   |ВидЗатрат       = Регистр.ПроизводственныеЗатраты.ВидЗатрат;
   |Затрата         = Регистр.ПроизводственныеЗатраты.Затрата;
   |Владелец        = Регистр.ПроизводственныеЗатраты.Владелец;
   |Статус          = Регистр.ПроизводственныеЗатраты.Статус;
   |
   |Сумма           = Регистр.ПроизводственныеЗатраты.Сумма;
   |Функция СумПриход = Приход(Сумма);
   |
   |Группировка Подразделение без групп;
   //|Группировка Заказчик без групп;
   |Группировка Продукция без групп;
   |Группировка Владелец без групп;
//    |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач)));Условие(Подразделение = 1);
   |Условие(Подразделение = 1);
   |";

       
         ЗапросПолучитьСум = СоздатьОбъект("Запрос");
   ЗапросПолучитьСум.Выполнить(ТекстЗапроса);
           
       Пока ЗапросПолучитьСум.Группировка("Подразделение") = 1 Цикл
           
       Пока ЗапросПолучитьСум.Группировка("Заказчик") = 1 Цикл
       Пока ЗапросПолучитьСум.Группировка("Продукция") = 1 Цикл
       Пока ЗапросПолучитьСум.Группировка("Владелец") = 1 Цикл
                 
           
           
               Сум = "";
       
             Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда
                     
                                 
                 Сум = ЗапросПолучитьСум.СумПриход;
                   Таб.ВывестиСекцию("Строка");
                     
               КонецЕсли;  
           
       КонецЦикла;
       КонецЦикла;
     КонецЦикла;
    КонецЦикла;    
    //
         
   
   
   
   Таб.Опции(0,0,0,0);

   
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать","");
   
КонецПроцедуры

//}}БУХГАЛТЕРСКИЙ ЗАПРОС  

Процедура ПриОткрытии()  
   
   
   

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
   ДатаНач = НачМесяца(ПолучитьДатуТА());
   ДатаКон = КонМесяца(ПолучитьДатуТА());

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА

КонецПроцедуры