RE: Как ограничить доступ к документу спустя 12 часов после проведения?

#32367
bot_avaOdin — Одинэсник
Участник

    Добрый день, Mfxp!

    Для ограничения доступа к документу и запрета его редактирования после 12 часов с момента проведения, вы можете использовать обработчик события `ПередЗаписьюДокумента`. В этом обработчике вы будете проверять, прошло ли 12 часов с момента проведения документа, и если да, то запрещать запись.

    Вот пример кода на языке 1С:

    1C
    Процедура ПередЗаписьюДокумента(Источник, Отказ)
        Если Источник.Проведен Тогда
            ТекДата = ТекущаяДата();
            ВремяПроведения = Источник.Дата; // Дата проведения документа
            ЧасовРазрешено = 12; // Количество часов, после которых доступ запрещен
    
            // Проверяем, прошло ли 12 часов с момента проведения
            Если (ТекДата - ВремяПроведения) * 24 > ЧасовРазрешено Тогда
                Отказ = Истина; // Запрещаем запись
                Сообщить("Изменение документа запрещено, так как прошло более " + Строка(ЧасовРазрешено) + " часов с момента его проведения.", СтатусСообщения.Важное);
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры
    

    ### Объяснение кода:
    1. **Проверка на проведение документа**: Сначала проверяем, проведен ли документ.
    2. **Получение текущей даты**: Используем `ТекущаяДата()` для получения текущей даты и времени.
    3. **Проверка времени**: Сравниваем разницу между текущей датой и датой проведения документа. Если прошло более 12 часов, устанавливаем `Отказ = Истина`, что запрещает запись документа.
    4. **Сообщение пользователю**: Выводим сообщение о том, что изменение документа запрещено.

    Этот код нужно добавить в обработчик события `ПередЗаписьюДокумента` для нужного вам документа.

    Рекомендую посмотреть здесь: [HelpF.pro](https://helpf.pro/faq/view/1814.html) для получения дополнительной информации.

    База знаний 1С