Имя: Пароль:
1C
 
СКД: создание отчета, добавить новую колонку с вычислением
0 Arond
 
12.09.09
12:08
создание отчета, добавить новую колонку с вычислением

Доброго времени суток, вопрос, конечно, может для многих показаться элементарным, но прошу уделить немного времени.
Цель у меня такая: в отчет добавить колонку, в которую будет выводиться  разность дат, в числовом формате (к примеру, 10.10.09 – 03.10.09 = 7). Данные берутся из запроса в СКД.
В конструкторе запроса задал &КоличествоДней, но при попытки описать формулу расчета данной переменно, получил ошибку. Может быть, я не в том месте пытаюсь выполнить  эту задачу?
Заранее благодарен за ответ.
p.s. сильно не ругайте, я только учусь..
1 Vitello
 
12.09.09
12:15
Вычисляй лучше сразу в запросе. См. РазностьДат.
Про параметр КоличествоДней не понял...
2 Arond
 
15.09.09
08:30
to Vitello: по количеству дней, создал данную переменную для того, чтобы, добавить новую  пустую колонку в отчет, как я понял это делается так, с условием того, что  все  делается в схеме компоновки данных. Даты берутся из табличной части с параметрами отчета. собственно эта самая колонка и должна быть заполнена.
3 Vitello
 
15.09.09
09:04
>Даты берутся из табличной части с параметрами отчета
это как?

Показывай как делал.
4 hhhh
 
15.09.09
09:04
(2) ну так и заполняй ее в запросе, чего ты откладываешь на потом. Даты у тебя в запросе есть, функция РАЗНОСТЬДАТ() тоже.
5 Arond
 
15.09.09
11:30
Выглядит это так,в  схеме компановки данных:
ВЫБРАТЬ
   ДоговорЗайма.Агент,
   ДоговорЗайма.Договор,
   ДоговорЗайма.Сумма,
   ДоговорЗайма.Дата,
   ДоговорЗайма.ДатаНачала,
   ДоговорЗайма.ДатаОкончания,
   &КоличествоДней
ИЗ
   Документ.ДоговорЗайма КАК ДоговорЗайма
ГДЕ
   ДоговорЗайма.Дата < &КонецПериода
   И ДоговорЗайма.ДатаОкончания > &НачалоПериода

&КонецПериода и &НачалоПериода    берется из табличного поля в форме отчета. где тип данных КомпоновщикНастроек.Настройки.ПараметрыДанных.
Так вот, я не знаю как мне в запросе (компоновщика), рассчитать данные для &КоличествоДней, ещё и условие нужно будет ставить, чтобы в разных ситуациях по разному рассчитывалось, меня терзают сомнения, что в   компоновщике это возможно выполнить.
да и учитывая мой опыт. Надо ещё понять как именно это делать.
6 IronDemon
 
15.09.09
11:41
РазностьДат(&НачалоПериода,&КонецПериода,"День")+1
7 Arond
 
15.09.09
13:18
to  IronDemon:
поместил ОсновнаяСхемаКопоновкиДанных - Параметры - Выражение. Помогло, спасибо огромное.
Но задача, так и не решена. Нужно создать некое условие, как я смог понять, КоличествоДней высчитывается по- разному в зависимости от того в каких границах находится документ. Скажем так, если ДоговорЗайма.ДатаНачала находится в рамках периода, а ДоговорЗайма.ДатаОкончания нет, то расчет будет
РазностьДат(ДоговорЗайма.ДатаНачала,&КонецПериода,"День")+1, если ДоговорЗайма.ДатаОкончания в рамках периода, то РазностьДат(ДоговорЗайма.ДатаНачала,ДоговорЗайма.ДатаОкончания,"День")+1, и т.д. получается 4 варианта расчета.
И я не знаю, как мне  провести эти условия, в Компоновщике.

Буду ждать Вашего ответа. Заранее спасибо!
8 IronDemon
 
15.09.09
13:27
(7) Параметры тут не причем. Нужно в запросе проверять эти условия.
9 Arond
 
16.09.09
11:27
to IronDemon:
РезультатЗапроса = Запрос.Выполнить();
   Если не РезультатЗапроса.Пустой() Тогда
//тут условия в которых и будет браться та, или иная РазностьДат        
   КонецЕсли;
правельно понимаю ?

Тогда другой немного вопрос, может я просто запутался, как мне в запросе указать, что &НачалоПериода и КонецПериода берутся из табличного поля?
10 Arond
 
18.09.09
08:28
Попробовал провести в запросе, на что мне было сказано: «Не найдена процедура или функция: РазностьДат»,  теперь запутался окончательно..
11 Vitello
 
18.09.09
09:44
(10)Здрасте...
Версия платформы?
12 Arond
 
18.09.09
14:14
to Vitello: 1c8.1
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс