Вывод сообщения при проведении

1. user1845273 09.11.22 00:15 Сейчас в теме
Доброго времени суток. Необходимо выполнить проверку, в документе реализация, если дата этого документа на три дня меньше даты реквизита "исправление", вывести сообщение, мол документ как 3 дня назад был проведен.
Вот код:
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
		КоличествоДней = КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3;
	Если КоличествоДней < ТекущийОбъект.ДатаПоследнейКорректировки Тогда
		Сообщить ("Данный документ записан 3 дня назад, исправить")
	ИначеЕсли КоличествоДней > ТекущийОбъект.ДатаПоследнейКорректировки  Тогда
		Сообщить ("Все верно");
	КонецЕсли; 
	КонецПроцедуры

Почему-то не работает(((
По теме из базы знаний
Найденные решения
12. tamidi 8 09.11.22 12:25 Сейчас в теме
(11)Странное название для переменной даты, все и подумали что количество дней, не глядя на формулу.
А Отказ = Истина - это значит, что данная процедура не будет выполнена
6. user5300 1051 09.11.22 12:11 Сейчас в теме
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийОбъект.ДатаПоследнейКорректировки <   КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
        Сообщить ("Данный документ записан более 3 дней назад, исправить");
        Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >=  КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3  Тогда
        Сообщить ("Все верно");
    КонецЕсли; 
КонецПроцедуры
Показать
18. user645801_yyyuuu123q 09.11.22 13:04 Сейчас в теме
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если  КонецДня(ТекущаяДата()) > ДатаДок Тогда
         РазницаВДнях = (НачалоДня(ТекущаяДата()) - НачалоДня(ДатаДок) / (60 * 60 * 24);
         Сообщение = Новый СообщениеПользователю();
         Сообщение.Текст = СтрШаблон("Данный документ записан более %1 дней назад, исправить!",РазницаВДнях);
        Сообщение.Сообщить();
        Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >=  КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3  Тогда
        Сообщить ("Все верно");
    КонецЕсли; 
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1863362 09.11.22 00:24 Сейчас в теме
(1)
Если КоличествоДней < ТекущийОбъект.ДатаПоследнейКорректировки Тогда

А какой результат ожидается от сравнения количества дней с датой? Вторник?
7. user1845273 09.11.22 12:11 Сейчас в теме
(2)например дата проведения документа была 5.11, сегодня открыли форму, произвели добавили номенклатуру еще раз провели документ, в этом случае в реквизите ДатаКорректировки должна вывести текущая дата, и соответсвенно должно выйти сообщение "Документ был проведен 3 дня назад"
3. user1863362 09.11.22 00:32 Сейчас в теме
И какая связь между ТекущаяДата() и "дата этого документа" ?
4. laperuz 46 09.11.22 05:30 Сейчас в теме
Ну как минимум никак не отработана ситуация, когда КоличествоДней = ТекущийОбъект.ДатаПоследнейКорректировки.

Ну и, судя по процедуре, вы делаете это в модуле формы, сообщение соответственно выводится в форму, которая, при нажатии кнопки Провести и закрыть вполне себе закрывается и сообщение вы не видите.

Если нажимать Записать или Провести - сообщение выводится какое-нибудь?
5. user1845273 09.11.22 12:08 Сейчас в теме
(4) сообщение в форму выходит, только условие не соблюдается
8. tamidi 8 09.11.22 12:12 Сейчас в теме
(5)Вам же уже в первом ответе указали причину, вы до сих пор ищете причину?
9. user1845273 09.11.22 12:15 Сейчас в теме
(8) я хочу понять что к чему
Москва не сразу строилась
Если мало знаний в програмиировании, конечно где-то что и не понятно и не получается
10. Prikum 3 09.11.22 12:16 Сейчас в теме
(9)
я хочу понять что к чему
Количество дней - это число, Дата документа - дата, нельзя сравнивать теплое с мягким.
11. user1845273 09.11.22 12:21 Сейчас в теме
(10)ну ведь к количеству дней я присвоила КоличествоДней = КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3;
В общем не верно условие записала
А вот что значит отказ=истина в данном случае?
12. tamidi 8 09.11.22 12:25 Сейчас в теме
(11)Странное название для переменной даты, все и подумали что количество дней, не глядя на формулу.
А Отказ = Истина - это значит, что данная процедура не будет выполнена
19. user1845273 13.11.22 13:34 Сейчас в теме
(12)а вот отказ=истина, прописывается всегда при каком-либо условии?
6. user5300 1051 09.11.22 12:11 Сейчас в теме
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийОбъект.ДатаПоследнейКорректировки <   КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
        Сообщить ("Данный документ записан более 3 дней назад, исправить");
        Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >=  КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3  Тогда
        Сообщить ("Все верно");
    КонецЕсли; 
КонецПроцедуры
Показать
13. user1845273 09.11.22 12:28 Сейчас в теме
(6) Спасибо, все равно условие не выполняется то бишь, при смене даты проведения и даты корректировки выходит "Все верно" в любом случае
14. user5300 1051 09.11.22 12:30 Сейчас в теме
(13) Тогда попробуйте перенести процедуру в ПередЗаписьюНаСервере()
15. user1845273 09.11.22 12:34 Сейчас в теме
16. tamidi 8 09.11.22 12:40 Сейчас в теме
(15)Вам точно нужна текущая дата, может все-таки дата документа?
17. user1845273 09.11.22 12:50 Сейчас в теме
18. user645801_yyyuuu123q 09.11.22 13:04 Сейчас в теме
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если  КонецДня(ТекущаяДата()) > ДатаДок Тогда
         РазницаВДнях = (НачалоДня(ТекущаяДата()) - НачалоДня(ДатаДок) / (60 * 60 * 24);
         Сообщение = Новый СообщениеПользователю();
         Сообщение.Текст = СтрШаблон("Данный документ записан более %1 дней назад, исправить!",РазницаВДнях);
        Сообщение.Сообщить();
        Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >=  КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3  Тогда
        Сообщить ("Все верно");
    КонецЕсли; 
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот