Имя: Пароль:
1C
1С v8
КАК РазнстьДат в запросе выразить как стоку?
0 Maveric 112
 
27.09.12
06:25
Всем привет!:)
Нужно в запросе сформировать строковое поле, с текстом и вычисляемыми полями, при попытке добаления строки с функцией РАЗНОСТЬДАТ() выдает "несовместимые типы "ВЫРАЗИТЬ" "
Пример кода:

ВЫРАЗИТЬ(РАЗНОСТЬДАТ(ВЫБОР
       КОГДА НачислениеАренднойПлаты.ДатаНачала <= НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ)
               ИЛИ НачислениеАренднойПлаты.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           ТОГДА НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ)
       ИНАЧЕ НачислениеАренднойПлаты.ДатаНачала
   КОНЕЦ, ДОБАВИТЬКДАТЕ(ВЫБОР
           КОГДА НачислениеАренднойПлаты.ДатаОкончания > КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ)
                   ИЛИ НачислениеАренднойПлаты.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
               ТОГДА КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ)
           ИНАЧЕ НачислениеАренднойПлаты.ДатаОкончания
       КОНЕЦ, ДЕНЬ, 1), ДЕНЬ) КАК СТРОКА)
Подскажите что я делаю не так?
1 ILM
 
гуру
27.09.12
06:29
Правильно выдает. Типы не преобразуются в запросах.
Нельзя число в строку, дату в строку.
Ну или практически нельзя, без большого извращения.
Например, такого как:

ВЫБОР
КОГДА ГОД(Дата)=2012 ТОГДА "2012"
И т.д.

Напиши на 365/366 дней в году "ВЫБОР" и будет счастье.
2 olegves
 
27.09.12
09:23
(0) 1C тебе не Скуль, чтобы конвертировать разные типы. Ее этому пока не научили.
3 Maxus43
 
27.09.12
09:26
(2) по инсайдерской информации - и не научат, есть ряд причин у разрабов
Закон Брукера: Даже маленькая практика стоит большой теории.