Имя: Пароль:
1C
1С v8
как отнять от даты 1 день
🠗 (Волшебник 25.09.2013 11:31)
, ,
0 LivingStar
 
25.09.13
08:13
Как отнять от даты 1 день?
1 Лодырь
 
25.09.13
08:14
Дата-24*60*60
2 LivingStar
 
25.09.13
08:15
(1) проще ничего нет? до такого же не додуматься сходe....
3 Mikeware
 
25.09.13
08:15
оно продолжает отжигать...
4 LivingStar
 
25.09.13
08:15
(1) или привыкать?
5 Лодырь
 
25.09.13
08:15
(2)Дата - 86400
6 LivingStar
 
25.09.13
08:16
(5) в (1) доходчивее!
7 Лодырь
 
25.09.13
08:16
(6) Зато в (5) проще
8 Любопытная
 
25.09.13
08:17
Почему ТС в гугле уже забанили, а здесь до сих пор нет?
9 zva
 
25.09.13
08:18
а если дата нулевая, отрицательный день получится
10 Нуф-Нуф
 
25.09.13
08:18
8 лет так то на форуме...
11 MatrosoV AleXXXand_R
 
25.09.13
08:18
ДОБАВИТЬКДАТЕ(&НачальнаяДата, ДЕНЬ, -1)
12 Нуф-Нуф
 
25.09.13
08:19
Если возраст это плата да мудрость, то автора тупо кинули
13 Лодырь
 
25.09.13
08:20
(11) Зараза, я хотел это на сладкое оставить.
14 LivingStar
 
25.09.13
08:23
(11) Это я не смог применить, пишет переменная не определена День, вот и задал вопрос, не найдя ничего поиском.
15 Privalov
 
25.09.13
08:27
(14) Лентяй.
16 Лодырь
 
25.09.13
08:28
(15) Да нифига, лентяй это я. Мне лень всякую фигню спрашивать.
17 MiniMuk
 
25.09.13
08:29
(0) А где отнять, в коде 1с, в запросе, на календаре?
18 el7cartel
 
25.09.13
08:31
(0) 86400 это количество секунд...
19 Algiz
 
25.09.13
08:33
(14) ДЕНЬ в кавычки возьми
20 alxxsssar
 
25.09.13
09:04
(19) Не надо в кавычки. Параметр НачальнаяДата какого типа?
21 Ненавижу 1С
 
гуру
25.09.13
09:08
(19) да он тупо в коде, а не в запросе пытается это выполнить
22 catena
 
25.09.13
09:09
(19)Хитрый план запутать человека окончательно, чтобы бросил наконец копаться в пофигураторе?
23 MSII
 
25.09.13
09:15
(16) Ты не лентяй, ты лодырь.
24 LivingStar
 
25.09.13
10:00
(19) пробовал, выдает другую ошибку
(20) Типа дата время наверное, это дата документа
25 mikecool
 
25.09.13
10:05
вроде не пятница,  а автор продолжает радовать
зы: точно ники продаются...
26 Infsams654
 
25.09.13
10:06
(21) можно сделать голосовалку:
в коде или в запросе пытается это выполнить
27 Algiz
 
25.09.13
10:23
(22) мейби :)
(24) а код то где пишется?
28 1С 8 3
 
25.09.13
10:41
(0)
1-ый вариант
ПредыдущийДень = ТекущаяДата() - 60 * 60 * 24;

2-ой вариант
Функция ПолучитьДень(ИсходнаяДата, КоличествоПрибавляемыхДней)

      Запрос = Новый Запрос("
      |ВЫБРАТЬ
      |ДОБАВИТЬКДАТЕ(&ИсходнаяДата, ДЕНЬ, &Количество) как Дата");
      Запрос.УстановитьПараметр("ИсходнаяДата", ИсходнаяДата);
      Запрос.УстановитьПараметр("Количество", КоличествоПрибавляемыхДней);

      Возврат(Запрос.Выполнить().Выгрузить()[0].Дата);

КонецФункции

Пример результата -

ПолучитьДень('20052802', 10) = 10.03.2005 0:00:00
29 dva1c
 
25.09.13
10:47
(24) Да-а... "Стыдно" должно быть.
Обучу пользоваться поиском на мисте. ))
30 LivingStar
 
25.09.13
10:50
(28) Спасибо!!!
31 Infsams654
 
25.09.13
10:53
(21) не, оказывается в запросе
32 Chai Nic
 
25.09.13
10:55
(28) Дергать sql-сервер для получения предыдущего дня - жестоко)
33 LivingStar
 
25.09.13
11:00
(31) Параметр я в запрос передавал, то есть в коде, воспользовался (1)
34 LivingStar
 
25.09.13
11:04
(11) Значит это работает только в запросе!!!

А что бы получить предыдущий месяц для этого есть встроенная функция !!!!
35 Aprobator
 
25.09.13
11:08
ТС, как всегда, отжигает.
36 Aprobator
 
25.09.13
11:09
(8) +100500.
37 Infsams654
 
25.09.13
11:10
(34) о как, в теме "Отнять от даты 1 день", при чем тут месяц. "встроенная функция !!!!" - сразу Лодырь в (1) написал: Дата-24*60*60.
Если надо месяц - покажи, как сообразишь на месяц
38 LivingStar
 
25.09.13
11:14
(37) ДобавитьМесяц(Дата, -1)
В (1) это как один из вариантов, так как нет встроенной!
39 Любопытная
 
25.09.13
11:17
(38)Это что за ДобавитьМесяц?
40 Trotter
 
25.09.13
11:18
а в 1С есть функция (определить количество в месяце в зависимости от года ?)
41 Trotter
 
25.09.13
11:19
(60)количество дней в месяце *
42 mistеr
 
25.09.13
11:19
(35) Просто мисту читать интереснее, чем СП. СП скучный, а форум интерактивный.

Более того, предположу, что многие готовы платить (копейки) за то,что бы их тут развлекали. Это уже Волшебнику идея.
43 ASU_Diamond
 
25.09.13
11:21
(1) будь проще
НачалоДня(НачалоДня(Дата)-1)
44 ASU_Diamond
 
25.09.13
11:23
(40) День(КонецМесяца(Дата))
45 LivingStar
 
25.09.13
11:23
(39) это ставите в дата начало месяца, и в ДобавитьМесяц(Дата, -1) получаете первую дату предыдущего месяца !
46 V_V_V
 
25.09.13
11:24
Всегда поражало как на Мисте из банального вопроса может получиться такой ржачный топик...
47 Infsams654
 
25.09.13
11:25
(43) тут будет время последней секунды предыдущего дня, а ТС наверное просил, предыдущий день с сохранением времени
48 Любопытная
 
25.09.13
11:25
(45) нашла уже в СП.
49 LehhaK
 
25.09.13
11:26
ТС задался целью наполнить интернет ответами на простые тупые вопросы. Молодец!!! но ты опоздал. Это все УЖЕ есть в интернете :)
50 Desna
 
25.09.13
11:26
(32) а что с ним еще делать, на то он и сервер
51 Любопытная
 
25.09.13
11:26
(49) он просто не задается целью наполнить свою голову ответами. Зачем? Ведь все можно спросить на форуме)
52 LivingStar
 
25.09.13
11:29
можно ли от даты получить название месяца прописью ?
53 Лодырь
 
25.09.13
11:30
(52) Мы ЖДАЛИ этого вопроса!
54 Mikeware
 
25.09.13
11:30
(52) может, программиста наймешь?
55 LehhaK
 
25.09.13
11:31
(52) Тебе когда следующее ТЗ дадут, ты его просто сюда пости. Мы за тебя решим.
56 Godofsin
 
25.09.13
11:31
смешная ветка
57 UIV
 
25.09.13
11:32
(52) Можно.
58 LehhaK
 
25.09.13
11:32
+(57) я тоже не против. Запилите голосовалку
59 Любопытная
 
25.09.13
11:35
(52)Формат в СП почитай
60 Волшебник
 
модератор
25.09.13
11:35
(1) Лучше так:
Дата - 2^7*3^3*5^2
61 Jonny_Khomich
 
25.09.13
11:35
(51) да если бы люди не отвечали, он бы сюда вопросы не кидал.
А так ему тут комфортно.

А вообще может быть это какой-нибудь директор маленького предприятия, который хочет съэкономить на работе 1сника и поэтому тут задаёт вопросы, тогда он крутой чел.
62 Sammo
 
25.09.13
11:36
(52) Читай формат
63 LivingStar
 
25.09.13
11:36
Формат(ДатаВыборки, "ДФ='ММММ гггг'")
64 LehhaK
 
25.09.13
11:36
(61) Тогда он жадный тупой муdak
65 Любопытная
 
25.09.13
11:36
(61) по-моему, он работает во франче... или что-то подобное)
66 Infsams654
 
25.09.13
11:37
(52) в табло посмотри Формат(ТекущаяДата(), "ДФ = ММММ")
67 Лодырь
 
25.09.13
11:37
(63) Да нифига )

Темп = ПредставлениеПериода(НачалоМесяца(ИсходнаяДата),КонецМесяца(ИсходнаяДата)));
МесяцПрописью =  Лев(Темп,Найти(Темп,"")-1);
68 ASU_Diamond
 
25.09.13
11:38
(67) а ещё можно перебором, списком значения, массивом
69 Лодырь
 
25.09.13
11:39
(68) Запросом надо. Мы ж все ща в запросе делаем.
70 LehhaK
 
25.09.13
11:40
Если месяц = 1 тогда "январь"; иначеЕсли месяц =2 Тогда "февраль". По другому никак
71 Любопытная
 
25.09.13
11:42
(70) а если в родительном падеже?
72 ASU_Diamond
 
25.09.13
11:43
(70) у него в параметрах дата
73 ASU_Diamond
 
25.09.13
11:43
(71) Если месяц = 1 тогда "январь в родительном падеже"; иначеЕсли месяц =2 Тогда "февраль в родительном падеже"...
74 1С 8 3
 
25.09.13
11:44
(70) Можно по аналогии в массиве, вроде красивее

МойМассив = Новый Массив(8);
    
    МойМассив[0] = " ";
    МойМассив[1] = "Понедельник";
    МойМассив[2] = "Вторник";
    МойМассив[3] = "Среда";
    МойМассив[4] = "Четверг";
    МойМассив[5] = "Пятница";
    МойМассив[6] = "Суббота";    
    МойМассив[7] = "Воскресенье";
    
Сообщить(МойМассив[ДеньНедели(ТекущаяДата())]);
75 LehhaK
 
25.09.13
11:44
(71) Если родительныйПадеж и месяц = "январь" ТОгда месяц = "января" :)))
76 Лодырь
 
25.09.13
11:45
Эй.. Волшебник, почто ветку утопил?
77 LehhaK
 
25.09.13
11:45
(74) Это слишком просто
78 Лодырь
 
25.09.13
11:45
(74) Это индийский код какой то. не тру.
79 1С 8 3
 
25.09.13
11:47
(78) Это Радченко
80 LehhaK
 
25.09.13
11:47
Поднимите ветку! Классная же!!!
81 Лодырь
 
25.09.13
11:48
(79) Применимо к дням недели - возможно, но не к месяцу.
82 Sinus1984
 
25.09.13
12:02
Функция ДатаИНК(дата, КГод = 0, КМесяц = 0, КДень = 0)
    День =  60*60*24;
    Если КДень <> 0 Тогда
        Дата = Дата + День*КДень;
    КонецЕсли;
    Если КМесяц <> 0 Тогда
        Дата = ДобавитьМесяц(Дата, КМесяц);
    КонецЕсли;
    Если КГод <> 0 Тогда
        Дата = ДобавитьМесяц(Дата, КГод*12);
    КонецЕсли;
    Возврат Дата;        
КонецФункции
83 LivingStar
 
25.09.13
12:11
(82) Мощное оружие!!!
84 Aprobator
 
25.09.13
12:45
(79) какого года издания?
85 Infsams654
 
25.09.13
13:56
(82) оружие то мощное, но забываем, что если параметр функции заполнен не один, т.е., что сначала прибавлять, год или день.
Пример:
ДобавитьМесяц(Дата(2012, 2, 28) + 60*60*24, 12) = 28.02.2013

ДобавитьМесяц(Дата(2012, 2, 28) , 12) + 60*60*24 = 01.03.2013
86 Infsams654
 
25.09.13
17:45
(85) не врубились?
прибавили сначала день потом год
ДобавитьМесяц(Дата(2012, 2, 28) + 60*60*24, 12) = 28.02.2013

прибавили сначала год потом день
ДобавитьМесяц(Дата(2012, 2, 28) , 12) + 60*60*24 = 01.03.2013
Программист всегда исправляет последнюю ошибку.