Имя: Пароль:
1C
1С v8
Запись документа в конец дня
🠗 (Волшебник 03.03.2024 23:16)
,
0 kubik_live
 
02.03.24
22:53
Доброго дня всем

Бухгалтерия Предприятия 3.0.148.21

Почему не происходит запись документа в конец дня в конструкции?

.........................
    Док=Документы.ТребованиеНакладная.СоздатьДокумент();
    
    Док.Дата=КонецДня(Объект.ДатаДокумента);  

.........................
    Попытка
        ДокОбъект=Док.ЭтотОбъект;
        


//  ДокОбъект.УстановитьВремя(РежимАвтоВремя.Последним);
// закомментил - не влияет
Здесь время у ДокОбъект : 23:59:59
        ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
// А Здесь тупо время у ДокОбъект : 12:00:00

        
// А только так - работает (требуется повторная запись):        
        ДокОбъект.Дата=КонецДня(Объект.ДатаДокумента);
        ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
............................
    Исключение    
............................
    КонецПопытки;    

Как правильно сделать?
1 kubik_live
 
02.03.24
23:01
Вангую, что копать надо в "Подписки на события", так?
2 Dmitry1c
 
03.03.24
08:21
Правильно - не привязываться к концу дня.

Это противоестесственно для системы.
3 Волшебник
 
03.03.24
09:17
При записи сработал какой-то программный код, который изменил время.
4 Chameleon1980
 
03.03.24
09:33
а зачем вот это?
ДокОбъект=Док.ЭтотОбъект

если Док итак ДокументоОбъект

Док=Документы.ТребованиеНакладная.СоздатьДокумент();
5 kubik_live
 
03.03.24
13:29
(2) Здесь расход материалов. Может оказаться ситуация, например, когда поступление зафиксировано в 13:00, а тут расход будет записан (без проведения) в 12:00. Резульат последующего проведения выдаст ошибку о нехватке материалов
(3) Вот и я тоже предполагаю, что это в подписках на событие сидит при записи нового документа
6 d4rkmesa
 
03.03.24
13:42
(0) В БП есть механизм, через подписки, скорее всего. В Администрирование - Проведение документов есть настройка, влияющая на время документа. Имеет смысл встроиться в эту настройку каким-то образом.
7 kubik_live
 
03.03.24
19:11
(6) насчет механизма подписки: +1
А так смысла нет чтото ваять - т.к. загрузка в указанный документ из внешних данных будет происходить эпизодически и в малом кол-ве документов - пусть будет повторная запись нового документа с новым временем конца дня.
Всем спасибо.
8 Волшебник
 
03.03.24
19:44
(5) А я предполагаю другое
9 Волшебник
 
03.03.24
19:45
(7) Возьмите себя в руки, в зубы отладчик и найдите этот программный код
10 kubik_live
 
03.03.24
19:50
(9) Станислав, спасибо. Ради интереса конечно можно будет посмотреть, а так - см (7)
11 Михаил Козлов
 
03.03.24
20:26
Попробуйте перед ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
вставить ДокОбъект.ОбменДанными.Загрузка = ИСТИНА;
12 kubik_live
 
03.03.24
20:42
(11) Михаил, спасибо! Супер! Проблема с временем так решена, НО:
Номер документа пустой! Видимо надо что-то явно прописать после:

ДокОбъект.ОбменДанными.Загрузка = ИСТИНА;

по установке нумерации
13 kubik_live
 
03.03.24
20:44
+(11) Повторная запись документа номер устанавливает
14 kubik_live
 
03.03.24
20:48
+(11) Решено:

        ДокОбъект.ОбменДанными.Загрузка = ИСТИНА;    
        ДокОбъект.УстановитьНовыйНомер();
        ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
15 kubik_live
 
03.03.24
20:49
(11) Ещё раз спасибо!
16 Dmitry1c
 
04.03.24
06:54
(5), если у вас база не оперативная, отключите контроль остатков