Имя: Пароль:
1C
1С v8
Настройка отчета СКД
0 Oleg102
 
22.07.13
07:32
Здравствуйте! Есть конфигурация самонаписаная введения учета по общежитию. Сделал отчет по проживающим в общежитие через СКД. Где есть такие колонки как "Дата заселения" и "Дата выселения", от которых считается сколько дней прожил человек и на какую сумму. Так вот дата выселения не ставится, а ставится она по факту выезда. Так вот мне надо что бы когда я формирую отчет, что бы в пустую колонку проставлялась дата "Конца периода" которая устанавливается в настройках при формировании отчета. Если значение пусто то ставить дату конца периода. Если не пуста и стоит дата выезда то пропускать. Как это возможно сделать? Подскажите пожалуйста.
1 Wobland
 
22.07.13
07:33
выбор когда?
а что такое пропускать?
2 Лодырь
 
22.07.13
07:33
В теле запроса сверка даты выезда с пустой датой (или нулом), в случае незаполненности менять на значение параметра переданного в запрос.
3 Godofsin
 
22.07.13
07:34
Заводишь свой реквизит, в выражении епишешь что-то вроде:
Если датаЗаселения = null тогда МойРеквизит = КонецПериода иначе МойРеквизит = датаЗаселения КонецЕсли;
4 Oleg102
 
22.07.13
07:36
(3) ААА понял вроде. Сейчас попробую. вскоре отпишу
5 Oleg102
 
22.07.13
07:39
Сделал свой реквизит в и сделал так

ВЫБОР
   КОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания ЕСТЬ НЕ NULL ТОГДА КонецПериода
   ИНАЧЕ СведенияОДоговорахСрезПоследних.ДатаОкончания
КОНЕЦ

Только ругается на конец периода.
6 Wobland
 
22.07.13
07:39
(5) &
7 Godofsin
 
22.07.13
07:39
(5) Ну дык он не знает о "КонецПериода"
8 Godofsin
 
22.07.13
07:40
(5) И условие проверь, неправильно оно
9 Wobland
 
22.07.13
07:40
ДатаОкончания ЕСТЬ НЕ NULL
ДатаОкончания НЕ ЕСТЬ NULL
НЕ ДатаОкончания ЕСТЬ NULL
10 Oleg102
 
22.07.13
07:41
Всем спасибо. Все получилось

ВЫБОР
   КОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания ЕСТЬ НЕ NULL ТОГДА &КонецПериода
   ИНАЧЕ СведенияОДоговорахСрезПоследних.ДатаОкончания
КОНЕЦ

Все заработало. Благодарю
11 Лодырь
 
22.07.13
07:41
(9) хочешь запутать юного подована?
12 Wobland
 
22.07.13
07:43
(11) выпутавшись, падаван шаг сделает к джедайству семимильный
13 Oleg102
 
22.07.13
07:44
=))))
14 Лодырь
 
22.07.13
07:47
(12) шаг он не сделает. темная сторона силы уже довлеет на ним. условие неверное выбрал он.
15 MiniMuk
 
22.07.13
07:47
Естьnull(СведенияОДоговорахСрезПоследних.ДатаОкончания, &КонецПериода) не?
16 Oleg102
 
22.07.13
07:50
Да да ребята! уже смотрю не верное. Он ставит везде теперь дату конец периода. А у меня есть уже в некоторых документах дата выезда. как мне это исправить
17 Wobland
 
22.07.13
07:52
(16) выбор когда?
18 Oleg102
 
22.07.13
07:54
Выбор когда почему то не работает. Правильно не работает.
19 Oleg102
 
22.07.13
07:56
(15) не проставляет дату конца периода где её нету
20 MiniMuk
 
22.07.13
07:57
(10) Дык правильно не работает, когда дата окончания заполнена выводить текущий период, а иначе выводить дату окончания которая собтвенно нул
21 Wobland
 
22.07.13
07:58
(18) выбор когда всегда работает правильно, не ври
22 Oleg102
 
22.07.13
07:59
(21) Почему то везде проставляет дату конца периода. даже там где уже стоит дата окончания по документу.
23 Лодырь
 
