Имя: Пароль:
1C
 
Изменить реквизит документа в закрытом периоде
0 Master5550
 
13.03.19
14:47
Бух 3.0
В документ Реализация добавлен новый реквизит "Примечание", теперь его надо редактировать в закрытом периоде.
Делаю рядом кнопку и вешаю на нее процедуру:
&НаКлиенте
Процедура ДобавитьПримечание(Команда)
    Оповещение = Новый ОписаниеОповещения("ПослеВводаСтроки",
        ЭтотОбъект);

    ПоказатьВводСтроки(Оповещение,,"Введите примечание",0, Истина);
КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаСтроки(Результат, Параметры) Экспорт

    Если Не Результат = Неопределено Тогда
        Примечание = Результат;
    ЭтотОбъект.Записать();
    КонецЕсли;

КонецПроцедуры

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

Ошибка: Действие не может выполняться в режиме загрузки данных.
Как правильно сделать?

P.S. Через доп. сведения не предлагать, бухам не нравится лишнюю кнопочку нажимать, надо чтобы на форме реквизит был
1 RomanYS
 
13.03.19
14:53
(0) Надо избежать проведения документа, тебе это не удалось.
А твоя "//Строчка добавлена" вроде тупо запрет ломает, его можно отключить штатными средствами
2 Master5550
 
13.03.19
15:02
(1) Чего делать то?
3 OldCondom
 
13.03.19
15:13
Я такое слепил. У нас некоторые документы ОС надо править задним числом.
&Перед("ПроверитьДатуЗапретаИзмененияПередЗаписьюНабораЗаписей")
Процедура тратата_ПроверитьДатуЗапретаИзмененияПередЗаписьюНабораЗаписей(Источник, Отказ, Замещение)

    // Параметры амортизации ОС(несолько документов) доработаны, их можно переносить в прошлые периоды.
    // Здесь проверяем, это документы параметров ОС или нет.
    ДокРегистратор = ПолучитьДокументРегистратор(Источник);
    Если НЕ ДокРегистратор = Неопределено Тогда
        НаборНТ_ПериодПараметровОС = РегистрыСведений.НТ_ПериодПараметровОС.СоздатьНаборЗаписей();
        НаборНТ_ПериодПараметровОС.Отбор.Документ.Установить(ДокРегистратор);
        НаборНТ_ПериодПараметровОС.Прочитать();
        Для каждого ЗаписьНабор Из НаборНТ_ПериодПараметровОС Цикл
            //Если есть данные, дату запрета не проверять.
            Источник.ОбменДанными.Загрузка = Истина;
            Прервать;
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры



То есть при нужном условии я указываю, что режим загрузки = Истина. А уже сам типовой код по этому режиму проверку не выполняет.
4 RomanYS
 
13.03.19
15:25
(2) вроде очевидно: записывать без проведения,  ОбменДанными.Загрузка устанавливать в форме по условию
5 RomanYS
 
13.03.19
15:26
Может помочь найти путь: ПриЗаписиПерепроводить, ПередЗаписьюНаСервере, РежимЗаписи