|
Как определить количество дней в году если год имеет тип число? | ☑ | ||
---|---|---|---|---|
0
vralR
25.11.16
✎
11:00
|
в расчете среднего в больничном год расчета указан числом, тип - число.
как на скд прикрутить функцию ДЕНЬГОДА , она работает с типом дата, или по другому - как из поля с типом число получить дату и передать в ДеньГода чтоб узнать таки сколько дней в этом году? |
|||
1
DrShad
25.11.16
✎
11:04
|
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(), ДАТАВРЕМЯ(), ДЕНЬ)
|
|||
2
Serg_1960
25.11.16
✎
11:04
|
Как я понял, таки, вопрос банальный - о календарных днях? Тогда всё сводится к вопросу "високосный или нет этот год?"
|
|||
3
vralR
25.11.16
✎
11:07
|
ну да - пересчитать средний заработок,(365,366)
|
|||
4
h-sp
25.11.16
✎
11:09
|
(3) не надо переводить в дату, там алгоритм простейший. Если число делится на 4, значит год високосный, кроме 2000, он невисокосный.
|
|||
5
vralR
25.11.16
✎
11:09
|
(1) датавремя и разность работают с типом ДАТА а не с числом
|
|||
6
h-sp
25.11.16
✎
11:10
|
(3) для расчета среднего 2000й вам не потребуется, значит просто делите на 4.
|
|||
7
mkalimulin
25.11.16
✎
11:11
|
(0) Добавить еще два числа: 12 и 31.
|
|||
8
h-sp
25.11.16
✎
11:11
|
(1) не прокатит, в Датавремя() должны быть константы.
|
|||
9
vralR
25.11.16
✎
11:17
|
теперь другая заморочка СКД - как найти остаток от деления (
|
|||
10
DrShad
25.11.16
✎
11:22
|
(5) наверное для тебя это будет новость, но ДАТАВремя() работает с числом
указывай ДатаВРЕМЯ(год, месяц, день, ....) и все будет |
|||
11
mkalimulin
25.11.16
✎
11:23
|
(9) должно быть %
|
|||
12
h-sp
25.11.16
✎
11:28
|
(10) Литерал типа ДАТА записывается в виде:
ДАТАВРЕМЯ ( <Целое число>, <Целое число>, <Целое число>[, <Целое число>, <Целое число>, <Целое число>] ) Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно. Максимальная дата которую возможно задать при помощи литерала ДАТАВРЕМЯ – 31.12.3999 23:59:59. только числа можно указывать в параметрах. Переменная не взлетит. |
|||
13
vralR
25.11.16
✎
11:31
|
(12) вово -датавремя не работает с параметрами и полями, а у меня строка табличной части
|
|||
14
vralR
25.11.16
✎
11:32
|
(11) % - не для СКД
|
|||
15
newbling
25.11.16
✎
11:32
|
запрос по производственному календарю ;)
|
|||
16
Serg_1960
25.11.16
✎
11:36
|
"Пошалим, малыш?" :)
ВЫБРАТЬ ДЕНЬГОДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 12, 31, 0, 0, 0), ГОД, &ГодЧислом - 1)) КАК СколькоДнейВГодуВПоследнийДеньГода |
|||
17
vralR
25.11.16
✎
11:43
|
(16) погорячился насчет параметров запроса, у меня
строка табличной части |
|||
18
vralR
25.11.16
✎
11:52
|
ПоследниеБЛ.РасчетСреднего2011.РасчетныйГод - (4 * ВЫРАЗИТЬ((ПоследниеБЛ.РасчетСреднего2011.РасчетныйГод / 4) - 0.5) КАК Число(15,0) ) ) - дает остаток от деления
|
|||
19
Serg_1960
25.11.16
✎
12:05
|
(17) Без разницы. Сгодится даже дробное число (отбрасывается).
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ДЕНЬГОДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 12, 31, 0, 0, 0), ГОД, ГОД(СотрудникиОрганизаций.ДатаПриемаНаРаботу) - 1)) КАК ДнейВГодПриемаНаРаботу |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.Наименование = ""Иванов Иван Иванович (осн.)"""; |
|||
20
Serg_1960
25.11.16
✎
12:27
|
(18) Последний шаг :)
"ВЫБРАТЬ | ВЫБОР | КОГДА ПоследниеБЛ.РасчетСреднего2011.РасчетныйГод / 4 = (ВЫРАЗИТЬ(ПоследниеБЛ.РасчетСреднего2011.РасчетныйГод / 4 КАК ЧИСЛО(15, 0))) | ТОГДА 366 | ИНАЧЕ 365 | КОНЕЦ КАК ВсегоДнейВГоду"; |
|||
21
Serg_1960
25.11.16
✎
12:29
|
PS: открой для себя округление в запросе - http://tinyurl.com/ybqre2s :))
|
|||
22
vralR
25.11.16
✎
15:18
|
(21) последний шаг преодолел сам :) , а про округление - почитаю все одно - сенькю
|
|||
23
kumena
25.11.16
✎
15:31
|
какие то сложности у вас не понятные, соединение к производственному календарю очень просто решает проблему.
|
|||
24
Vladal
25.11.16
✎
15:41
|
(23) Не во всех конфигурациях есть этот РС.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |