Имя: Пароль:
1C
1С v8
Соединить две даты в запросе
0 Grand Жучара
 
24.12.13
13:43
Задача следующая: В запросе есть две даты: Дата1 и Дата2. Нужно, чтобы они выводились в одном поле в следующем виде

"Дата1 - Дата2", если они различны
"Дата1", если они совпадают


без часов, минут, секунд.

Пробовал через, ВЫРАЗИТЬ, пытался использовать функцию агрегатную функцию СоединитьСтроки.
Может быть можно через пользовательское поле?
1 PR
 
24.12.13
13:43
Никак.
2 Лодырь
 
24.12.13
13:44
(0) СКД? или чистый запрос?
3 Ненавижу 1С
 
гуру
24.12.13
13:45
(0) >>Может быть можно через пользовательское поле?
да
4 Wobland
 
24.12.13
13:45
спорим, не нужно?
5 Wobland
 
24.12.13
13:45
(4) *в запросе
6 olegves
 
24.12.13
13:54
(0) а кто мешает 2 отдельных поля использовать? Или первое - это разность дат?
7 Avganec
 
24.12.13
13:54
(0) выбор в запросе и должно работать
8 olegves
 
24.12.13
13:56
(7) только если оба привести к строке, но это преблематично, поскольку в 1-м случае - число
9 Wobland
 
24.12.13
13:57
(8) а где ты взял число?
10 Maxus43
 
24.12.13
13:58
ничо не понял. В запросах : РазностьДат спёрли? И НачалоПериода тоже спёрли? и ДобавитьКДате тоже спёрли?
11 selenat
 
24.12.13
14:00
(10) очевидно урезанный вариант платформы для бедных областей. Сильно урезанный.
12 Grand Жучара
 
24.12.13
14:06
(2) СКД, если в чистом виде нельзя
(3) Как?


Выбор
    Когда [Первая оплата] = [Последняя оплата]
        Тогда [Первая оплата]
    Иначе [Первая оплата] + " - " + [Последняя оплата] //вот на эту строку ругается
Конец


(6)(10) Никто не мешает. Пожелание пользователя: видеть не
Дата1    Дата2
25.06.2013    30.06.2013
15.10.2013    15.10.2013

а:

Период
25.06.2013 - 30.06.2013
15.10.2013

(7) ВЫБОР то работает, а вот как две даты склеить в запросе, да чтоб еще и без часов, минут, секунд?
13 Fragster
 
гуру
24.12.13
14:08
выражение представления
14 Fragster
 
гуру
24.12.13
14:08
как вариант попробовать Представление() заюзать
15 samozvanec
 
24.12.13
14:14
все не читал. выбор когда тогда предлагали?
16 Grand Жучара
 
24.12.13
14:16
(14) Ругается, пишет неверные параметры "+", если писать:

Выбор
    Когда [Первая оплата] = [Последняя оплата]
        Тогда [Первая оплата]
    Иначе Представление([Первая оплата]) + " - " + Представление([Последняя оплата])
Конец



Вот описание функции, которая казалось бы то что нужно! Но никак не пойму как ее используют)




СоединитьСтроки (JoinStrings)
Предназначена для объединения строк в одну строку.

Синтаксис:

СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

Параметры:

Значение - выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
РазделительЭлементов - строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию "; ".
Пример:

СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));
17 1Сергей
 
24.12.13
14:17
(14) не взлетит Представление() - возвращает "не совсем" строку :)
18 Wobland
 
24.12.13
14:18
(16) попробуй прочитать это что ли..
19 Fragster
 
гуру
24.12.13
14:20
(17) а я и не говорю юзать его в запросе. я говорю про выражение представления
20 Maxus43
 
24.12.13
14:23
я за запрос, всё там можносделать сразу. СКД конечно предоставляет другие пути
21 Wobland
 
24.12.13
14:23
(20) научи
22 Maxus43
 
24.12.13
14:25
ДобавитьКДате(это для дата1-дата2) + РазностьДат(это количество дней для добавить к дате) + НачалоПериода (это для без часов-минут)
23 MadHead
 
24.12.13
14:25
на сколько я знаю, в запросе не получится преобразовать дату в строку. Когда-то видел через ж вариант.
24 MadHead
 
24.12.13
14:26
(22) так автор судя по всему хочет преобразовать даты в строку и провести контантенацию строк
25 Maxus43
 
24.12.13
14:28
(24) он хочет неправильно просто, всё решается датами
26 Пеппи
 
24.12.13
14:28
тогда уж через вычисляемое поле чтоли попробовать, но я хз :)
27 Maxus43
 
24.12.13
14:30
стоп, он хочет просто выводить их? да, не читатель чукча, я думал реально вычитать из даты1 хочет дату2 :)
28 ЧеловекДуши
 
24.12.13
14:37
(0) Зачем? Зачем именно вместе и  одну строку? :)
29 Fragster
 
гуру
24.12.13
14:38
(28) человек делает представление периода
30 ЧеловекДуши
 
24.12.13
14:39
+(0)Так и выводи две даты в одну колонку :)
31 Fragster
 
гуру
24.12.13
14:39
я бы даже сказал ПредставлениеПериода
32 ЧеловекДуши
 
24.12.13
14:40
(29) Ага, увидел :)
Но безумные попытки все сунуть через запрос, как то бредовые...
Пользователь все ровно увидит только печатную форму, а не запрос :)
33 mickey1cx
 
24.12.13
14:59
Если СКД, добавляй вычисляемое поле:

Выбор
Когда Дата1 = Дата2 Тогда Формат(Дата1, "ДЛФ=Д")
Иначе
Формат(Дата1, "ДЛФ=Д")  + " - " + Формат(Дата2, "ДЛФ=Д")
Конец
34 bubuh
 
24.12.13
15:05
По идее в запросе допускается контактация строк
посмотрите в сторону
Выразить(Дата1 как строка(8))+" - "+Выразить(Дата2 как строка(8))
35 PR
 
24.12.13
15:06
(34) По идее не знаешь, не советуй.
36 bubuh
 
24.12.13
15:06
строка(10)
37 Пеппи
 
24.12.13
15:07
(36) в запросе дату в строку? Никак (
38 PR
 
24.12.13
15:08
(37) Только разве через дикий ВЫБОР.
39 olegves
 
24.12.13
15:09
(33) только для Дата1 = Дата2 надо добавить НачалоДня
40 Пеппи
 
24.12.13
15:09
(38) а вычисляемое поле не сойдет чтоли в СКД ?
41 bolobol
 
24.12.13
15:15
Первый столбец: всегда дата
Второй столбец: неопределено, когда даты равны, иначе " - "
Третий столбец: неопределено, когда даты равны, иначе вторая дата.

Всё просто! Талант +4 ))
42 bubuh
 
24.12.13
15:22
Сама по себе задача преобразования даты в строку показалась мне не травиальной, вот что у меня получилось, если навернуть туда еще контактацию и условие равности дат получится вобще сложно.
ВЫБРАТЬ
    ВЫБОР
        КОГДА д.Дата = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА "  "
        КОГДА ДЕНЬ(д.Дата) = 1
            ТОГДА "01"
        КОГДА ДЕНЬ(д.Дата) = 2
            ТОГДА "02"
        КОГДА ДЕНЬ(д.Дата) = 3
            ТОГДА "03"
        КОГДА ДЕНЬ(д.Дата) = 4
            ТОГДА "04"
        КОГДА ДЕНЬ(д.Дата) = 5
            ТОГДА "05"
        КОГДА ДЕНЬ(д.Дата) = 6
            ТОГДА "06"
        КОГДА ДЕНЬ(д.Дата) = 7
            ТОГДА "07"
        КОГДА ДЕНЬ(д.Дата) = 8
            ТОГДА "08"
        КОГДА ДЕНЬ(д.Дата) = 9
            ТОГДА "09"
        КОГДА ДЕНЬ(д.Дата) = 10
            ТОГДА "10"
        КОГДА ДЕНЬ(д.Дата) = 11
            ТОГДА "11"
        КОГДА ДЕНЬ(д.Дата) = 12
            ТОГДА "12"
        КОГДА ДЕНЬ(д.Дата) = 13
            ТОГДА "13"
        КОГДА ДЕНЬ(д.Дата) = 14
            ТОГДА "14"
        КОГДА ДЕНЬ(д.Дата) = 15
            ТОГДА "15"
        КОГДА ДЕНЬ(д.Дата) = 16
            ТОГДА "16"
        КОГДА ДЕНЬ(д.Дата) = 17
            ТОГДА "17"
        КОГДА ДЕНЬ(д.Дата) = 18
            ТОГДА "18"
        КОГДА ДЕНЬ(д.Дата) = 19
            ТОГДА "19"
        КОГДА ДЕНЬ(д.Дата) = 20
            ТОГДА "20"
        КОГДА ДЕНЬ(д.Дата) = 21
            ТОГДА "21"
        КОГДА ДЕНЬ(д.Дата) = 22
            ТОГДА "22"
        КОГДА ДЕНЬ(д.Дата) = 23
            ТОГДА "23"
        КОГДА ДЕНЬ(д.Дата) = 24
            ТОГДА "24"
        КОГДА ДЕНЬ(д.Дата) = 25
            ТОГДА "25"
        КОГДА ДЕНЬ(д.Дата) = 26
            ТОГДА "26"
        КОГДА ДЕНЬ(д.Дата) = 27
            ТОГДА "27"
        КОГДА ДЕНЬ(д.Дата) = 28
            ТОГДА "28"
        КОГДА ДЕНЬ(д.Дата) = 29
            ТОГДА "29"
        КОГДА ДЕНЬ(д.Дата) = 30
            ТОГДА "30"
        КОГДА ДЕНЬ(д.Дата) = 31
            ТОГДА "31"
    КОНЕЦ + "." + ВЫБОР
        КОГДА д.Дата = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА "  "
        КОГДА МЕСЯЦ(д.Дата) = 1
            ТОГДА "01"
        КОГДА МЕСЯЦ(д.Дата) = 2
            ТОГДА "02"
        КОГДА МЕСЯЦ(д.Дата) = 3
            ТОГДА "03"
        КОГДА МЕСЯЦ(д.Дата) = 4
            ТОГДА "04"
        КОГДА МЕСЯЦ(д.Дата) = 5
            ТОГДА "05"
        КОГДА МЕСЯЦ(д.Дата) = 6
            ТОГДА "06"
        КОГДА МЕСЯЦ(д.Дата) = 7
            ТОГДА "07"
        КОГДА МЕСЯЦ(д.Дата) = 8
            ТОГДА "08"
        КОГДА МЕСЯЦ(д.Дата) = 9
            ТОГДА "09"
        КОГДА МЕСЯЦ(д.Дата) = 10
            ТОГДА "10"
        КОГДА МЕСЯЦ(д.Дата) = 11
            ТОГДА "11"
        КОГДА МЕСЯЦ(д.Дата) = 12
            ТОГДА "12"
    КОНЕЦ + "." + ВЫБОР
        КОГДА д.Дата = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА "  "
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
            КОНЕЦ = 18
            ТОГДА "18"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
            КОНЕЦ = 19
            ТОГДА "19"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
            КОНЕЦ = 20
            ТОГДА "20"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
            КОНЕЦ = 21
            ТОГДА "21"
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА д.Дата = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА " "
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 0
            ТОГДА "0"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 1
            ТОГДА "1"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 2
            ТОГДА "2"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 3
            ТОГДА "3"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 4
            ТОГДА "4"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 5
            ТОГДА "5"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 6
            ТОГДА "6"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 7
            ТОГДА "7"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 8
            ТОГДА "8"
        КОГДА ВЫБОР
                КОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) > (ГОД(д.Дата) / 100 - ВЫБОР
                        КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                            ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                        ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                    КОНЕЦ) * 10
                    ТОГДА (ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                            КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ((ГОД(д.Дата) / 100 - ВЫБОР
                            КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) > ГОД(д.Дата) / 100
                                ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))) - 1
                            ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 100 КАК ЧИСЛО(3, 0))
                        КОНЕЦ) * 10 КАК ЧИСЛО(2, 0))
            КОНЕЦ = 9
            ТОГДА "9"
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА д.Дата = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА " "
        КОГДА (ГОД(д.Дата) / 10 - ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) > ГОД(д.Дата) / 10
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))
            КОНЕЦ) * 10 = 0
            ТОГДА "0"
        КОГДА (ГОД(д.Дата) / 10 - ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) > ГОД(д.Дата) / 10
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))
            КОНЕЦ) * 10 = 1
            ТОГДА "1"
        КОГДА (ГОД(д.Дата) / 10 - ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) > ГОД(д.Дата) / 10
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))
            КОНЕЦ) * 10 = 2
            ТОГДА "2"
        КОГДА (ГОД(д.Дата) / 10 - ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) > ГОД(д.Дата) / 10
                    ТОГДА (ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ГОД(д.Дата) / 10 КАК ЧИСЛО(4, 0))
            КОНЕЦ) * 10 =
43 dj_serega
 
24.12.13
15:23
Ну ты мочишь!
44 bolobol
 
24.12.13
15:24
Выносливость +20, не иначе))
45 bubuh
 
24.12.13
15:27
А что, если что то очень надо, то можно.
46 МихаилМ
 
24.12.13
15:30
(42)
прогрммисты от сохи - это страшно.
47 Grand Жучара
 
24.12.13
15:40
Господа! Вопрос закрыт

Про результатам обсуждения постановляется, что mickey1cx - красавчик

надо завести пользовательское поле типа выражение и в нем прописать и для детальных, и для итоговых записей:


Выбор
    Когда [Первая оплата] = [Последняя оплата]
        Тогда Формат([Первая оплата], "ДФ='dd.MM.yy'")
    Иначе Формат([Первая оплата], "ДФ='dd.MM.yy'") + "-" + Формат([Последняя оплата], "ДФ='dd.MM.yy'")
Конец
48 Grand Жучара
 
24.12.13
15:41
(42) Святые угодники..
49 Wobland
 
24.12.13
16:10
(47) можешь не благодарить