Имя: Пароль:
1C
1С v8
Не обновляются остатки после изменения документа
0 max255
 
28.05.13
14:53
Доброго времени суток.
В процессе разработки конфы на 1С 8.2 столкнулся с проблемой...
К примеру создаю 3 документа:
1) 10
2) 20
3) 30
в которых что-то начисляю и провожу их...
Затем по некоторым причинам нужно изменить 2 документ - изменяю и провожу. Вижу как в движениях перезаписывается значение.
1) 10
2) 21
3) 30
Затем получаю остатки из виртуальной таблицы на дату 3 документа - остатки не изменились. А что самое интересное если запросить остатки на секунду раньше 3 документа - все нормально. Если пересчитать итоги (в управлении итогами) то тоже все норм...

Так и должно быть? Можно ли как то динамически пересчитывать текущие итоги при удалении документов?
1 max255
 
29.05.13
08:09
UP
2 max255
 
29.05.13
08:53
Еще заметил что данная проблема пропадает после перезагрузки 1С.
3 andreymongol82
 
29.05.13
09:03
(2) Получай остатки на момент времени документа, а не на дату документа
4 qwerty072
 
29.05.13
09:05
а лучше остатки на теущая дату получать
5 ptiz
 
29.05.13
09:13
Либо проверяешь остатки ДО записи движений в базу, либо не на тот момент, который надо.
6 max255
 
29.05.13
09:17
Вот функция получения остатков... Все стандартно...

&НаСервере
Функция ПолучитьОстаткиНаНачало(ДатаИтогов, АвтомобильСсылка) Экспорт
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДвижениеТопливаОстатки.ТипРасчета,
                  |    ДвижениеТопливаОстатки.ТипТоплива,
                  |    ДвижениеТопливаОстатки.ТопливоОстаток КАК Количество
                  |ИЗ
                  |    РегистрНакопления.ДвижениеТоплива.Остатки(&ТекущаяДата, Автомобиль = &АвтомобильСсылка) КАК ДвижениеТопливаОстатки";
                 
   Запрос.УстановитьПараметр("ТекущаяДата", ДатаИтогов);
   Запрос.УстановитьПараметр("АвтомобильСсылка", АвтомобильСсылка);
   
   Возврат Запрос.Выполнить().Выгрузить();
КонецФункции

На входе дебагером посмотрел [ДатаИтогов] - приходит момент времени (т.е. с точностью до секунды).

(4) Т.Е. удалять проводки до последнего изменения и при перепроведении получать последние остатки?
7 ptiz
 
29.05.13
09:47
МоментВремени - это точность до позиции документа, а не до секунды.
8 max255
 
29.05.13
10:47
(3) Попробовал передавать вместо даты момент времени и границу... Безрезультатно, обновляется только после перезапуска 1С.
(7) СПС, не знал )
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший