Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 сен 2021, 00:21

Проверка и изменение даты

Автор Ольга Золотухина, 31 мая 2018, 09:43

0 Пользователей и 1 гость просматривают эту тему.

Ольга Золотухина

Добрый день! Очень требуется помощь:trhregerhg:
Есть реквизит дата, определенная - 20.05.2018 (Дата 1 к примеру)
Необходимо сравнить её с текущей датой (датой 2, тоже для примера).
Пример:
1. если День Даты 1 менее Дня Даты 2,то Дата 3 = 20/текущий месяц/текущий год
2. если День Даты 1 более Дня Даты 2,то Дата 3 = 20/текущий месяц + 1/текущий год
День должен оставаться всегда 20. Как это реализовать?
Я в этом деле лузер, не программист, образования в этом направлении не имею.:dfbbdrfb:Но очень нужно.Помогите пожалуйста

pavl_vs

Например так.
Есть некая форма обработки, в которой есть поля Дата1 и Дата2, и есть кнопка "Сравнить даты", с которой связана процедура:
Процедура СравнитьДатыНажатие(Элемент)
// Вставить содержимое обработчика.
    //
ТекМесяц = Месяц(ТекущаяДата());
ТекГод   = Год(ТекущаяДата());
Если День(Дата1) < День(Дата2) Тогда
Дата3 = Формат(Дата(ТекГод,ТекМесяц,20), "ДЛФ=Д");
Сообщить(Дата3);
ИначеЕсли День(Дата1) > День(Дата2) Тогда
Дата3 = Формат(Дата(ТекГод,ТекМесяц + 1,20), "ДЛФ=Д");
Сообщить(Дата3);
КонецЕсли;
КонецПроцедуры


В сообщении будет требуемое, разве что элементы дат разделяются точкой, а не символом "/".

wise

(0) может ТАК:

МесяцДаты3 =  "Даты РАВНЫ не знаю месяц!";
Если Дата1 < Дата2 Тогда
МесяцДаты3 = Формат(ТекущаяДата(),"ДФ=ММММ");
ИначеЕсли Дата1 > Дата2 Тогда
МесяцДаты3 = Формат(КонецМесяца(ТекущаяДата())+1,"ДФ=ММММ");
КонецЕсли;
Дата3 = "20/"+МесяцДаты3+"/"+Формат(ТекущаяДата(),"ДФ=yyyy");
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

AIFrame

Цитата: Ольга Золотухина от 31 мая 2018, 09:43
Добрый день! Очень требуется помощь:trhregerhg:
Есть реквизит дата, определенная - 20.05.2018 (Дата 1 к примеру)
Необходимо сравнить её с текущей датой (датой 2, тоже для примера).
Пример:
1. если День Даты 1 менее Дня Даты 2,то Дата 3 = 20/текущий месяц/текущий год
2. если День Даты 1 более Дня Даты 2,то Дата 3 = 20/текущий месяц + 1/текущий год
День должен оставаться всегда 20. Как это реализовать?
Я в этом деле лузер, не программист, образования в этом направлении не имею.:dfbbdrfb:Но очень нужно.Помогите пожалуйста
Функция ПолучитьДатуПоУсловию(Дата1, Дата2)
    ТекМесяц = Месяц(ТекущаяДата());
    ТекГод = Год(ТекущаяДата());
    ДеньПоУмолчанию = 20;
    ДатаВозврата = Дата(ТекГод, ТекМесяц, ДеньПоУмолчанию);
   
    Дата1_День = День(Дата1);
    Дата2_День = День(Дата2);
    Если Дата1_День < Дата2_День Тогда
// Не меняем
    Иначе
        ДатаВозврата = ДобавитьМесяц(ДатаВозврата, 1);   
    КонецЕсли;
    Возврат ДатаВозврата;
КонецФункции

Но у тебя какая-то глупость по условию. Сравниваем Дату1 и Дату2, при чем сравниваем не сами даты, а дни месяца, а Дату3 формируем по ТекущаяДата().
Взглянув на такую функцию, я бы приложил руку к лицу и спросил "штоэта? зачемэта? нинада."

Ольга Золотухина


Но у тебя какая-то глупость по условию. Сравниваем Дату1 и Дату2, при чем сравниваем не сами даты, а дни месяца, а Дату3 формируем по ТекущаяДата().
Взглянув на такую функцию, я бы приложил руку к лицу и спросил "штоэта? зачемэта? нинада."
[/quote]

Есть задача по оплате, она формируется 1 числа, но до 20 числа оплата должна быть произведена. При этом,у исполнителя может быть такой вариант, что в этом месяце оплата не требуется, и тогда он просто переносит срок по задаче. Чтоб понять за какой месяц была оплата и когда формироваться следующей задаче(а процесс цикличный, ходит ежемесячно по кругу), приходиться сравнить числа дней,  иначе не поймешь. Вот, как то так)) Спасибо большое за отклик, и помощь! Буду пробовать сейчас

AIFrame

Ну так и условие получается абсолютно другое.
Сравнивать надо не числа дней, а ТекущаяДата() с Дата(Год(ТекущаяДата()), Месяц(ТекущаяДата()), 20) и прибавлять месяц если ТекущаяДата() > этого.
Как говорится, правильно заданный вопрос - половина ответа. До пред. поста как я увидел, никто не понял, чо вам надо.

Ольга Золотухина

Поступило предложение запустить несколько шаблонов оплат по этому процессу. Тогда дата дня (20) может быть любой. Как тогда быть?Как это можно автоматизировать?:fdbsdfbsd:
Добавлено: 01 июн 2018, 06:26


Может мне на курсы какие-то походить, чтоб хоть какое-то представление иметь по кодам,алгоритмам. Вообще ничего не понимаю :dfbsdfbsdf:

AIFrame

Цитата: Ольга Золотухина от 01 июн 2018, 06:21Вообще ничего не понимаю
А теперь представь, что нам тут надо понять суть твоего непонимания.

Грубо, разработку можно поделить на два вида:
1. "Придумай как." и Далее следует животрепещущая история в трех актах, из них 90% к теме не относится, но заказчик считает это важным. Тебе нужно придумать все за него, т.к. он верит, что "ты програмизд, тебе виднее".
2. "Нам нужно чтобы когда А, было Б, и если В, то получалось Д". И ты такой "Есть когда А - делать Б" и пошел кодить.

У тебя задача стоит по какому варианту?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск