1с 8.2 Р-р накопления (остатки). Разные остатки в ВТ Остатки и ОстаткиИОбороты #770411


#0 by NatalySH
База: сильно переписанная БП 3.0.23.8. Платформа 1с 8.2.19.80, sql server 2012. Регистр остатков РасчетыАП имеет два изменения ААА и ППП. Делаем отбор без ограничения периода по ППП = Вася, получаем такую картину по регистру (колонка с расчетом сальдо добавлена вручную): Период    Регистратор    Приход/ Расход    ААА (Измерение)    ППП (измерение)    Сумма    Сальдо 15.01.2016 23:59:59    Док 1    1    Организация 1    Вася    9 000,00    9 000,00 21.01.2016 23:59:59    Док 2    1    Организация 1    Вася    12 000,00    21 000,00 29.01.2016 23:59:59    Док 3    1    Организация 1    Вася    7 000,00    28 000,00 31.01.2016 23:59:59    Док 4    -1    Организация 1    Вася    1 680,00    26 320,00 04.02.2016 23:59:59    Док 5    1    Организация 1    Вася    50 000,00    76 320,00 05.02.2016 23:59:59    Док 6    1    Организация 1    Вася    17 500,00    93 820,00 24.02.2016 23:59:59    Док 7    -1    Организация 1    Вася    26 320,00    67 500,00 24.02.2016 23:59:59    Док 8    -1    Организация 1    Вася    63 000,00    4 500,00 26.02.2016 23:59:59    Док 9    1    Организация 1    Вася    50 000,00    54 500,00 29.02.2016 23:59:59    Док 10    -1    Организация 1    Вася    7 050,00    47 450,00 01.03.2016 23:59:59    Док 11    1    Организация 1    Вася    10 000,00    57 450,00 10.03.2016 23:59:59    Док 12    -1    Организация 1    Вася    47 450,00    10 000,00 31.03.2016 23:59:59    Док 13    -1    Организация 1    Вася    600,00    9400,00 Случай 1: для запроса назначаем параметры: «ППП» = Вася, «Дата» = Граница (включая) 01.03.2016  0:00:00 Если получать остатки по виртуальной таблице РегистрНакопления.РасчетыАП.Остатки(&Дата, ППП = &ППП), получаем РасчетыАП Остатки.СуммаОстаток = 47 450,00 – это правильно Если получать остатки по виртуальной таблице РегистрНакопления.РасчетыАП.ОстаткиИОбороты(, &Дата, , , ППП = &ППП), получаем РасчетыАПОстаткиИОбороты.СуммаКонечныйОстаток = 47 450,00 – это правильно Случай 2 (с ошибкой): для запроса назначаем параметры: «ППП» = Вася, «Дата» = Граница (включая) 01.03.2016  0:00:01 Если получать остатки по виртуальной таблице РегистрНакопления.РасчетыАП.Остатки(&Дата, ППП = &ППП), получаем РасчетыАП Остатки.СуммаОстаток = -15 550,00 - это неправильно Если получать остатки по виртуальной таблице РегистрНакопления.РасчетыАП.ОстаткиИОбороты(, &Дата, , , ППП = &ППП), получаем РасчетыАПОстаткиИОбороты.СуммаКонечныйОстаток = 47 450,00 – это правильно Получается, что при формировании временной таблицы РегистрНакопления.РасчетыАП.Остатки  в секунде между 01.03.2016  0:00:00 и 01.03.2016  0:00:01 откуда-то берется «фиктивное» расходное движение на 63 000,00. Если смотреть регистр в режиме пп, то ни в феврале, ни в марте «подходящих» движений нет (с отбором по ППП = Вася все движения регистра представлены в таблице выше; отбор по сумме 63 000,00 с отключенными другими отборами показывает только движения документа Док 8). Что делали: пересчитывали итоги по регистру; распроводили документ Док 8; переносили Док 8 «вперед» в середину марта – результат остается тот же: вьюшка РегистрНакопления.РасчетыАП.Остатки упорно «видит» лишний расход на 63 000. Посмотрели физическую sql таблицу регистра – там тоже «левых» записей не видно. Вопрос: как еще можно побороться с этой ситуацией, где и как поискать эту «лишнюю несуществующую»  запись?
#1 by vicof
Используйте границу вместо даты в остатках
#2 by NatalySH
так и делаю, читайте внимательно сабж.
#3 by aleks_default
может ТИИ?
#4 by NatalySH
ТИИ в тестовой копии пробовали без меня - сожрало место на сервере, накрылись вообще все рабочие базы, и само ТИИ пришлось остановить (а другими серваками не располагаем). А так-то оно бы помогло, поскольку: Пришлось действовать методом научного тыка: сначала удалила вообще все движения регистра без отбора (путем получения регистраторов регистра и удаления их движений) - ошибка ушла. Тогда удалила движения регистра только с марта по апрель 2016 - ошибка ушла. Дальше повезло: оказалось, что "битую запись" делал первый же мартовский документ (в движениях которого значение измерения ППП было совсем не то, по которому глюк). Просто распроведение этого документа ошибку не устраняло: надо было (а) программно удалить его движения по регистру и (б) перепровести документ. Проблема решена.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С