УТ 10.3
Нашел способ в ОбщиеМодуль.НастройкаПравДоступа.ПередЗаписьюДокументаПроверкаДоступностиПериода()
Есть ли способ без изменения стандартных процедур?
Нашел способ в ОбщиеМодуль.НастройкаПравДоступа.ПередЗаписьюДокументаПроверкаДоступностиПериода()
// Проверка возможности записи данных документа с учетом даты запрета изменения данных (даты запрета редактирования)
//
Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
//88(
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя") Тогда
Отказ = Ложь;
КонецЕсли;//)88
Если Отказ Тогда
Возврат;
КонецЕсли;
ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи);
#Если Клиент Тогда
//88(
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя") Тогда
Отказ = Ложь;
КонецЕсли;//)88
Если Отказ Тогда
Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное);
КонецЕсли;
#КонецЕсли
КонецПроцедуры // ПередЗаписьюДокументаПроверкаДоступностиПериода()
ПоказатьЕсть ли способ без изменения стандартных процедур?
По теме из базы знаний
- Закрытие периода в 1с77
- Есть ли жизнь в закрытом периоде? Или способ заставить работать "Обработку заполнения табличных частей" в закрытом периоде.
- Изменения в закрытом периоде
- Заявка на изменение документов в закрытых периодах, для обычного приложения, не управляемые формы
- Редактирование реквизита Статус сверки взаиморасчетов в закрытом периоде для УТ 11, КА, ERP 2
Найденные решения
(1)
в ОбщиеМодуль.НастройкаПравДоступа
В этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()
Эта процедура отвечает за возможность редактирование в форме.
Редактирование документа в закрытом периоде
в ОбщиеМодуль.НастройкаПравДоступа
Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
//88(
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя")
И Источник.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьПроцедура ПередЗаписьюРегистраДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, Замещение) Экспорт
//88(
Если ТипЗнч(Источник.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ЗаказПокупателя")
И Источник.Отбор.Регистратор.Значение.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьВ этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()
Процедура ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(ДокументОбъект, ФормаДокумента) Экспорт
//88(
Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ЗаказПокупателя")
И ДокументОбъект.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьЭта процедура отвечает за возможность редактирование в форме.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8) ут 10 под рукой нет, есть упп. Думаю в ут аналогично реализовано.
Есть подписки на события ПередЗаписьюДокументаДатаЗапретаРедактирования и ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования.
Там в источниках ищем, в первой свой документ. А во второй рег накопл. к-рый двигает этот документ.
Есть подписки на события ПередЗаписьюДокументаДатаЗапретаРедактирования и ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования.
Там в источниках ищем, в первой свой документ. А во второй рег накопл. к-рый двигает этот документ.
(1)
в ОбщиеМодуль.НастройкаПравДоступа
В этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()
Эта процедура отвечает за возможность редактирование в форме.
Редактирование документа в закрытом периоде
в ОбщиеМодуль.НастройкаПравДоступа
Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
//88(
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя")
И Источник.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьПроцедура ПередЗаписьюРегистраДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, Замещение) Экспорт
//88(
Если ТипЗнч(Источник.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ЗаказПокупателя")
И Источник.Отбор.Регистратор.Значение.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьВ этом примере в ут10.3 документ "Заказ покупателя" доступен для редактирования в течении одного года с ТекущаяДата()
Процедура ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(ДокументОбъект, ФормаДокумента) Экспорт
//88(
Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ЗаказПокупателя")
И ДокументОбъект.Дата > НачалоДня(ДобавитьМесяц(ТекущаяДата(), -12))-1
Тогда
Возврат;
КонецЕсли;
//88)
ПоказатьЭта процедура отвечает за возможность редактирование в форме.
Что касаемо "Если из обработки, то ДокОбъект.ОбменДанными.Загрузка = Истина, должно помочь" - поможет, но только в том случае, если документ не надо проводить, а достаточно просто записать, но поскольку изменение реквизита документа частенько предполагает изменение движений, т.е. необходимость проведения, то здесь несколько сложнее. Проверка периода доступности (в УПП) берет дату для сравнения из параметров сеанса, которые заполняются из регистра сведений "Границы запрета изменения данных". Если в обработке, которая проводит документ, перед проведением изменить параметр сеанса "Границы запрета изменения данных", присвоив ему значение даты менее даты документа, то все должно получиться. Вот только старую дату надо запомнить и после проведения вернуть. Пример:
ЗаказОбъект = СсылкаНаЗаказПокупателя.ПолучитьОбъект();
Соответствие = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных.Получить();
ОбщаяДатаЗапрета = Соответствие["ОбщаяДатаЗапретаРедактирования"];
ДатаЗаказа = ЗаказОбъект.Дата;
Если ОбщаяДатаЗапрета >= ДатаЗаказа Тогда
ОбщаяДатаЗапретаВрем = ДатаЗаказа - 60*60*24;
Соответствие["ОбщаяДатаЗапретаРедактирования"] = ОбщаяДатаЗапретаВрем;
ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(Соответствие);
КонецЕсли;
Попытка
ЗаказОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить("Не удалось записать документ " + ОписаниеОшибки());
КонецПопытки;
Если ОбщаяДатаЗапрета >= ДатаЗаказа Тогда
Соответствие["ОбщаяДатаЗапретаРедактирования"] = ОбщаяДатаЗапрета;
ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(Соответствие);
КонецЕсли;
Показать
А не кажется, что период не просто так закрыт? Лучше всего, на мой взгляд, все изменения согласовывать с бухгалтерией, открывать период и править что нужно. Ну, это прописная истина. А вообще, есть инструменты разработчика, тут где-то на инфостарте они есть, вот они позволяют изменить и реквизит и движения без открытия периода.
(6) В моей ситуации - есть доступный период для менеджеров = 1мес, дело в том что заказы делаются на упр организацию, а закрывает это всё реализация сделанная на финансовую организацию, которая может быть и через 3мес, и чтобы это всё было в одной сделке, у ЗаказПокупателя есть реквизит куда и добавляется данная РТУ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот