| 
    
        
     
     | 
    
  | 
v7: вывести СуммаПриход | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Pechka    
     13.09.12 
            ✎
    10:45 
 | 
         
        Выводится отчет с подразделениями (АТЦ,Инструмент участок и т.д.),продукцией. Нужно дополнительно для каждого подразделения вывести "Сумму-приход"(то есть еще одну колонку),которая формируется в др отчете-Производственные затраты,то есть объединить их. Для этого сделала второй запрос , читает с регистра..вместо суммы  выходят нули..
  
        Прикрепляю свой код,второй запрос сама написала.Помогите пожалуйста исправить //****************************************************************************** Функция ПроверкаДат() Если ДатаНач > ПолучитьДатуТА() Тогда ДатаНач = ПолучитьДатуТА(); Предупреждение("Начальная дата не может быть |больше даты точки актуальности!"); Возврат 0; ИначеЕсли ДатаНач > ДатаКон Тогда ДатаНач = ДатаКон; Предупреждение("Начальная дата не может быть больше |конечной даты формирования отчета!"); Возврат 0; КонецЕсли; Возврат 1; КонецФункции // ПроверкаДат() //******************************************* //{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать) Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Таб.ВывестиСекцию("Шапка"); ПериодПо = ""; Если ПроверкаДат() = 0 Тогда Возврат; ИначеЕсли ДатаКон >= ПолучитьДатуТА() Тогда ПериодПо = ""; ПериодДляШапкиОтчета = Формат(ДатаНач, "Д ДДММГГГГ") + " - " + Формат(ПолучитьДатуТА(), "Д ДДММГГГГ") + " " + ПолучитьВремяТА(,,); Иначе ПериодДляШапкиОтчета = ПериодСтр(ДатаНач, ДатаКон); ПериодПо = " по ДатаКон"; КонецЕсли; // Расчет базы при распределениях пропорционально измерителям, характеризующим объем деятельности МВЗ ТекстОбъемДеятельности = "//{{ЗАПРОС(ОбъемДеятельностиОснПроизв) |Период с ДатаНач " + ПериодПо + "; |ОбрабатыватьДокументы Проведенные; |Обрабатывать НеПомеченныеНаУдаление; |Подразделение = Документ.КМ_КорректировкаИзмерителей.Подразделение; |Продукция = Документ.КМ_КорректировкаИзмерителей.Номенклатура; |Заказчик = Документ.КМ_КорректировкаИзмерителей.Номенклатура.КМ_ПодразделениеЗаказчик; |Владелец = Документ.КМ_КорректировкаИзмерителей.Владелец; |СтатьяЗатрат = Документ.КМ_КорректировкаИзмерителей.СтатьяЗатратНаПроизводство; |НачКоличество = Документ.КМ_КорректировкаИзмерителей.НачКоличество; |НачКоличествоВып = Документ.КМ_КорректировкаИзмерителей.НачКоличествоВып; |Количество = Документ.КМ_КорректировкаИзмерителей.Количество; |КоличествоНП = Документ.КМ_КорректировкаИзмерителей.КоличествоНП; |КоличествоНПВып = Документ.КМ_КорректировкаИзмерителей.КоличествоНПВып; |Всего = Документ.КМ_КорректировкаИзмерителей.Сумма; | |Функция НачБаза = Сумма(НачКоличество); |Функция НачБазаВып = Сумма(НачКоличествоВып); |Функция База = Сумма(Количество); |Функция БазаНП = Сумма(КоличествоНП); |Функция БазаНПВып = Сумма(КоличествоНПВып); |Функция СуммаВсего = Сумма(Всего); | |Группировка Подразделение без групп; |Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп; | |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач))); |";//}}ЗАПРОС Если ПустоеЗначение(ВыбИсполнитель) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Подразделение = ВыбИсполнитель);"; КонецЕсли; Если ПустоеЗначение(ВыбЗаказчик) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Заказчик = ВыбЗаказчик);"; КонецЕсли; ЗапросПоказателиДеятельности = СоздатьОбъект("Запрос"); ЗапросПоказателиДеятельности.Выполнить(ТекстОбъемДеятельности); // Пока ЗапросПоказателиДеятельности.Группировка("Подразделение") = 1 Цикл //Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда // ЕдИзм = "м/час"; //КонецЕсли; Пока ЗапросПоказателиДеятельности.Группировка("Заказчик") = 1 Цикл Пока ЗапросПоказателиДеятельности.Группировка("Продукция") = 1 Цикл Пока ЗапросПоказателиДеятельности.Группировка("Владелец") = 1 Цикл ЕдИзм = " "; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда ЕдИзм = "м/час" ; // // // Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Инструментальный участок" Тогда ЕдИзм = "час" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Компрессорная" Тогда ЕдИзм = "куб.м." ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Котельная" Тогда ЕдИзм = "гкал" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Насосная" Тогда ЕдИзм = "куб.м."; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ОТК" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "РМЦ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "СГМ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Участок по обслуживанию сантехники" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ЦЗЛ" Тогда ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "Электроцех" Тогда ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "ЭТЛ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; //Таб.ВывестиСекцию("Строка"); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; ТекстЗапроса = "//{{ЗАПРОС(ПолучитьСум) |Период с ДатаНач" + ПериодПо + "; |Продукция = Регистр.ПроизводственныеЗатраты.Продукция; |Подразделение = Регистр.ПроизводственныеЗатраты.Подразделение; |ВидЗатрат = Регистр.ПроизводственныеЗатраты.ВидЗатрат; |Затрата = Регистр.ПроизводственныеЗатраты.Затрата; |Владелец = Регистр.ПроизводственныеЗатраты.Владелец; |Статус = Регистр.ПроизводственныеЗатраты.Статус; | |Сумма = Регистр.ПроизводственныеЗатраты.Сумма; |Функция СумПриход = Приход(Сумма); | |Группировка Подразделение без групп; //|Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп; // |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач)));Условие(Подразделение = 1); //|Условие(Подразделение = 1); |"; ЗапросПолучитьСум = СоздатьОбъект("Запрос"); ЗапросПолучитьСум.Выполнить(ТекстЗапроса); Пока ЗапросПолучитьСум.Группировка("Подразделение") = 1 Цикл //Пока ЗапросПолучитьСум.Группировка("Заказчик") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Продукция") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Владелец") = 1 Цикл Сум = ""; Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда Сум = ЗапросПолучитьСум.СумПриход; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЦикла; // КонецЦикла; КонецЦикла; КонецЦикла; //// Таб.Опции(0,0,0,0); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры //}}БУХГАЛТЕРСКИЙ ЗАПРОС Процедура ПриОткрытии() //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать) ДатаНач = НачМесяца(ПолучитьДатуТА()); ДатаКон = КонМесяца(ПолучитьДатуТА()); //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА КонецПроцедуры  | 
|||
| 
    1
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    10:54 
 | 
         
        |Период с ДатаНач" + ПериодПо + ";
  
        это что-то за гранью..  | 
|||
| 
    2
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    10:55 
 | 
         
        и это тоже:
  
        Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда Это условие НИКОГДА не выполнится, ежели что  | 
|||
| 
    3
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    10:55 
 | 
         
        либо сравнивай ссылки на объект справочника, или хотя бы СокрЛП(Наименование)     
         | 
|||
| 
    4
    
        Pechka    
     13.09.12 
            ✎
    11:33 
 | 
         
        то есть Если СокрЛП(Наименование) = "АТЦ" Тогда
  
        Сум = ЗапросПолучитьСум.СумПриход; так? ругается на Наименование: Переменная не определена (Наименование)  | 
|||
| 
    5
    
        Zmich    
     13.09.12 
            ✎
    11:39 
 | 
         
        Если СокрЛП(ЗапросПолучитьСум.Подразделение.Наименование) = "АТЦ" Тогда     
         | 
|||
| 
    6
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    11:40 
 | 
         
        (4) Печка, тебя явно нужно раскочегарить!
  
        :) ну подумай хоть мальца  | 
|||
| 
    7
    
        Neg    
     13.09.12 
            ✎
    11:42 
 | 
         
        (0) Вау!     
         | 
|||
| 
    8
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    11:42 
 | 
         
        И это, сравнивать по наименованию в коде - моветон, исправят наименование с справочнике и привет котёнку - весь твой код коту под хвост     
         | 
|||
| 
    9
    
        Pechka    
     13.09.12 
            ✎
    11:44 
 | 
         
        Если СокрЛП(ЗапросПолучитьСум.Подразделение.Наименование) = "АТЦ" Тогда
  
        по-прежнему нули выходят  | 
|||
| 
    10
    
        Pechka    
     13.09.12 
            ✎
    11:46 
 | 
         
        а нет! цифры выходят те ,которые нужно,но за пределами таблицы.Как быть?     
         | 
|||
| 
    11
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    11:46 
 | 
         
        (9) прям таки нули ?     
         | 
|||
| 
    12
    
        Pechka    
     13.09.12 
            ✎
    11:48 
 | 
         
        ну нули,то,что нужно..но они внизу таблицы,отдельно как то     
         | 
|||
| 
    13
    
        Pechka    
     13.09.12 
            ✎
    11:48 
 | 
         
        не нули))     
         | 
|||
| 
    14
    
        Zmich    
     13.09.12 
            ✎
    11:48 
 | 
         
        Используй в непонятных ситуациях конструкцию после выполнения запроса:
  
        ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ); ТЗ.ВыбратьСтроку(); и анализируй, что за цифры у тебя получаются в запросе.  | 
|||
| 
    15
    
        Pechka    
     13.09.12 
            ✎
    11:56 
 | 
         
        Цифры как раз получаются СуммаПриход для каждого подразделения.. А когда формируется отчет,выводятся цифры только для АТЦ,которые и нужны,но они почему-то снизу таблицы..Примерно так выглядит:
  
        АТЦ АТЦ Электроцех БВЦ 515.000 882570.52 505875.77  | 
|||
| 
    16
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    12:01 
 | 
         
        (15) дык , как написала - так и выводит.
  
        В начале, результаты первого запроса в Таблицу, затем - результаты второго запроса, в котором только суммы.  | 
|||
| 
    17
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    12:03 
 | 
         
        у тябя  документ КорректировкаИзмерителей, толкает регистр ПроизводственныеЗатраты ?
  
        если да, то пиши ОДИН запрос к регистру ПроизводственныеЗатраты , из которого доставай всё что нужно, а про первый запрос забудь.  | 
|||
| 
    18
    
        Pechka    
     13.09.12 
            ✎
    13:41 
 | 
         
        сделала один запрос к регистру,цифры выходят,но уже не выводит Заказчик..В первом запросе обращение к документу,а в регистре нет Заказчика..     
         | 
|||
| 
    19
    
        Zmich    
     13.09.12 
            ✎
    13:45 
 | 
         
        (18). Добавь в текст запроса
  
        |Док = Регистр.ПроизводственныеЗатраты.ТекущийДокумент; Потом Заказчик = Запрос.Док.Заказчик;  | 
|||
| 
    20
    
        Pechka    
     13.09.12 
            ✎
    14:00 
 | 
         
        Ёпрст4, получились цифры и заказчик вышел,прописала путь -     |Заказчик        = Регистр.ПроизводственныеЗатраты.Продукция.КМ_ПодразделениеЗаказчик; Только теперь не выходит показатель деятельности,на печатной форме только записан как : <глФорматКол(ЗапросПоказателиДеятельности.База)>  
  
        А функция база как раз с первого запроса,как ее вытащить оттуда  | 
|||
| 
    21
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    14:30 
 | 
         
        (20) База       = Сумма(Количество);
  
        это надо "как-то" в запросе ? илии что ?  | 
|||
| 
    22
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    14:30 
 | 
         
        покажите финальный текст запроса     
         | 
|||
| 
    23
    
        Pechka    
     13.09.12 
            ✎
    14:33 
 | 
         
        //******************************************************************************
  
        // Функция ПроверкаДат() Если ДатаНач > ПолучитьДатуТА() Тогда ДатаНач = ПолучитьДатуТА(); Предупреждение("Начальная дата не может быть |больше даты точки актуальности!"); Возврат 0; ИначеЕсли ДатаНач > ДатаКон Тогда ДатаНач = ДатаКон; Предупреждение("Начальная дата не может быть больше |конечной даты формирования отчета!"); Возврат 0; КонецЕсли; Возврат 1; КонецФункции // ПроверкаДат() //******************************************* //{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать) Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Таб.ВывестиСекцию("Шапка"); ПериодПо = ""; Если ПроверкаДат() = 0 Тогда Возврат; ИначеЕсли ДатаКон >= ПолучитьДатуТА() Тогда ПериодПо = ""; ПериодДляШапкиОтчета = Формат(ДатаНач, "Д ДДММГГГГ") + " - " + Формат(ПолучитьДатуТА(), "Д ДДММГГГГ") + " " + ПолучитьВремяТА(,,); Иначе ПериодДляШапкиОтчета = ПериодСтр(ДатаНач, ДатаКон); ПериодПо = " по ДатаКон"; КонецЕсли; // Расчет базы при распределениях пропорционально измерителям, характеризующим объем деятельности МВЗ ТекстОбъемДеятельности = "//{{ЗАПРОС(ОбъемДеятельностиОснПроизв) |Период с ДатаНач " + ПериодПо + "; |ОбрабатыватьДокументы Проведенные; |Обрабатывать НеПомеченныеНаУдаление; |Подразделение = Документ.КМ_КорректировкаИзмерителей.Подразделение; |Продукция = Документ.КМ_КорректировкаИзмерителей.Номенклатура; |Заказчик = Документ.КМ_КорректировкаИзмерителей.Номенклатура.КМ_ПодразделениеЗаказчик; |Владелец = Документ.КМ_КорректировкаИзмерителей.Владелец; |СтатьяЗатрат = Документ.КМ_КорректировкаИзмерителей.СтатьяЗатратНаПроизводство; |НачКоличество = Документ.КМ_КорректировкаИзмерителей.НачКоличество; |НачКоличествоВып = Документ.КМ_КорректировкаИзмерителей.НачКоличествоВып; |Количество = Документ.КМ_КорректировкаИзмерителей.Количество; |КоличествоНП = Документ.КМ_КорректировкаИзмерителей.КоличествоНП; |КоличествоНПВып = Документ.КМ_КорректировкаИзмерителей.КоличествоНПВып; |Всего = Документ.КМ_КорректировкаИзмерителей.Сумма; | |Функция НачБаза = Сумма(НачКоличество); |Функция НачБазаВып = Сумма(НачКоличествоВып); |Функция База = Сумма(Количество); |Функция БазаНП = Сумма(КоличествоНП); |Функция БазаНПВып = Сумма(КоличествоНПВып); |Функция СуммаВсего = Сумма(Всего); | |Группировка Подразделение без групп; |Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп; | |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач))); |";//}}ЗАПРОС Если ПустоеЗначение(ВыбИсполнитель) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Подразделение = ВыбИсполнитель);"; КонецЕсли; Если ПустоеЗначение(ВыбЗаказчик) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Заказчик = ВыбЗаказчик);"; КонецЕсли; ЗапросПоказателиДеятельности = СоздатьОбъект("Запрос"); ЗапросПоказателиДеятельности.Выполнить(ТекстОбъемДеятельности); // // ТекстЗапроса = "//{{ЗАПРОС(ПолучитьСум) |Период с ДатаНач" + ПериодПо + "; |Продукция = Регистр.ПроизводственныеЗатраты.Продукция; |Подразделение = Регистр.ПроизводственныеЗатраты.Подразделение; |ВидЗатрат = Регистр.ПроизводственныеЗатраты.ВидЗатрат; |Затрата = Регистр.ПроизводственныеЗатраты.Затрата; |Заказчик = Регистр.ПроизводственныеЗатраты.Продукция.КМ_ПодразделениеЗаказчик; |Владелец = Регистр.ПроизводственныеЗатраты.Владелец; |Заказ = Регистр.ПроизводственныеЗатраты.Заказ; |Статус = Регистр.ПроизводственныеЗатраты.Статус; |Док = Регистр.ПроизводственныеЗатраты.ТекущийДокумент; |Сумма = Регистр.ПроизводственныеЗатраты.Сумма; |Количество =Регистр.ПроизводственныеЗатраты.Подразделение.КМ_ВидМВЗ |Функция СумПриход = Приход(Сумма); //|Функция База = Сумма(Количество); |Группировка Подразделение без групп; |Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп; // |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач)));Условие(Подразделение = 1); // |Условие(Подразделение = 1); |"; ЗапросПолучитьСум = СоздатьОбъект("Запрос"); ЗапросПолучитьСум.Выполнить(ТекстЗапроса); //Заказчик = ЗапросПолучитьСум.Докум.Заказчик; Пока ЗапросПолучитьСум.Группировка("Подразделение") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Заказчик") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Продукция") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Владелец") = 1 Цикл ЕдИзм = " "; Сум = " "; Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда Сум = ЗапросПолучитьСум.СумПриход; //Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда ЕдИзм = "м/час" ; // // // Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Инструментальный участок" Тогда ЕдИзм = "час" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Компрессорная" Тогда ЕдИзм = "куб.м." ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Котельная" Тогда ЕдИзм = "гкал" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Насосная" Тогда ЕдИзм = "куб.м."; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ОТК" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "РМЦ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "СГМ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Участок по обслуживанию сантехники" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ЦЗЛ" Тогда ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Электроцех" Тогда ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ЭТЛ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; // Таб.Опции(0,0,0,0); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры //}}БУХГАЛТЕРСКИЙ ЗАПРОС Процедура ПриОткрытии() //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать) ДатаНач = НачМесяца(ПолучитьДатуТА()); ДатаКон = КонМесяца(ПолучитьДатуТА()); //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА КонецПроцедуры  | 
|||
| 
    24
    
        Pechka    
     13.09.12 
            ✎
    14:34 
 | 
         
        да,эту базу как то в запрос или не знаю уж..     
         | 
|||
| 
    25
    
        Pechka    
     13.09.12 
            ✎
    14:35 
 | 
         
        показатель деятельности колонка-это с документа корректир измерителей-на производство.вот эти цифры теперь надо бы вытащить     
         | 
|||
| 
    26
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    14:35 
 | 
         
        как то всё не так.. зачем вам 2 запроса?     
         | 
|||
| 
    27
    
        Pechka    
     13.09.12 
            ✎
    15:24 
 | 
         
        был сначала первый запрос,выводил несколько столбцов,сказали добавить СуммаПриход..а она берется из производственных затрат..то есть регистры уже..     
         | 
|||
| 
    28
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:25 
 | 
         
        (27) ну дык ответь на (17)     
         | 
|||
| 
    29
    
        Pechka    
     13.09.12 
            ✎
    15:29 
 | 
         
        блин,я не понимаю..когда выводится отчет производственные затраты,нажимаю на строку продукция,выходит окошко ,выбираю -по документам и там вылезает этот документ Корректировка..     
         | 
|||
| 
    30
    
        Pechka    
     13.09.12 
            ✎
    15:30 
 | 
         
        я не понимаю можно ли в регистр его засунуть Оо и каким образом     
         | 
|||
| 
    31
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:31 
 | 
         
        ээх..
  
        Открой в предприятии общий журнал документов, найди в нём любой проведенный документ вида КМ_КорректировкаИзмерителей на нём ПКМ (Правой Кнопкой Мыши) - далее, в контекстном меню быбери Движения регистра - выбери регистр ПроизводственныеЗатраты... Там есть движения у указанного вида документа ? Али нет ?  | 
|||
| 
    32
    
        Pechka    
     13.09.12 
            ✎
    15:38 
 | 
         
        есть))) галочка стоит!     
         | 
|||
| 
    33
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:41 
 | 
         
        (32) ну дык, тогда все данные бери только с регистра, смотри, какие там есть ресурсы .. и смотри движения в самом предприятии, что туда пишется.     
         | 
|||
| 
    34
    
        Pechka    
     13.09.12 
            ✎
    15:46 
 | 
         
        есть и кол-во и сумма 
  
        |Сумма = Регистр.ПроизводственныеЗатраты.Сумма; |Количество=Регистр.ПроизводственныеЗатраты.Количество; |Функция База = Сумма(Количество); Сейчас выходит количество из производственных затрат,а нужно же из документа  | 
|||
| 
    35
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:48 
 | 
         
        (34) ну блин, забудь ты про документ, у тебя все данные должны быть в регистре, какие еще там есть ресурсы, помимо ресурса 
  
        Количество ?  | 
|||
| 
    36
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:49 
 | 
         
        + Регистр поди остатков ?
  
        тогда в тексте запроса, так: //|Функция База = Сумма(Количество); |Функция БазаПриход = Приход(Количество); |Функция БазаРасход = Расход(Количество);  | 
|||
| 
    37
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    15:50 
 | 
         
        Если оборотов, то оставляешь как было, т.е так:
  
        |Функция База = Сумма(Количество);  | 
|||
| 
    38
    
        Pechka    
     13.09.12 
            ✎
    15:56 
 | 
         
        ресурсы-количество,сумма,суммаНУ,суммаПР,количествоОС..     
         | 
|||
| 
    39
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:02 
 | 
         
        (38) ну вот..
  
        Тип регистра какой еще ? Смотри его свойства в пофигураторе (там переключатель - останковый он или оборотный)  | 
|||
| 
    40
    
        Pechka    
     13.09.12 
            ✎
    16:05 
 | 
         
        уффф.знать бы где это еще смотреть :/     
         | 
|||
| 
    41
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:07 
 | 
         
        (40) два раза щелкни мышой на нужном регистре в дереве метаданных в пофигураторе - откроется окошко свойств данного регистра, там и гляди     
         | 
|||
| 
    42
    
        Pechka    
     13.09.12 
            ✎
    16:17 
 | 
         
        я неуч) Остатки это     
         | 
|||
| 
    43
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:18 
 | 
         
        ну вот, теперь пиши как в (36)..и получай аналогичным способом остальные ресурсы:
  
        ,сумма,суммаНУ,суммаПР,количествоОС  | 
|||
| 
    44
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:18 
 | 
         
        думаю, этого более чем достаточно     
         | 
|||
| 
    45
    
        Pechka    
     13.09.12 
            ✎
    16:34 
 | 
         
        так?а на печатной форме что написать?
  
        |Продукция = Регистр.ПроизводственныеЗатраты.Продукция; |Подразделение=Регистр.ПроизводственныеЗатраты.Подразделение; |ВидЗатрат = Регистр.ПроизводственныеЗатраты.ВидЗатрат; |Затрата= Регистр.ПроизводственныеЗатраты.Затрата; |Заказчик= Регистр.ПроизводственныеЗатраты.Продукция.КМ_ПодразделениеЗаказчик; |Владелец= Регистр.ПроизводственныеЗатраты.Владелец; |Заказ= Регистр.ПроизводственныеЗатраты.Заказ; |Статус= Регистр.ПроизводственныеЗатраты.Статус; |Сумма = Регистр.ПроизводственныеЗатраты.Сумма; |СуммаНУ = Регистр.ПроизводственныеЗатраты.СуммаНУ; |СуммаПР = Регистр.ПроизводственныеЗатраты.СуммаПР; |Количество =Регистр.ПроизводственныеЗатраты.Количество; |КоличествоОС =Регистр.ПроизводственныеЗатраты.КоличествоОС; //|Функция База = Сумма(Количество); |Функция БазаПриход = Приход(Количество); |Функция БазаРасход = Расход(Количество); |Группировка Подразделение без групп; |Функция СумПриход = Приход(Сумма); |Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп;  | 
|||
| 
    46
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:48 
 | 
         
        (45) почти, нет еще сумм 
  
        |Функция СуммаПриход = Приход(Сумма); |Функция СуммаРасход = Расход(Сумма); .... |Функция СуммаНУПриход = Приход(СуммаНУ); |Функция СуммаНУРасход = Расход(СуммаНУ); и т.д.. на выходе получай эти суммы: Запрос.СуммаНУПриход, Запрос.СуммаРасход и т.д. т.е получай значения функций при обходе группировок запроса.  | 
|||
| 
    47
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    16:48 
 | 
         
        +46 оговорка, не сумм, а функций
  
        :)  | 
|||
| 
    48
    
        Pechka    
     13.09.12 
            ✎
    17:05 
 | 
         
        написала..а что в печатной формме то писать?     
         | 
|||
| 
    49
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    17:31 
 | 
         
        (48) так и пиши  Запрос.СуммаРасход ..тип ячейки - выражение.     
         | 
|||
| 
    50
    
        Ёпрст    
     гуру 
    13.09.12 
            ✎
    17:31 
 | 
         
        :)     
         | 
|||
| 
    51
    
        Pechka    
     14.09.12 
            ✎
    08:07 
 | 
         
        Спасибо огромное!!получилось!:)     
         | 
|||
| 
    52
    
        Pechka    
     14.09.12 
            ✎
    08:40 
 | 
         
        окончательный код:
  
        //****************************************************************************** // Функция ПроверкаДат() Если ДатаНач > ПолучитьДатуТА() Тогда ДатаНач = ПолучитьДатуТА(); Предупреждение("Начальная дата не может быть |больше даты точки актуальности!"); Возврат 0; ИначеЕсли ДатаНач > ДатаКон Тогда ДатаНач = ДатаКон; Предупреждение("Начальная дата не может быть больше |конечной даты формирования отчета!"); Возврат 0; КонецЕсли; Возврат 1; КонецФункции // ПроверкаДат() //******************************************* //{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать) Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Таб.ВывестиСекцию("Шапка"); ПериодПо = ""; Если ПроверкаДат() = 0 Тогда Возврат; ИначеЕсли ДатаКон >= ПолучитьДатуТА() Тогда ПериодПо = ""; ПериодДляШапкиОтчета = Формат(ДатаНач, "Д ДДММГГГГ") + " - " + Формат(ПолучитьДатуТА(), "Д ДДММГГГГ") + " " + ПолучитьВремяТА(,,); Иначе ПериодДляШапкиОтчета = ПериодСтр(ДатаНач, ДатаКон); ПериодПо = " по ДатаКон"; КонецЕсли; // Расчет базы при распределениях пропорционально измерителям, характеризующим объем деятельности МВЗ ТекстОбъемДеятельности = "//{{ЗАПРОС(ОбъемДеятельностиОснПроизв) |Период с ДатаНач " + ПериодПо + "; |ОбрабатыватьДокументы Проведенные; |Обрабатывать НеПомеченныеНаУдаление; |Подразделение = Документ.КМ_КорректировкаИзмерителей.Подразделение; |Продукция = Документ.КМ_КорректировкаИзмерителей.Номенклатура; |Заказчик = Документ.КМ_КорректировкаИзмерителей.Номенклатура.КМ_ПодразделениеЗаказчик; |Владелец = Документ.КМ_КорректировкаИзмерителей.Владелец; |СтатьяЗатрат = Документ.КМ_КорректировкаИзмерителей.СтатьяЗатратНаПроизводство; |НачКоличество = Документ.КМ_КорректировкаИзмерителей.НачКоличество; |НачКоличествоВып = Документ.КМ_КорректировкаИзмерителей.НачКоличествоВып; |Количество = Документ.КМ_КорректировкаИзмерителей.Количество; |КоличествоНП = Документ.КМ_КорректировкаИзмерителей.КоличествоНП; |КоличествоНПВып = Документ.КМ_КорректировкаИзмерителей.КоличествоНПВып; |Всего = Документ.КМ_КорректировкаИзмерителей.Сумма; | |Функция НачБаза = Сумма(НачКоличество); |Функция НачБазаВып = Сумма(НачКоличествоВып); |Функция База = Сумма(Количество); |Функция БазаНП = Сумма(КоличествоНП); |Функция БазаНПВып = Сумма(КоличествоНПВып); |Функция СуммаВсего = Сумма(Всего); | |Группировка Подразделение без групп; |Группировка Заказчик без групп; |Группировка Продукция без групп; |Группировка Владелец без групп; | |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач))); |";//}}ЗАПРОС Если ПустоеЗначение(ВыбИсполнитель) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Подразделение = ВыбИсполнитель);"; КонецЕсли; Если ПустоеЗначение(ВыбЗаказчик) = 0 Тогда ТекстОбъемДеятельности = ТекстОбъемДеятельности + " |Условие (Заказчик = ВыбЗаказчик);"; КонецЕсли; ЗапросПоказателиДеятельности = СоздатьОбъект("Запрос"); ЗапросПоказателиДеятельности.Выполнить(ТекстОбъемДеятельности); // // ТекстЗапроса = "//{{ЗАПРОС(ПолучитьСум) |Период с ДатаНач" + ПериодПо + "; |Продукция = Регистр.ПроизводственныеЗатраты.Продукция,Документ.КМ_КорректировкаИзмерителей.Номенклатура; |Подразделение = Регистр.ПроизводственныеЗатраты.Подразделение,Документ.КМ_КорректировкаИзмерителей.Подразделение; |ВидЗатрат = Регистр.ПроизводственныеЗатраты.ВидЗатрат; |Затрата = Регистр.ПроизводственныеЗатраты.Затрата; |Заказчик = Регистр.ПроизводственныеЗатраты.Продукция.КМ_ПодразделениеЗаказчик,Документ.КМ_КорректировкаИзмерителей.Номенклатура.КМ_ПодразделениеЗаказчик; |Сумма = Регистр.ПроизводственныеЗатраты.Сумма; |Количество = Документ.КМ_КорректировкаИзмерителей.Количество; |Функция СуммаПриход = Приход(Сумма); |Функция КоличествоСумма = Сумма(Количество); |Группировка Подразделение без групп; |Группировка Заказчик без групп; |Группировка Продукция без групп; // |Группировка Владелец без групп; // |Условие ((СтатьяЗатрат = ПолучитьПустоеЗначение(""Справочник"")) ИЛИ (СтатьяЗатрат = Константа.КМ_СтатьяВспомПроизвДляРасчетов.Получить(ДатаНач)));Условие(Подразделение = 1); //|Условие(Подразделение = ); |"; ЗапросПолучитьСум = СоздатьОбъект("Запрос"); ЗапросПолучитьСум.Выполнить(ТекстЗапроса); Пока ЗапросПолучитьСум.Группировка("Подразделение") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Заказчик") = 1 Цикл Пока ЗапросПолучитьСум.Группировка("Продукция") = 1 Цикл ЕдИзм = " "; Сум = " "; Если ЗапросПолучитьСум.Подразделение.Наименование = "АТЦ" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "м/час" ; // // // Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Инструментальный участок" Тогда ЕдИзм = "час" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Компрессорная" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "куб.м." ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Котельная" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "гкал" ; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Насосная" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "куб.м."; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ОТК" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "РМЦ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "СГМ" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Участок по обслуживанию сантехники" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ЦЗЛ" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "Электроцех" Тогда Сум = ЗапросПолучитьСум.СуммаПриход; ЕдИзм = "пробы"; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ЗапросПолучитьСум.Подразделение.Наименование = "ЭТЛ" Тогда ЕдИзм = "час"; Таб.ВывестиСекцию("Строка"); КонецЕсли; //ИначеЕсли //Иначе // КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; // Таб.Опции(0,0,0,0); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры //}}БУХГАЛТЕРСКИЙ ЗАПРОС Процедура ПриОткрытии() //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать) ДатаНач = НачМесяца(ПолучитьДатуТА()); ДатаКон = КонМесяца(ПолучитьДатуТА()); //{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА КонецПроцедуры  | 
