Слетает начальный остаток при добавление колонки в стандартном отчёте на СКД

1. just_junior 10.11.20 14:36 Сейчас в теме
Всем доброго дня!

Возникла необходимость доработать стандартный отчёт из УТ 11.4 "Ведомость по товарам на складах", а именно добавить колонку в которой будет вся та же информация, что и в колонке "Расход", но только по документам Реализации. Это я сделал, сохранил отчёт как внешний, в СКД добавил новое поле и вывел его в отчёт, но при этом возникла проблема, появляются не понятные цифры начального остатка. В чём собственно проблема понять не могу, кто нибудь сталкивался с похожей ситуацией?

Платформа 8.3.17.1549
Прикрепленные файлы:
Найденные решения
20. echo77 1865 12.11.20 12:19 Сейчас в теме
(0) В роли у полей ПериодСекунда, Регистратор поставьте флаг Обязательное
Скорее всего, проблема в том, что когда выбирается поле Продажи, оно при своем расчете использует Регистратор(Тип значения), что говорит виртуальной таблице, что периодичность до Регистратора.
Данные берем с детализацией до регистратора, а поля Периода ПериодСекунда у нас нет. Вот СКД и не может правильно рассчитать остатки
just_junior; +1 Ответить
24. echo77 1865 12.11.20 15:36 Сейчас в теме
(23) ага, так. Отчет уже поставили в справочник внешние отчеты и обработки? Я к тому чтобы попробовать изменить его имя в метаданных, возможно старая схема исполняется
just_junior; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. toypaul 63 11.11.20 09:52 Сейчас в теме
(1)
Это я сделал, сохранил отчёт как внешний


вот это конечно очень ценная информация :) гораздо ценнее запроса и структуры настроек.
4. just_junior 11.11.20 10:11 Сейчас в теме
(3) Текст запроса приложил в файле, дописал именно это

ВЫБОР
	КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)
		ТОГДА ВЫБОР
				КОГДА &ЕдиницыКоличества = 0
					ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
				КОГДА &ЕдиницыКоличества = 1
					ТОГДА ВЫБОР
							КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
								ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
							ИНАЧЕ 0
						КОНЕЦ
			КОНЕЦ
КОНЕЦ КАК Продажи
Показать


Структуру отчёт приложил
Прикрепленные файлы:
Текст запроса.txt
5. 1ctalik 11.11.20 10:37 Сейчас в теме
(4)
ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)
        ТОГДА ВЫБОР
                КОГДА &ЕдиницыКоличества = 0
                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
                КОГДА &ЕдиницыКоличества = 1
                    ТОГДА ВЫБОР
                            КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
                                ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
                            ИНАЧЕ 0
                        КОНЕЦ
           Иначе 0
            КОНЕЦ

КОНЕЦ КАК Продажи
Показать


А если так?
6. toypaul 63 11.11.20 10:41 Сейчас в теме
(4) в запросе выбирается поле ПериодСекунда? если нет, надо добавить. это самое простое, что можно подсказать. остальное только смотреть сам отчет
7. 1ctalik 11.11.20 10:42 Сейчас в теме
(6) Выбирается. В текстовом файле - текст запроса
8. just_junior 11.11.20 10:45 Сейчас в теме
10. 1ctalik 11.11.20 10:52 Сейчас в теме
(8) Попробуй это
Прикрепленные файлы:
Текст запроса.txt
12. just_junior 11.11.20 11:00 Сейчас в теме
(10) Перестал отчёт формироваться, без каких либо ошибок завершает формирование. Заменил свой запрос, просто на твой. Сейчас попробую посмотреть детальней
13. 1ctalik 11.11.20 11:02 Сейчас в теме
(12) У меня работает как надо. В твой отчет вставил свой запрос
Прикрепленные файлы:
ВедомостьПоТоварамНаСкладахВнешний.erf
14. just_junior 11.11.20 11:16 Сейчас в теме
(13) Да, твой отчёт формируется, но у меня по прежнему есть почему-то начальный остаток. Если в режиме пользователя отключаю поле "Продажи", становится всё норм. Может это от базы самой как-то зависит
Прикрепленные файлы:
15. 1ctalik 11.11.20 11:17 Сейчас в теме
(14) Запусти мой отчет в другой базе, где ты еще не запускал свой
16. just_junior 11.11.20 11:38 Сейчас в теме
(15) Запустил на демо базе УТ 11.4.13.47 (была под рукой), начальный остаток по прежнему странный
Прикрепленные файлы:
9. just_junior 11.11.20 10:52 Сейчас в теме
(6) Если поможет, приложил сам отчёт
Прикрепленные файлы:
ВедомостьПоТоварамНаСкладахВнешний.erf
17. toypaul 63 11.11.20 12:21 Сейчас в теме
(9) у меня хоть и УТ 11.1 но такая же шняга с этим отчетом
18. toypaul 63 11.11.20 12:40 Сейчас в теме
(9) Короче тут такая фишка ... (и увидеть ее можно только при отладке как я писал). Если в запросе идет обращение к регистратору, то такой запрос возвращается данные с разворотом по нему. В том числе начальный остаток. Но самого регистратора в выборке нет. Отчего СКД сносит башню - раз нет регистратора в выборке, значит начальный остаток суммируем по данным выборки. А он там развернут по регистратору. Вот и получается фигня.

Тут может помочь или получение этого ресурса в отдельном запросе объединения - из оборотов или из движений и соот-но потом склейка основного запроса с этой частью. Или (что почти тоже самое) получение этих данных в отдельном наборе и потом соединение через набор объединения.

Короче нужно добиться того, чтобы в возвращаемой выборке выполняемый запрос не разворачивал остаток по регистратору, если этого регистратора нет в выбранных полях
19. just_junior 11.11.20 12:50 Сейчас в теме
(18)Спасибо. Попробую сделать и напишу результат
2. toypaul 63 11.11.20 09:51 Сейчас в теме
Щяс допью свой кофе и посмотрю, что там на дне - тогда напишу какая причина из десяти возможных
11. toypaul 63 11.11.20 10:56 Сейчас в теме
ну ... может еще сравнить роли у ресурсов и измерений. может они слетели (хотя не должны были).

что еще можно посоветовать - взять консоль компоновки данных (тут на ИС можно поискать в статьях по "Отладка СКД"), посмотреть какой запрос там отправляется платформе для выполнения, выполнить его в консоли запросов (не в консоли СКД) и посмотреть что выйдет. если такой же кривой результат, то можно будет дальше смотреть. если результат правильный, то хуже - тут уже какие-то внутренние механизмы СКД сломались
20. echo77 1865 12.11.20 12:19 Сейчас в теме
(0) В роли у полей ПериодСекунда, Регистратор поставьте флаг Обязательное
Скорее всего, проблема в том, что когда выбирается поле Продажи, оно при своем расчете использует Регистратор(Тип значения), что говорит виртуальной таблице, что периодичность до Регистратора.
Данные берем с детализацией до регистратора, а поля Периода ПериодСекунда у нас нет. Вот СКД и не может правильно рассчитать остатки
just_junior; +1 Ответить
21. just_junior 12.11.20 14:55 Сейчас в теме
(20) Попробовал, не вышло, формируется по прежнему с начальным остатком
22. echo77 1865 12.11.20 14:57 Сейчас в теме
(21) Покажите скрин схемы
23. just_junior 12.11.20 15:00 Сейчас в теме
(22) Это?
Прикрепленные файлы:
24. echo77 1865 12.11.20 15:36 Сейчас в теме
(23) ага, так. Отчет уже поставили в справочник внешние отчеты и обработки? Я к тому чтобы попробовать изменить его имя в метаданных, возможно старая схема исполняется
just_junior; +1 Ответить
25. just_junior 12.11.20 16:03 Сейчас в теме
(24) Спасибо большое, обновил внешний отчёт и всё заработало)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот