Надеюсь среди вас есть экзорцисты..
Рассказываю ситуацию - в конфигурации 1с ERP, работающей на платформе 8.3.24.1691 - я добавил регистр остатков, добавил свой документ, который выступает регистратором по этому регистру, а так же добавил в этот регистр типовые документы в качестве регистратора. Все сделано в конфигурации, без применения расширений. Затем я делаю отчет "остатки и обороты" по этому регистру и у меня "кривые" данные, а именно у меня по группировкам неправильные начальные и конечные остатки, причем только если мой документ находится в списке первым. Отчет составлен по рекомендациям фирмы 1с, правильно заполнены роли и сам запрос. Причем выяснить удалось, что проблема исключительно с добавленными документами, остальные типовые не вызывают никаких проблем. Для более яркого примера я взял типовой документ "Корректировка регистров", полностью скопировал его, без каких-либо изменений, сделал его регистратором в моем регистре, а так же сделал регистратором типовой документ корректировки регистров. Создал типовой и нетиповой документ с одним и тем же движением и после этого скопированный документ неправильно показывает данные в отчета, а типовой правильно. Во вложении как это выглядит.
Что я пробовал:
1) Чистить всевозможные кэши (включая серверный, т.к. базы серверные). Чистить настройки пользователей и настройки отчетов.
2) После создания документа запускать обновление вспомогательных данных из SSL, пробовал запускать базу с ключом "ЗапуститьОбновлениеИнформационнойБазы"
3) Пробовал воспроизводить аналогичную ситуацию по типовым регистрам (все то же самое, с моим документом даже типовые отчеты дают странные данные)
4) Пробовал делать на другой платформе - аналогично.
5) Пробовал пересчитывать итоги регистра отдельно, а так же выполнять полное тестирование исправление со всеми возможными реструктуризациями и пересчетами.
6) Разумеется я полностью сравнивал документ с типовым, он идентичен, т.к. скопирован, сравнивал регистр, он не скопирован, но идентичен.
На этом идеи закончились, следующий шаг - это вызывать экзорциста. Может я что-то очевидное упускаю, помогите кто чем может. Любые идеи (особенно правильные) приветствуются
(3) Но в отчете же появляется начальный остаток. Если выполнить запрос без группировок и не средствами СКД, должно быть видно, какие строки его создают.
(12) Попробуйте в "кривом" отчете у ресурсов в настройках оставить только суммы. В итогах должны будут отражаться суммы по столбцу. Сейчас там лажа. Если итоги станут нормально, то сравнивать поля Выражение, где-то там не совпадает.
(15) Это один и тот же отчет, я просто провожу и распровожу документ в одном случае типовой, в другом нет. Отчеты не могут отличаться на уровне полей/кода/запроса/СКД, потому что это прям один и тот же отчет. Исходя из этого не очень понимаю, что вы имеете ввиду, когда говорите, что "сравнивать поля Выражение" - что с чем сравнивать? Если что в отчете все ресурсы суммами. Вот скрины из отчета:
(17) Поясню мысль: в общем случае у СКД в итогах выводится сумма ресурсов по группировкам. Раз она не выводится в верном варианте, значит, это может быть сделано в настройках, в макете, в модуле отчета и т.п.
(27) Секунду добавил, тут согласен, надо было сразу добавить. Период у регистратора убрал (хотя это и нельзя делать, но я попробовал и так и так). Итог один и тот же. Да и почему у типовых документов это бы работоало, а у нетиповых не работает.
(14) Запрос я сделал, движения и остатки такие как ожидаются - абсолютно корректные и объяснимые, одинаковые для обоих документов. Вопрос-то как раз в том почему у меня для одного документа фигня, а для другого все в порядке. Причем даже для типовых регистров и отчетов. Т.е. если я сделаю новый документ, его сделаю регистратором по какому-то типовому регистру, а потом выведу отчет тоже типовой, который берет данные из таблицы остатков и оборотов - я получу кривизну. Но ни с одним типовым документом такой кривизны не получаю. Подумал на типовую форму отчета - тоже не подходит, отчет с нетиповой формой созданной без изменений выводит такой же результат.
(13) Согласен, лажа какая-то получается. Думаю надо взять типовой документ, который не используется, переименовать его в свой, удалить из него весь функционал и добавить свой)
Но как будто у меня сейчас есть зацепка. Я создал чистую конфигурацию на платформе 8.3.24, создал там 2 документа и 1 регистр, составляю аналогичный отчет - получаю лажу. Понимаю, что это нестандартное поведение платформы и точно уверен, что на более ранних версиях все было нормально. Взял платформу 8.3.18, создал там 2 документа, регистр и отчет - все хорошо и отчет правильный. Потом в этой же конфе (созданной на платформе 8.3.18) я создал еще один документ, выступающий регистратором по этому регистру, но этот документ я создавал уже на платформе 8.3.24, после создания документа - только он кривой в отчете. Ну т.е. один в один ситуация как в ERP. Но только я пока не знаю как сделать так, чтобы документ стал нормальным. Никто не в курсе, может это в новых платформах появилась какая-то настройка или еще что-то и для объектов, созданных на новой платформе надо эту настройку конфигурировать?
(23) Как вариант - создать аналогичный "дополнительный документ" на 8.3.18, потом - выгрузить конфигурации в файлы (и для 8.3.18 и для 8.3.24), сравнить результат.
Возможно - проблема в модификации регистра, созданного в 8.3.18 при работе с 8.3.24
Возможно - проблема в разнице создания "дополнительного документа" в 8.3.18 и 8.3.24
Правда, что с этим делать дальше (кроме как писать в 1с об ошибке) - не очень понятно.
(0) помнится надо делать обязательно при выводи регистратора - добавлять из виртуальной таблице "период". иначе СКД может не корректно считать начальные и конечные итоги.
Не использование периодичности Авто
Данная проблема возникает, когда данные получаются из виртуальной таблицы ОстаткиИОбороты с указанием периодичности, отличной от Авто, если при этом в отчет выводятся не все поля - периоды. Эта проблема родственна проблеме "Отсутствие родительских полей - периодов в запросе", описанной в начале данной статьи.
ипичные проблемы при расчете остатков
В данной статье описывается, по какой причине отчет, созданный при помощи системы компоновки данных, может выдавать неправильные остатки.
Отсутствие родительских полей - периодов в запросе
Данная проблема возникает например, если в запросе получают поле Регистратор, но не получают поле ПериодСекунда.
(36) Она стоит ка ложь специально, потому что я хочу чтобы были только один из наборов записей. Либо типовой либо нет и когда я показываю два отчета разных - это значит, что в одном случае выключена активность движений типового документа, а во втором - активность моего документа. И вопрос как раз в том, что когда я включаю активность своих движений - они другие в отчете нежели движения типового документа.
(37) Я конечно не уверен, что я решал Вашу проблему, но я никогда не использую стандартные параметры периода отчета, всегда определяю свои и только так как на скрине. Сразу оговорюсь имя "ПериодОтчета" в качестве имени своего параметра не использовать, оно системное.
(1) хочется спросить "Вам шашечки или ехать?"
т.е. вам нужен конечный результат или вам нужно разобраться в проблеме?
если разобраться в проблеме, то надо упрощать и фрагментировать область проблемы.
А именно - выяснить проблема в отчете или в данных?
посмотреть отдельно данные и отдельно результаты отчета. на промежуточных этапах формирования.
судя по поисанию проблема в отчете, но данных мало поэтому не могу точно утверждать.
берем консольку и смотрим данные регистров... сравниваем с результатами отчета.
если нужен конечный результат - то искать другие пути решения.