Имя: Пароль:
1C
1С v8
Работа с запросами в операндах 1с УХ
0 Yunniy_Proger
 
22.03.24
11:49
Добрый день, ситуация следующая, работаю с операндами в 1С:УХ , есть некая формула, итог которой делится на количество дней текущего месяца. Запросом из справочника "периоды" тяну окончание месяца, пробовал привезти к числу через разность дат, не сработало. При формирование экземпляра отчета ругается , что пытаюсь делить число на дату. Вопрос такой, есть ли возможно привести дату к типу число?
Вот сам запрос:
ВЫБРАТЬ
    (ДЕНЬ(Периоды.ДатаОкончания) - ДЕНЬ(Периоды.ДатаНачала)) / 86400 КАК ДатаОкончания
ИЗ
    Справочник.Периоды КАК Периоды
ГДЕ
    НАЧАЛОПЕРИОДА(Периоды.ДатаНачала, ДЕНЬ) = &ДатаНачала
    И КОНЕЦПЕРИОДА(Периоды.ДатаОкончания, ДЕНЬ) = &ДатаОкончания


Вот ошибка при формирование экземпляра:

Ошибка вычисления формулы: "Результат = ?(дата(1,1,1)=0,0,?((397420252.97 + 393673852.34)  / 2=0,0,(24061146.14 + 43708851.14) / ((397420252.97 + 393673852.34)  / 2 ) * 100) / дата(1,1,1))"    

Вот отборы, которые выставляю
https://ibb.co/XyfymhQ
1 Галахад
 
22.03.24
11:57
Непонятно при чем тут запрос, если проблема в формуле.

P.S. Порицаю за такие формулы.
2 Yunniy_Proger
 
22.03.24
11:59
(1) Проблемы в формуле нет, так как если вместо запроса выставлять число 30 или 31 , то все работает
3 Yunniy_Proger
 
22.03.24
12:00
(1) дата(1,1,1) , мне нужно ,чтобы этого в формуле не было, меня интересует, как привести дату к типу число и возможно ли вообще это в контексте запроса.
4 АгентБезопасной Нацио
 
22.03.24
12:01
(2) так запрос-то у тебя не скалярный...
5 FIXXXL
 
22.03.24
12:02
(0)  / дата(1,1,1)
ну дык ты и делишь на дату
6 Yunniy_Proger
 
22.03.24
12:04
(5) Ну так и вопрос в том, как мне дату привести к числу
7 АгентБезопасной Нацио
 
22.03.24
12:14
(6) "Используй РазностьДат(,,ДЕНЬ), юный падаван!"© Йода
8 Гена
 
22.03.24
12:23
(7) О, мудрый Йода, количество календарных дней месяца равно последнему дню этого месяца в числовом формате.
Например,
День(КонецМесяца(ТекущаяДата()))
9 АгентБезопасной Нацио
 
22.03.24
12:34
(8) Гениально! я скажу истчо одно гениальное наблюдение: у всех месяцев первый день имеет в числовом формате значение 1. Поразительно, правда? - так одинаково начинаются, и так по-разному заканчиваются... <тут должна быть притча Лао-цзы об изменчивости...>
Беда только в том, что жизнь длинна, задачи различны, и период отчета может быть не равный месяцу...
10 Yunniy_Proger
 
22.03.24
12:48
(7) Спасибо учитель, но как я написал ранее, разность дат не прокатывает
11 Волшебник
 
22.03.24
12:49
(9) Есть календари с одинаковым количеством дней в месяцах, например
wiki:Международный_фиксированный_календарь
в каждом месяце ровно 4 недели (28 дней);
12 АгентБезопасной Нацио
 
22.03.24
12:59
(10) Йода не учитель, йода магистр...
В чем заключается "непрокатываемость"?
Я не работал "с операндами в УХ", но почему не оттрассировать то, что дает запрос, и как он преобразовывает.  Странно, что запрос возвращает таблицу, причем с названием колонки как у параметра (может, тип берет от параметра, а значение из запроса?), а из нее берется скалярное значение...
13 АгентБезопасной Нацио
 
22.03.24
13:00
(11) сразу вспоминается автомат для бритья... "у всех лица, конечно, разные - но только при первом бритье"©
14 RVN
 
22.03.24
13:01
(0) У тебя параметр типа дата и твое поле имеют одинаковое название. Вот он и глючит.
Запрос:
ВЫБРАТЬ
    РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ДЕНЬ) КАК ДнейВМесяце


А в формуле дели на "ДнейВМесяце"
15 Yunniy_Proger
 
22.03.24
13:08
(14) Спасибо большое, вот все так и было, как ты и написал
16 Yunniy_Proger
 
22.03.24
13:12
(12) Спасибо за помощь, все так, из-за одинаковых наименований...
17 Garykom
 
22.03.24
14:29
(11) Может просто орбиту (и скорость вращения с наклонением) Земли подправить?
18 Волшебник
 
22.03.24
14:38
(17) Это слишком банально. Мы не ищем лёгких путей.
AdBlock убивает бесплатный контент. 1Сергей