|
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
|
Перед Свернуть() надо использовать Завалить(ТС) :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |