Имя: Пароль:
1C
1С v8
Не работает РежимЗаписиДокумента.Проведение
, ,
0 ya1snik
 
19.12.20
11:02
8.2 УТ 10.3 При выборке документов Реализация тов и услуг, и внесении изменений, последующая операция Док.Записать(РежимЗаписиДокумента.Проведение) не сохраняет изменения в документе. Приходится групповой обработкой снимать проведение и снова проводить. В чем может быть дело?
1 Мимохожий Однако
 
19.12.20
11:05
В ошибке кода или не все параметры документа удовлетворяют условиям проведения. Вышли кофе-погадаем вместе.
2 Ненавижу 1С
 
гуру
19.12.20
11:05
В коде
3 ya1snik
 
19.12.20
11:26
Выборка = Документы.РеализацияТоваровУслуг.Выбрать(ДатаНач, ДатаКон);
    Пока Выборка.Следующий() Цикл
        Если Выборка.Проведен = Ложь Тогда
            Продолжить;
        КонецЕсли;
        ДокументИзменен = 0;
        Док = Выборка.ПолучитьОбъект();

        Если ЗначениеЗаполнено(Док.Грузополучатель) Тогда
            Если ЗначениеЗаполнено(Док.Грузополучатель.ИНН) Тогда
                Док.Контрагент = Док.Грузополучатель;
                Док.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Организация", Док.Организация,, Док.Грузополучатель);
            КонецЕсли;                  
            Док.Грузополучатель = NULL;
            ДокументИзменен = 1;
        КонецЕсли;

        // Если в ТТН были внесены изменения, тогда проводим документ
        Если ДокументИзменен = 1 Тогда
            Док.Записать(РежимЗаписиДокумента.Проведение);
            Сообщить("Реализация N " + Док.Номер + " от " + Док.Дата + " изменен");
        КонецЕсли;
    КонецЦикла;
4 rudnitskij
 
19.12.20
11:54
То есть у тебя ДокументИзменен = 1 независимо от того, менялся контрагент или нет
5 ya1snik
 
19.12.20
12:04
(4) Ну почему, в любом случае документ изменяется - либо изменяется контрагент и сбрасывается грузополучатель, либо просто сбрасывается грузополучатель
6 Вафель
 
19.12.20
12:17
что-то в перед записью творится
7 rudnitskij
 
19.12.20
12:33
(5) а какой в поле Грузополучатель тип значения?
8 RetardedToBoot
 
19.12.20
13:22
(0) как вариант сначала попробовать Записть(РежимЗаписиДокумента.Запись) и после запись в режиме проведения.

Так же не известно что сидит в модуле документа. Если там проверка, был ли документ проведен, и если да или нет, то что-нибудь отменяет или восстанавливает. Т.к. пишешь, что приходится снимать и после проводить. Тогда в обработку сначала снять проведение, после провести.

Ну и еще вариант, что 8.2 это старая платформа, там были глюки разные, сам сталкивался. Т.е. проверить на более новой версии.
9 DJ Anthon
 
19.12.20
15:13
В КА то же самое. перепроведение не перезаполняет регистры документа, надо отменять проведение и проводить. лень искать косяк, местным нетрудно запустить обработку через универсальный журнал, я там добавил команду отменить и провести. вроде это сделано для ускорения работы, только вот нахер такое ускорение...
10 ya1snik
 
19.12.20
16:03
(8) вариант с предварительной записью и последующим проведением вроде помог. Спс
11 Cthulhu
 
19.12.20
16:21
в модуле документа поищи по "РежимЗаписиДокумента." (без кавычек) изменение режима записи .......
12 runoff_runoff
 
19.12.20
16:58
Док.Грузополучатель = NULL; // что это и зачем
13 Cyberhawk
 
19.12.20
17:34
(9) Мимо