УТ 10.3
Нашел способ в ОбщиеМодуль.НастройкаПравДоступа.ПередЗаписьюДокументаПроверкаДоступностиПериода()

```1c
    // Проверка возможности записи данных документа с учетом даты запрета изменения данных (даты запрета редактирования)
    //
    Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

    //88(
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя") Тогда
    Отказ = Ложь;
    КонецЕсли;//)88
    Если Отказ Тогда
    Возврат;
    КонецЕсли;

    ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи);
    #Если Клиент Тогда
    //88(
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя") Тогда
    Отказ = Ложь;
    КонецЕсли;//)88
    Если Отказ Тогда
    Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное);
    КонецЕсли;
    #КонецЕсли

    КонецПроцедуры // ПередЗаписьюДокументаПроверкаДоступностиПериода()
```

Есть ли способ без изменения стандартных процедур?
---
Редактирование документа в закрытом периоде
в ОбщиеМодуль.НастройкаПравДоступа

```1c
    Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

    //88(
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя")
    И Источник.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

```1c
    Процедура ПередЗаписьюРегистраДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, Замещение) Экспорт

    //88(
    Если ТипЗнч(Источник.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ЗаказПокупателя")
    И Источник.Отбор.Регистратор.Значение.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

В этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()

```1c
    Процедура ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(ДокументОбъект, ФормаДокумента) Экспорт

    //88(
    Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ЗаказПокупателя")
    И ДокументОбъект.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

Эта процедура отвечает за возможность редактирование в форме.
---
Есть ли способ без изменения стандартных процедур?
Можно удалить данный документ из подписки на событие, а также регистры (как минимум накопления).
---
а можно подробнее об этом? заранее благодарна
---
ут 10 под рукой нет, есть упп. Думаю в ут аналогично реализовано.
Есть подписки на события ПередЗаписьюДокументаДатаЗапретаРедактирования и ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования.
Там в источниках ищем, в первой свой документ. А во второй рег накопл. к-рый двигает этот документ.
---
у меня КА 1.1. Вот пока не сообразила, по какому пути идти будет наиболее правильно. Мне нужно сделать доступным для редактирования реквизит документа реализации в закрытом периоде. Этот реквизит не влияет на движения документа.
---
Ирина, ну с этим легче. Это через свойства/категории документа можно.
---
этот реквизит уже добавлен, и с ним давно работают. Или я не совсем правильно Вас понимаю? То есть этот реквизит должен быть свойством / категорией?
---
какую смысловую нагрузку несет ваш реквизит? Если не влияет на проведение, то можно было реализовать через регистр сведений или, как предложили выше, через категории/свойства.
---
это было сделано задолго до меня. Смысл - это флаг возвращенных документов - оригиналов.
---
значит тип Булево. Идеально подошел бы регистр сведений, удобнее отчет собирать.
---
Вы предлагаете этот реквизит убрать, а использовать регистр?
---
я рассуждаю. Вы делайте как считаете нужным.
---
хорошо, спасибо!
---
Подскажите, как справились с такой задачей? У нас аналогичная ситуация...
---
Редактирование документа в закрытом периоде
в ОбщиеМодуль.НастройкаПравДоступа

```1c
    Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

    //88(
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя")
    И Источник.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

```1c
    Процедура ПередЗаписьюРегистраДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, Замещение) Экспорт

    //88(
    Если ТипЗнч(Источник.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ЗаказПокупателя")
    И Источник.Отбор.Регистратор.Значение.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

В этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()

```1c
    Процедура ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(ДокументОбъект, ФормаДокумента) Экспорт

    //88(
    Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ЗаказПокупателя")
    И ДокументОбъект.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
    Тогда
    Возврат;
    КонецЕсли;
    //88)
```

Эта процедура отвечает за возможность редактирование в форме.
---
Если из обработки, то ДокОбъект.ОбменДанными.Загрузка = Истина, должно помочь.
---
adva, Из формы документа через ЭтотОбъект.Сделка РеализацияТоваровУслуг
---
Что касаемо "Если из обработки, то ДокОбъект.ОбменДанными.Загрузка = Истина, должно помочь" - поможет, но только в том случае, если документ не надо проводить, а достаточно просто записать, но поскольку изменение реквизита документа частенько предполагает изменение движений, т.е. необходимость проведения, то здесь несколько сложнее. Проверка периода доступности (в УПП) берет дату для сравнения из параметров сеанса, которые заполняются из регистра сведений "Границы запрета изменения данных". Если в обработке, которая проводит документ, перед проведением изменить параметр сеанса "Границы запрета изменения данных", присвоив ему значение даты менее даты документа, то все должно получиться. Вот только старую дату надо запомнить и после проведения вернуть. Пример:

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