Найти в Дзене
Просто <> "1С"

УТ 10.3/ Запрет на проведение документа по дате/в конце квартала/ в отчетный период/блокировать изменение определённого документа по дате

Задача: При наступлении отчётного периода выводить предупреждение/или блокировать изменение документа. Отчетный период начинается за 7 дней до конца квартала. Запрещено менять документы за предыдущий квартал. Решение: Добавим в модуль формы в процедуру "ПередЗаписью" две проверки: 1.Настал ли сейчас отчетный период. 2. Дата документа попадает в этот квартал или нет. ДатаНачОтчетногоПериода = КонецКвартала(ТекущаяДата()) - (60*60*24*7) ; // конец текущего квартала за минусом 7 дней НачалоКвартала = НачалоКвартала(ТекущаяДата()); // начало текущего квартала Если ТекущаяДата() > ДатаНачОтчетногоПериода Тогда // Настал ли отчетный период ? Если Дата < НачалоКвартала Тогда // документ за этот квартал или за предыдущий ? Режим = РежимДиалогаВопрос.ДаНет; // Диалоговое окно. Текст = "Внимание отчетный период!!! Проведение документа затронет отчет |в данном квартале! Всё равно провести документ? "; Ответ = Вопрос(Текст, Режим, 0); Если Ответ = КодВозвратаДиалога.Нет Тогда // Если ответ "Нет"

Задача: При наступлении отчётного периода выводить предупреждение/или блокировать изменение документа. Отчетный период начинается за 7 дней до конца квартала. Запрещено менять документы за предыдущий квартал.

Решение:

Добавим в модуль формы в процедуру "ПередЗаписью" две проверки:

1.Настал ли сейчас отчетный период.

2. Дата документа попадает в этот квартал или нет.

ДатаНачОтчетногоПериода = КонецКвартала(ТекущаяДата()) - (60*60*24*7) ; // конец текущего квартала за минусом 7 дней

НачалоКвартала = НачалоКвартала(ТекущаяДата()); // начало текущего квартала

Если ТекущаяДата() > ДатаНачОтчетногоПериода Тогда // Настал ли отчетный период ?

Если Дата < НачалоКвартала Тогда // документ за этот квартал или за предыдущий ?

Режим = РежимДиалогаВопрос.ДаНет; // Диалоговое окно.

Текст = "Внимание отчетный период!!! Проведение документа затронет отчет

|в данном квартале! Всё равно провести документ? ";

Ответ = Вопрос(Текст, Режим, 0);

Если Ответ = КодВозвратаДиалога.Нет Тогда // Если ответ "Нет"

Отказ = Истина;

Возврат;

КонецЕсли;

КонецЕсли;

КонецЕсли;