22.07.13
08:01
(22) Потому что у тебя так условие прописано.
24 MiniMuk
 
22.07.13
08:02
(22) так у тебя в условии ....ДатаОкончания ЕСТЬ НЕ NULL ТОГДА &КонецПериода
тоесть когда датаокончания не нул поставить конецпериода!!!
25 Mitriy
 
22.07.13
08:02
Совсем человека запутали... значение даты у него пустая дата, а не нул - это во-первых, а во-вторых есть Вычисляемые поля и Параметры...
26 Лодырь
 
22.07.13
08:03
(25) У нас благородная цель. Смотри (12)
27 MiniMuk
 
22.07.13
08:04
(25) Ты телпат?  и знаешь что у него дата точно не нул?
28 Mitriy
 
22.07.13
08:06
(27) судя по (0) надо очень извращенно извернуться, чтобы получить нул в дате выселения...
29 Mitriy
 
22.07.13
08:07
даже если нул, все равно все легко решается через выражение в вычисляемых полях СКД...
30 Oleg102
 
22.07.13
08:10
ВЫБОР
   КОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания ЕСТЬ НЕ NULL
       ТОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания
   ИНАЧЕ &КонецПериода
КОНЕЦ
31 Oleg102
 
22.07.13
08:10
Не хочет проставлять где нет даты КонецПериода.
32 Лодырь
 
22.07.13
08:12
(31) А она вовсе не NULL. Мы уже писали выше что необходимо сравнение с "нулевой" датой.
33 Wobland
 
22.07.13
08:13
+(32) то есть, с первым числом первого месяца первого года
34 Oleg102
 
22.07.13
08:13
Это как?
35 Лодырь
 
22.07.13
08:15
(34) В смысле как? Ты сравнивать даты умеешь? Вот и сравни.

Представь что это не дата, а число. Тогда кроме того, что оно может быть NULL, оно может быть нулем. Вот у тебя точно такая же ситуация, только с датой.
36 Wobland
 
22.07.13
08:16
(34) датавремя(что?)
37 Oleg102
 
22.07.13
08:16
ВЫБОР   КОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания <> ДАТАВРЕМЯ(1,1,1,0,0,0)    
ТОГДА СведенияОДоговорахСрезПоследних.ДатаОкончания  
ИНАЧЕ &КонецПериода
КОНЕЦ
38 Oleg102
 
22.07.13
08:16
так?
39 Wobland
 
22.07.13
08:16
(38) а на этот вопрос ты найдёшь ответ, запустив отчёт
40 Oleg102
 
22.07.13
08:20
Работает =) только не считает. у меня исходя из даты высчитывает количество дней. Сейчас стоит такое.
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ), ДЕНЬ) + 1
41 Лодырь
 
22.07.13
08:21
(40) Ну так напрягись и перепиши и это выражение.
42 Oleg102
 
22.07.13
08:22
Надо сделать выбор так же
43 Wobland
 
22.07.13
08:23
(42) благословляю
44 Oleg102
 
22.07.13
08:27
ВЫБОР
   КОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ), ДЕНЬ) + 1 ЕСТЬ НЕ NULL
       ТОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ), ДЕНЬ) + 1
   ИНАЧЕ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ), ДЕНЬ) + 1
КОНЕЦ
45 Oleg102
 
22.07.13
08:28
Спасибо Вам большое! Что направили на пусть истинный! Юный подаван, получил опыт. =)
46 Wobland
 
22.07.13
08:29
(44) опять нулл? да и не обязательно заниматься вычислениями в условии
47 Oleg102
 
22.07.13
08:31
А что тогда проставить. а то он ругается у меня что типа <<?>>
48 Wobland
 
22.07.13
08:33
редкие ошибки не содержат в тексте всего нужного для их разрешения
49 Oleg102
 
22.07.13
08:57
ВЫБОР
   КОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ), ДЕНЬ) + 1 >0
       ТОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ), ДЕНЬ) + 1
   ИНАЧЕ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ), НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ), ДЕНЬ) + 1
КОНЕЦ
50 Oleg102
 
22.07.13
08:57
так правильно будет ">0"
51 Лодырь
 
22.07.13
08:58
Блин, не извращайся, убери выбор внутрь разности дат.