Доброго времени суток. Необходимо выполнить проверку, в документе реализация, если дата этого документа на три дня меньше даты реквизита "исправление", вывести сообщение, мол документ как 3 дня назад был проведен.
Вот код:

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

Почему-то не работает(((
---
Странное название для переменной даты, все и подумали что количество дней, не глядя на формулу.
А Отказ = Истина - это значит, что данная процедура не будет выполнена
---
```1c
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийОбъект.ДатаПоследнейКорректировки < КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Данный документ записан более 3 дней назад, исправить");
    Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >= КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Все верно");
    КонецЕсли;
    КонецПроцедуры
```
---
```1c
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если КонецДня(ТекущаяДата()) > ДатаДок Тогда
    РазницаВДнях = (НачалоДня(ТекущаяДата()) - НачалоДня(ДатаДок) / (60 * 60 * 24);
    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = СтрШаблон("Данный документ записан более %1 дней назад, исправить!",РазницаВДнях);
    Сообщение.Сообщить();
    Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >= КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Все верно");
    КонецЕсли;
    КонецПроцедуры
```
---
Если КоличествоДней < ТекущийОбъект.ДатаПоследнейКорректировки Тогда
А какой результат ожидается от сравнения количества дней с датой? Вторник?
---
например дата проведения документа была 5.11, сегодня открыли форму, произвели добавили номенклатуру еще раз провели документ, в этом случае в реквизите ДатаКорректировки должна вывести текущая дата, и соответсвенно должно выйти сообщение "Документ был проведен 3 дня назад"
---
И какая связь между ТекущаяДата() и "дата этого документа" ?
---
Ну как минимум никак не отработана ситуация, когда КоличествоДней = ТекущийОбъект.ДатаПоследнейКорректировки.

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

Если нажимать Записать или Провести - сообщение выводится какое-нибудь?
---
сообщение в форму выходит, только условие не соблюдается
---
Вам же уже в первом ответе указали причину, вы до сих пор ищете причину?
---
я хочу понять что к чему
Москва не сразу строилась
Если мало знаний в програмиировании, конечно где-то что и не понятно и не получается
---
я хочу понять что к чемуКоличество дней - это число, Дата документа - дата, нельзя сравнивать теплое с мягким.
---
ну ведь к количеству дней я присвоила КоличествоДней = КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3;
В общем не верно условие записала
А вот что значит отказ=истина в данном случае?
---
Странное название для переменной даты, все и подумали что количество дней, не глядя на формулу.
А Отказ = Истина - это значит, что данная процедура не будет выполнена
---
а вот отказ=истина, прописывается всегда при каком-либо условии?
---
```1c
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийОбъект.ДатаПоследнейКорректировки < КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Данный документ записан более 3 дней назад, исправить");
    Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >= КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Все верно");
    КонецЕсли;
    КонецПроцедуры
```
---
Спасибо, все равно условие не выполняется то бишь, при смене даты проведения и даты корректировки выходит "Все верно" в любом случае
---
Тогда попробуйте перенести процедуру в ПередЗаписьюНаСервере()
---
не работает
---
Вам точно нужна текущая дата, может все-таки дата документа?
---
да, дата документа
---
```1c
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если КонецДня(ТекущаяДата()) > ДатаДок Тогда
    РазницаВДнях = (НачалоДня(ТекущаяДата()) - НачалоДня(ДатаДок) / (60 * 60 * 24);
    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = СтрШаблон("Данный документ записан более %1 дней назад, исправить!",РазницаВДнях);
    Сообщение.Сообщить();
    Отказ = Истина;
    ИначеЕсли ТекущийОбъект.ДатаПоследнейКорректировки >= КонецДня(ТекущаяДата()) - 60 * 60 * 24 * 3 Тогда
    Сообщить ("Все верно");
    КонецЕсли;
    КонецПроцедуры
```