Имя: Пароль:
1C
1С v8
Не получается вычислить среднее
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
УниверсальныйОтчет.ЗаполнитьНастройки();
УниверсальныйОтчет.Параметры.ДатаНач=ДатаНач;
УниверсальныйОтчет.Параметры.ДатаКон=ДатаКон;

Может быть так?