|||
| 
    53
    
        Pechka    
     14.09.12 
            ✎
    12:54 
 | 
         
        Помогите пожалуйста теперь получить общую сумму только для инструментального участка(подразделение). Сейчас выходит у меня примерно так:
  
        Подразделение Заказчик Продукция Сумма Инстр.участок СГМ Металлоизделия().СГМ 5 Инстр.участок стан 10-65 Валки 25х25 стан 10-65 6 Инстр.участок стан 10-65 Валки 20х20 стан 10-65 7 Инстр.участок стан 10-65 Валки 40х20 стан 10-65 12 Инстр.участок стан 102-220 Валки Ф219 стан 102-220 72 Инстр.участок стан 102-220 Валки 40х40 стан 102-220 35 Инстр.участок СГМ Нож дисковой 10 Надо просуммировать одинаковые значения,которые показаны в столбце Заказчик. В итоге получить сумму общую для стан 10-65,например и т.д. Как должно выглядеть: Инстр.участок СГМ Металлоизделия() СГМ 15 Инстр.участок стан 10-65 Валки 25х25 стан 10-65 25 Инстр.участок стан 10-65 Валки 20х20 стан 10-65 25 Инстр.участок стан 10-65 Валки 40х20 стан 10-65 25 Инстр.участок стан 102-220 Валки Ф219 стан 102-220 105 Инстр.участок стан 102-220 Валки 40х40 стан 102-220 105 Инстр.участок СГМ Нож дисковой СГМ 15 Думаю через ТаблицуЗначений, ТаблицаОтчета = СоздатьОбъект("ТаблицаЗначений"); ТаблицаОтчета.НоваяКолонка("Наименование", "Строка"); ТаблицаОтчета.НоваяКолонка("Сум","Число",15,2); а как это все свернуть не знаю..  | 
|||
| 
    54
    
        PuhUfa    
     14.09.12 
            ✎
    12:59 
 | 
         
        не? 
  
        Свернуть(<?>,); Синтаксис: Свернуть(<ГруппКолонки>,<СуммКолонки>) Назначение: Позволяет свернуть таблицу значений по соответствующим значениям колонок, т.е. заменяет на одну строку все дублирующие (по значениям группировочных колонок) строки, суммируя значения по суммируемым колонкам.  | 
|||
| 
    55
    
        Pechka    
     14.09.12 
            ✎
    13:04 
 | 
         
        это понятно Свернуть,каким образом обозначить,что именно в инструментальном участке одинаковые позиции свернуть     
         | 
|||
| 
    56
    
        BlackSeaCat    
     14.09.12 
            ✎
    13:04 
 | 
         
        Перед Свернуть() надо использовать Завалить(ТС) :-)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |