|
Не получается вычислить среднее | ☑ | ||
---|---|---|---|---|
0
LexaSS
26.03.12
✎
15:15
|
оброго времени суток!
Нужна помощь/совет/консультация все что может помочь :)) заранее спасибо! Дело обстоит так, есть документ у которого нет движений по регистрам. У него есть свои справочник в котором хранятся параметры .Они передаются в документ и их необходимо заполнять оценками, сотрудникам. Абсолютный примитив. Но вот новая цель - нужно сделать отчет....что бы там вычиталось среднее по принципу: суммирование оценок идет по дням (сделано)/ на кол-во дней указанных в отчете. 2 дня ожесточенных боев, чтения и т.д. привили к результату очень близкому к абсолютному 0 :( ТекстЗапроса = "ВЫБРАТЬ | ДляОбщегоОтчетаСводка.Ссылка КАК Документ, | ДляОбщегоОтчетаСводка.НаборБукавок, | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц | |{ВЫБРАТЬ | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИЗ | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка |ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления) |{ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.*, | ДляОбщегоОтчетаСводка.НаборБукавок.*, | ДляОбщегоОтчетаСводка.КоличествоОтклонений, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц} |{УПОРЯДОЧИТЬ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИТОГИ | СУММА(КоличествоОтклонений) |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц}"; Я хочу передать в ИТОГ что то Результат((СУММА(КоличествоОтклонений))/ (&ДатаОкончания - &ДатаНачала)) КАК Результат как то так :) Я начинающий в этом деле :( Приму любую помощь, спасибо! |
|||
1
Axel2009
26.03.12
✎
15:17
|
((СУММА(КоличествоОтклонений))/ (&ДатаОкончания - &ДатаНачала)) КАК КоличествоОтклонений
|
|||
2
Axel2009
26.03.12
✎
15:18
|
(&ДатаОкончания - &ДатаНачала)
это заменить на РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, День) |
|||
3
Vakhrin
26.03.12
✎
15:19
|
Сумма средних?.. )
|
|||
4
LexaSS
26.03.12
✎
15:21
|
Пробывал, ругается.
Во что выдал с вашими модификациями: контекста (Вывести): {(15, 57)}: Не задано значение параметра "ДатаОкончания" СУММА(КоличествоОтклонений) / РАЗНОСТЬДАТ(&ДатаНачала, <<?>>&ДатаОкончания, ДЕНЬ) КАК КоличествоОтклонений ПостроительОтчета.Вывести(ТабличныйДокумент); по причине: {(15, 57)}: Не задано значение параметра "ДатаОкончания" СУММА(КоличествоОтклонений) / РАЗНОСТЬДАТ(&ДатаНачала, <<?>>&ДатаОкончания, ДЕНЬ) КАК КоличествоОтклонений Vakhrin Честно уже сам не понимаю что пишу :) |
|||
5
Axel2009
26.03.12
✎
15:22
|
ну так задай параметр
|
|||
6
Vakhrin
26.03.12
✎
15:22
|
))))))
|
|||
7
LexaSS
26.03.12
✎
15:32
|
Тут у меня загвоздка и есть, не получается :(
Я уверен что где то затупил, но где?( |
|||
8
LexaSS
26.03.12
✎
15:33
|
Я+Радченко+гугл бьемся 3 день уже :(
|
|||
9
Axel2009
26.03.12
✎
15:39
|
(7) что не получается?
|
|||
10
LexaSS
26.03.12
✎
15:41
|
Установить правильно параметр Даты
|
|||
11
Axel2009
26.03.12
✎
15:44
|
ну показывай код где устанавливаешь
|
|||
12
LexaSS
26.03.12
✎
15:46
|
ТекстЗапроса =
"ВЫБРАТЬ | ДляОбщегоОтчетаСводка.Ссылка КАК Документ, | ДляОбщегоОтчетаСводка.НаборБукавок, | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений, //| РАЗНОСТЬДАТ(&НачПериода, &КонПериода, ДЕНЬ) КАК КоличествоДнейВПериоде, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц | |{ВЫБРАТЬ | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} | |ИЗ | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка |ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления) |{ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.*, | ДляОбщегоОтчетаСводка.НаборБукавок.*, | ДляОбщегоОтчетаСводка.КоличествоОтклонений, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц} |{УПОРЯДОЧИТЬ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИТОГИ | ((СУММА(КоличествоОтклонений))/ РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, День)) КАК КоличествоОтклонений |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц}"; В самом верху, это последний вариант :( который делал |
|||
13
Axel2009
26.03.12
✎
15:48
|
а где установить параметр?
|
|||
14
Axel2009
26.03.12
✎
15:48
|
&НачПериода
&КонПериода &ДатаНачала &ДатаКонца &ДатаОкончания ниче что столько параметров? |
|||
15
LexaSS
26.03.12
✎
15:51
|
Да что то много их на клепал.
Да у меня загвостка в том что я не знаю параметр как передать в запросе или процедурой? |
|||
16
LexaSS
26.03.12
✎
15:52
|
точнее установить
|
|||
17
Reset
26.03.12
✎
15:56
|
Напиши в редакторе "УстановитьПараметр", поставь на него курсор и нажми Ctrl-F1
|
|||
18
Axel2009
26.03.12
✎
15:56
|
ну где код то весь?
|
|||
19
LexaSS
26.03.12
✎
15:58
|
#Если Клиент Тогда
//////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА //Процедура УстановитьПараметры() Экспорт ////Установка параметра "НачалоПериода" //Если Не ЗначениеЗаполнено(НачалоПериода) Тогда // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоМесяца(ТекущаяДата()); // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; // НачалоПериода = НачалоМесяца(ТекущаяДата()); //Иначе // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоПериода; // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; //КонецЕсли; ////Установка параметра "КонецПериода" //Если Не ЗначениеЗаполнено(КонецПериода) Тогда // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = КонецМесяца(ТекущаяДата()); // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; // КонецПериода = КонецМесяца(ТекущаяДата()); //Иначе // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = КонецПериода; // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; //КонецЕсли; //КонецПроцедуры //ВЫБРАТЬ //РАЗНОСТЬДАТ(&НачПериода, &КонПериода, ДЕНЬ) КАК КоличествоДнейВПериоде, //РеализацияТоваровУслуг.СуммаДокумента //ПОМЕСТИТЬ Таблица1 //ИЗ //Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг //ГДЕ //РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода //; ////////////////////////////////////////////////////////////////////////////////// //ВЫБРАТЬ //МАКСИМУМ(Таблица1.КоличествоДнейВПериоде) КАК КоличествоДнейВПериоде, //СУММА(Таблица1.СуммаДокумента) КАК СуммаДокумента //ПОМЕСТИТЬ Таблица2 //ИЗ //Таблица1 КАК Таблица1 //; ////////////////////////////////////////////////////////////////////////////////// //ВЫБРАТЬ //Таблица2.СуммаДокумента / Таблица2.КоличествоДнейВПериоде КАК СредняяСуммаДокументаВДень //ИЗ //Таблица2 КАК Таблица2 // Процедура установки начальных настроек отчета с использованием текста запроса // Процедура УстановитьНачальныеНастройкиУпр(ДополнительныеПараметры = Неопределено) // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку. // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована // для реализации специфичных для данного отчета параметрических настроек. // Описание исходного текста запроса. ТекстЗапроса = "ВЫБРАТЬ | ДляОбщегоОтчетаСводка.Ссылка КАК Документ, | ДляОбщегоОтчетаСводка.НаборБукавок, | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений, //| РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, ДЕНЬ) КАК КоличествоОтклонений, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц | |{ВЫБРАТЬ | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} | |ИЗ | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка |ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления) |{ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.*, | ДляОбщегоОтчетаСводка.НаборБукавок.*, | ДляОбщегоОтчетаСводка.КоличествоОтклонений, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц} |{УПОРЯДОЧИТЬ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИТОГИ | ((СУММА(КоличествоОтклонений))/ РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, День)) КАК КоличествоОтклонений |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц}"; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Представления полей отчета. // Необходимо вызывать для каждого поля запроса. // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоНачальныйОстаток","Количество начальный остаток"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоПриход","Количество приход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоРасход","Количество расход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОтклонения","Отклонения"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ПроцентОтклонения","% Откл."); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоКонечныйОстаток", "Количество конечный остаток"); // Добавление показателей // Необходимо вызывать для каждого добавляемого показателя. // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОтклонений","хз", Истина, "ЧЦ=15; ЧДЦ=2", "", ""); //УниверсальныйОтчет.ДобавитьПолеРесурс("ПроцентСкидки", "ВЫБОР КОГДА СтоимостьБезСкидокОборот = 0 ТОГДА 0 ИНАЧЕ (СтоимостьБезСкидокОборот - СтоимостьОборот) / СтоимостьБезСкидокОборот * 100 КОНЕЦ", "% скидки", // "ВЫБОР КОГДА СУММА(КоличествоПриход) = 0 ТОГДА 0 ИНАЧЕ (СУММА(КоличествоПриход) / СУММА(КоличествоОтклонения) * 100 КОНЕЦ"); // Чтобы не суммировались проценты // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("НаборБукавок"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("День"); // Добавление предопределенных группировок колонок отчета. // Необходимо вызывать для каждой добавляемой группировки колонки. // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("НаборБукавок"); // Добавление предопределенных полей порядка отчета. // Необходимо вызывать для каждого добавляемого поля порядка. // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьПорядок("НаборБукавок.СортировкаДляОтчета"); // Установка связи подчиненных и родительских полей // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>); // Установка связи полей и измерений // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>); // Установка представлений полей УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); // Установка типов значений свойств в отборах отчета УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора(); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); // Добавление дополнительных полей // Необходимо вызывать для каждого добавляемого дополнительного поля. // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>); КонецПроцедуры // УстановитьНачальныеНастройкиУпр() // Процедура установки начальных настроек отчета с использованием текста запроса // Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметров универсального отчета УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, ДополнительныеПараметры); // Содержит название отчета, которое будет выводиться в шапке. // Тип: Строка. // Пример: // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета"; УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета. // Тип: Строка. // Пример: // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; // Содержит значение используемого режима ввода периода. // Тип: Число. // Возможные значения: 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год // Значение по умолчанию: 0 // Пример: // УниверсальныйОтчет.мРежимВводаПериода = 0; // Содержит признак необходимости вывода отрицательных значений показателей красным цветом. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ОтрицательноеКрасным = Истина; УниверсальныйОтчет.ОтрицательноеКрасным = Истина; // Содержит признак необходимости вывода в отчет общих итогов. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь; // Содержит признак необходимости вывода детальных записей в отчет. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина; УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Ложь; // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь; // Содержит признак использования свойств и категорий при заполнении настроек отчета. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина; //УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина; // Содержит признак использования простой формы настроек отчета без группировок колонок. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина; УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина; УстановитьНачальныеНастройкиУпр(ДополнительныеПараметры); КонецПроцедуры // УстановитьНачальныеНастройки() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМИРОВАНИЯ ОТЧЕТА // Процедура формирования отчета // Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт мКодыОпераций = Новый СписокЗначений; мКодыОпераций.Добавить(Перечисления.КодыОпераций.Отклонение); мКодыОпераций.Добавить(Перечисления.КодыОпераций.ИнвентаризацияИзлишки); мКодыОпераций.Добавить(Перечисления.КодыОпераций.ИнвентаризацияНедосдача); // Перед формирование отчета можно установить необходимые параметры универсального отчета. УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КодОперации", мКодыОпераций); УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент); //КолвоДней = ЦЕЛ((КонецМесяца( //УниверсальныйОтчет.ДатаКон)-НачалоМесяца(УниверсальныйОтчет.ДатаНач))/86400)+1; //Итог = Итог.КоличсетвоОтклонений / КолвоДней КонецПроцедуры // СформироватьОтчет() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Процедура обработки расшифровки // Процедура ОбработкаРасшифровки(Расшифровка, Объект) Экспорт // Дополнительные параметры в расшифровывающий отчет можно перередать // посредством инициализации переменной "ДополнительныеПараметры". ДополнительныеПараметры = УправлениеОтчетами.СохранитьРеквизитыОтчета(ЭтотОбъект); УниверсальныйОтчет.ОбработкаРасшифровкиУниверсальногоОтчета(Расшифровка, Объект, ДополнительныеПараметры); КонецПроцедуры // ОбработкаРасшифровки() // Формирует структуру для сохранения настроек отчета // Процедура СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками) Экспорт УниверсальныйОтчет.СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками); УправлениеОтчетами.СохранитьРеквизитыОтчета(ЭтотОбъект, СтруктураСНастройками); КонецПроцедуры // СформироватьСтруктуруДляСохраненияНастроек() // Заполняет настройки отчета из структуры сохраненных настроек // Функция ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками) Экспорт УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, СтруктураСНастройками); Возврат УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками, ЭтотОбъект); КонецФункции // ВосстановитьНастройкиИзСтруктуры() // Содержит значение используемого режима ввода периода. // Тип: Число. // Возможные значения: 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год // Значение по умолчанию: 0 // Пример: // УниверсальныйОтчет.мРежимВводаПериода = 1; #КонецЕсли Спасибо !! Что помогайте! Я щас подредактировал, отчет ошибок не даёт, но и деление не выполняет в ИТОГ . |
|||
20
Axel2009
26.03.12
✎
16:03
|
ну так глянь какое число выдает в
РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ДЕНЬ) и все поймешь сразу |
|||
21
LexaSS
26.03.12
✎
16:25
|
Переменная не определена :)
|
|||
22
LexaSS
26.03.12
✎
16:36
|
Перед запросом добавил следующее:
Запрос.УстановитьПараметр("ДатаНачала", ДатаНач); Запрос.УстановитьПараметр("ДатаКонца", ДатаКон); В итоге ругается на ДатаНач, по идее ДатаНач вводится на форме отчета. А это я пишу в основном модуле отчета. Извиняюсь за глупые вопросы я совсем новичок, спасибо всем кто помогает! |
|||
23
Vakhrin
26.03.12
✎
16:37
|
Сделай реквизитами Отчета/Обработки все значащие переменные и не задумывайся о том, что и где находится
|
|||
24
Axel2009
26.03.12
✎
16:50
|
и где установка параметра "ДатаНач"?
|
|||
25
LexaSS
26.03.12
✎
16:51
|
Дело в том что это самописка, и все отчеты работают через универсальный отчет.
Ну хотя идею по поводу реквизита я понял, спасибо попробую, но мне кажется проще было бы определить параметр. |
|||
26
palpetrovich
26.03.12
✎
17:02
|
(25) ну дык, делай через параметр ...как-то так: ВсегоДней = (ДатаКон - ДатаНач) / 86400
|
|||
27
LexaSS
26.03.12
✎
17:16
|
Пробовал :) Вечно какой нибуть затык :(
Не могу сообразить как установить параметр. Спасибо за версию! |
|||
28
airyashov
26.03.12
✎
17:17
|
Запрос.УстановитьПараметр("ВсегоДней",(ДатаКон - ДатаНач) / 86400);
|
|||
29
LexaSS
26.03.12
✎
17:41
|
Процедура УстановитьНачальныеНастройкиУпр(ДополнительныеПараметры = Неопределено)
//Перем ДатаКон; //Перем ДатаНач; //Запрос.УстановитьПараметр("ДатаНачала", ДатаНач); //Запрос.УстановитьПараметр("ДатаКонца", ДатаКон); // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку. // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована // для реализации специфичных для данного отчета параметрических настроек. // Описание исходного текста запроса. //Запрос.УстановитьПараметр("ВсегоДней",(ДатаКон - ДатаНач) / 86400); ТекстЗапроса = "ВЫБРАТЬ | ДляОбщегоОтчетаСводка.Ссылка КАК Документ, | ДляОбщегоОтчетаСводка.НаборБукавок, | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений, //| РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, ДЕНЬ) КАК КоличествоОтклонений, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц | НАЧАЛОПЕРИОДА(&ДатаНач, День ) КАК ДатаНач, | КОНЕЦПЕРИОДА(&ДатаКон, День ) КАК ДатаКон | |{ВЫБРАТЬ | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} | |ИЗ | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка |ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления) |{ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.*, | ДляОбщегоОтчетаСводка.НаборБукавок.*, | ДляОбщегоОтчетаСводка.КоличествоОтклонений, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц} |{УПОРЯДОЧИТЬ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИТОГИ | ((СУММА(КоличествоОтклонений))/ РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, День)) КАК КоличествоОтклонений |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | НаборБукавок.*, | КоличествоОтклонений, | День, | Неделя, | Месяц}"; //Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); //Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца); // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Представления полей отчета. // Необходимо вызывать для каждого поля запроса. // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоНачальныйОстаток","Количество начальный остаток"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоПриход","Количество приход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоРасход","Количество расход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОтклонения","Отклонения"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ПроцентОтклонения","% Откл."); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоКонечныйОстаток", "Количество конечный остаток"); // Добавление показателей // Необходимо вызывать для каждого добавляемого показателя. // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОтклонений","хз", Истина, "ЧЦ=15; ЧДЦ=2", "", ""); //УниверсальныйОтчет.ДобавитьПолеРесурс("ПроцентСкидки", "ВЫБОР КОГДА СтоимостьБезСкидокОборот = 0 ТОГДА 0 ИНАЧЕ (СтоимостьБезСкидокОборот - СтоимостьОборот) / СтоимостьБезСкидокОборот * 100 КОНЕЦ", "% скидки", // "ВЫБОР КОГДА СУММА(КоличествоПриход) = 0 ТОГДА 0 ИНАЧЕ (СУММА(КоличествоПриход) / СУММА(КоличествоОтклонения) * 100 КОНЕЦ"); // Чтобы не суммировались проценты // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("НаборБукавок"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("День"); // Добавление предопределенных группировок колонок отчета. // Необходимо вызывать для каждой добавляемой группировки колонки. // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("НаборБукавок"); // Добавление предопределенных полей порядка отчета. // Необходимо вызывать для каждого добавляемого поля порядка. // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьПорядок("НаборБукавок.СортировкаДляОтчета"); // Установка связи подчиненных и родительских полей // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>); // Установка связи полей и измерений // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>); // Установка представлений полей УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); // Установка типов значений свойств в отборах отчета УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора(); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); // Добавление дополнительных полей // Необходимо вызывать для каждого добавляемого дополнительного поля. // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>); КонецПроцедуры // УстановитьНачальныеНастройкиУпр() Спасибо большое всем! И все таки не получается у меня :(( Подскажите пожалуйста как добраться до ДатаНач и ДатаКон, что бы в них передавалась дата. По аналогии смотрел в базовые конфигурации там они объявляются как перем мДатаНачалаПериода (например так) . |
|||
30
airyashov
26.03.12
✎
18:05
|
Парам = Новый Структура;
Запись.Вставить("ДатаНач", ДатаНачала); Запись.Вставить("ДатаКон", ДатаКонца); УниверсальныйОтчет.ПостроительОтчета.Параметры=Парам; |
|||
31
LexaSS
27.03.12
✎
09:26
|
Спасибо, он ругается на ДатаНачала: параметр не определен.Я извиняюсь за столь глупый вопрос НО как задать ему параметр дата? В отчете поле дата идет как УниверсальныйОтчет.ДатаНач, про бывал шаманить не получается.
Мне кажется или через регистр было бы куда проще передать параметр дата в запрос :( Help! :( |
|||
32
Axel2009
27.03.12
✎
10:12
|
книжки иди читай. уже сколько раз сказали как параметр устанавливать
|
|||
33
LexaSS
27.03.12
✎
11:02
|
Процедура УстановитьНачальныеНастройкиУпр(ДополнительныеПараметры = Неопределено)
// Дополнительные параметры, переданные из отчета, вызвавшего расшифровку. // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована // для реализации специфичных для данного отчета параметрических настроек. // Описание исходного текста запроса. ТекстЗапроса = "ВЫБРАТЬ | ДляОбщегоОтчетаСводка.Ссылка КАК Документ, | ДляОбщегоОтчетаСводка.Участки, | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя, | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц |{ВЫБРАТЬ | Документ.*, | Участки.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИЗ | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка |ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления) |{ГДЕ | ДляОбщегоОтчетаСводка.Ссылка.*, | ДляОбщегоОтчетаСводка.Участки.*, | ДляОбщегоОтчетаСводка.КоличествоОтклонений, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя, | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц} |{УПОРЯДОЧИТЬ ПО | Документ.*, | Участки.*, | КоличествоОтклонений, | День, | Неделя, | Месяц} |ИТОГИ | ((СУММА(КоличествоОтклонений))/ РАЗНОСТЬДАТ(&ДатаНачала, &ДатаКонца, День)) КАК КоличествоОтклонений | |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | Участки.*, | КоличествоОтклонений, | День, | Неделя, | Месяц}"; Запрос.УстановитьПараметр("ДатаНачала",ДатаНач); Запрос.УстановитьПараметр("ДатаКонца",ДатаКон); // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Представления полей отчета. // Необходимо вызывать для каждого поля запроса. // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоНачальныйОстаток","Количество начальный остаток"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоПриход","Количество приход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоРасход","Количество расход"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОтклонения","Отклонения"); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ПроцентОтклонения","% Откл."); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоКонечныйОстаток", "Количество конечный остаток"); // Добавление показателей // Необходимо вызывать для каждого добавляемого показателя. // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОтклонений","Норма", Истина, "ЧЦ=15; ЧДЦ=0", "", ""); //УниверсальныйОтчет.ДобавитьПолеРесурс("ПроцентСкидки", "ВЫБОР КОГДА СтоимостьБезСкидокОборот = 0 ТОГДА 0 ИНАЧЕ (СтоимостьБезСкидокОборот - СтоимостьОборот) / СтоимостьБезСкидокОборот * 100 КОНЕЦ", "% скидки", // "ВЫБОР КОГДА СУММА(КоличествоПриход) = 0 ТОГДА 0 ИНАЧЕ (СУММА(КоличествоПриход) / СУММА(КоличествоОтклонения) * 100 КОНЕЦ"); // Чтобы не суммировались проценты // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Участки"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("День"); // Добавление предопределенных группировок колонок отчета. // Необходимо вызывать для каждой добавляемой группировки колонки. // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("Участки"); // Добавление предопределенных полей порядка отчета. // Необходимо вызывать для каждого добавляемого поля порядка. // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьПорядок("Участки.СортировкаДляОтчета"); // Установка связи подчиненных и родительских полей // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>); // Установка связи полей и измерений // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>); // Установка представлений полей УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); // Установка типов значений свойств в отборах отчета УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора(); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); // Добавление дополнительных полей // Необходимо вызывать для каждого добавляемого дополнительного поля. // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>); КонецПроцедуры // УстановитьНачальныеНастройкиУпр() Да и так читаю, но все таки я установил ему параметры. Он мне отвечает так: {Отчет.ОбщийОтчет(61,6)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ДатаНачала",ДатаНач); {Отчет.ОбщийОтчет(62,9)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ДатаКонца",ДатаКон); {Отчет.ОбщийОтчет(61,45)}: Переменная не определена (ДатаНач) Запрос.УстановитьПараметр("ДатаНачала",<<?>>ДатаНач); {Отчет.ОбщийОтчет(62,47)}: Переменная не определена (ДатаКон) Запрос.УстановитьПараметр("ДатаКонца",<<?>>ДатаКон); Если ему объявить перменные типа: Перем ДатаНач; Перем ДатаКон; Ситуации не меняет. |
|||
34
TBoB
27.03.12
✎
11:25
|
Если это отчет, почему не передать дату из формы отчета? или где заполняются переменные ДатаНач и ДатаКон?.
|
|||
35
LexaSS
27.03.12
✎
11:27
|
{Отчет.ОбщийОтчет(64,4)}: Переменная не определена (Запрос)
<<?>>Запрос.УстановитьПараметр("ДатаНачала",УниверсальныйОтчет.ДатаНач); {Отчет.ОбщийОтчет(65,7)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ДатаКонца",УниверсальныйОтчет.ДатаКон); Это я ему указываю где вводятся даты на форме. |
|||
36
Jaffar
27.03.12
✎
11:41
|
(33) так он тебе по-русски и говорит - у тебя нет переменной Запрос - ты не можешь запихнуть в них параметры.
ЗЫ: "пробывал", "загвостка", "на клепал" - казёнил уроки русского языка в школе, или ЕГЭ еще не сдал? |
|||
37
TBoB
27.03.12
✎
11:49
|
Если используешь построитель то передавать параметры нужно через него.
|
|||
38
Vakhrin
27.03.12
✎
11:50
|
Если после этого не сможешь установить параметры, то бросай ты это дело и вали от 1C как можно дальше: http://vakhrin.com/SetDate.zip
|
|||
39
TBoB
27.03.12
✎
12:07
|
УниверсальныйОтчет.ЗаполнитьНастройки();
УниверсальныйОтчет.Параметры.ДатаНач=ДатаНач; УниверсальныйОтчет.Параметры.ДатаКон=ДатаКон; Может быть так? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |