Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как изменить дату документа.

Как изменить дату документа.
Я
   leva_90
 
28.09.16 - 11:09
Всем здравствуйте. Дали мне задание - написать обработку изменяющую дату документа на 2 года назад.
Вроде все сделал, через отладку проверил. По коду все работает, ошибок обработка не выдает, только вот даты так и не меняются...
В чем может быть проблема?
вот код обработки:

Процедура ИзменениеДатыОбъекта(НачДат,КонДат) Экспорт
    ДокОбразец = Неопределено;
    ДокВыборка =   Документы.НастраиваемыйОтчет.Выбрать(НачДат,КонДат);
    
    
    Пока ДокВыборка.Следующий() Цикл 
        ДокОбразец = ДокВыборка.ПолучитьОбъект();
        ДатаДокумента = ДокОбразец.Дата;
        ДокОбразец.Дата = ДобавитьМесяц(ДатаДокумента,-24);        
    КонецЦикла;
    
    
КонецПроцедуры
 
 
   RomanYS
 
1 - 28.09.16 - 11:11
ДокОбразец.Записать() ?

Только выборка возможно сломается, а движения документа останутся на старых датах.
   impulse9
 
2 - 28.09.16 - 11:16
Получи список документов запросом, в цикле меняй дату и проводи
   leva_90
 
3 - 28.09.16 - 11:17
RomanYS, да им это не важно). А записывать внутри цикла?
   leva_90
 
4 - 28.09.16 - 11:18
(2) их проводить не нужно, некоторые из них вообще помечены на удаление.
   anatoly
 
5 - 28.09.16 - 11:22
(3) если каждый - внутри.
если только последний - снаружи ))
   leva_90
 
6 - 28.09.16 - 11:26
(5) Понял, только че то ошибку выдаёт...

{Обработка.ИзменениеДатыОтчетов.МодульОбъекта(11)}: Ошибка при вызове метода контекста (Записать)
        ДокОбразец.Записать();
по причине:
Не удалось записать "Экземпляр отчета 00006900 от 22.10.2014 10:56:42"!
   IlyaSR
 
7 - 28.09.16 - 11:29
а если период закрыт, то твоя схема не прокатит
   leva_90
 
8 - 28.09.16 - 11:30
(7) Вручную у них пркатывает. Может у меня прав не хватает?

Документ "Экземпляр отчета 00006900 от 22.10.2012 10:56:42" не может быть записан:
- по сценарию "Факт (отчет)" период "2014.09.Сентябрь" установлен запрет на изменение!
   Serg_1960
 
9 - 28.09.16 - 11:37
(4) "их проводить не нужно, некоторые из них вообще помечены на удаление." - а если всё-таки были проведены?

    Если ДокументОбъект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить И ДокументОбъект.Проведен Тогда
        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    Иначе
        ДокументОбъект.Записать();
    КонецЕсли;
   leva_90
 
10 - 28.09.16 - 11:40
(9) Спасибо, буду пробовать
 
 Рекламное место пустует
   Serg_1960
 
11 - 28.09.16 - 11:41
(8) "...установлен запрет на изменение!" - попробуй вставить (конфигурация не озвучена):

Процедура ИзменениеДатыОбъекта(НачДат,КонДат) Экспорт

   СоответствиеГраницЗапрета = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных.Получить();
   ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(Неопределено, Новый СжатиеДанных(0));
...
   ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(СоответствиеГраницЗапрета, Новый СжатиеДанных(0));

КонецПроцедуры
   IlyaSR
 
12 - 28.09.16 - 11:41
Процедура ИзменениеДатыОбъекта(НачДат,КонДат) Экспорт
    ДокОбразец = Неопределено;
    ДокВыборка =   Документы.НастраиваемыйОтчет.Выбрать(НачДат,КонДат);
    
УстановитьПривилегированныйРежим(Истина);
    
Пока ДокВыборка.Следующий() Цикл
 
        ДокОбразец = ДокВыборка.ПолучитьОбъект();
        ДокОбразец .ОбменДанными.Загрузка = Истина;
        ДатаДокумента = ДокОбразец.Дата;
        ДокОбразец.Дата = ДобавитьМесяц(ДатаДокумента,-24);        
 Попытка
 ДокОбразец.Записать(РежимЗаписиДокумента.Запись);
 Исключение
   Сообщить(ОписаниеОшибки());
 КонецПопытки

 КонецЦикла;

 УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
   Serg_1960
 
13 - 28.09.16 - 11:45
*(12) Может не прокатить, если в конфигурации программно проверяется дата запрета редактирования и она распространяется на полные права.
   Serg_1960
 
14 - 28.09.16 - 11:48
Эээ... отставить замечание :) Алгоритм записывает при "...Загрузка = Истина" и не предполагает проведение документа.
   leva_90
 
15 - 28.09.16 - 11:48
(12) (13) , всем спасибо, все получилось по (11) коду)
   leva_90
 
16 - 28.09.16 - 11:49
пардон, (12) коду))

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует