Помогите разобраться с начальными остатками в СКД

1. assa 61 20.02.19 10:47 Сейчас в теме
Добрый день. Помогите разобраться, что я делаю не так. Строю отчет в СКД. Конфигурация самописная, тестовая, просто для изучения. Взаиморасчеты в валюте. Регистр хранит абсолютные суммы, в отчет суммы выводятся в перерасчете на валюту взаиморасчетов. Для этого в СКД вычисляю курс валюты на дату документа и добавляю поле с формулой такого вида:
ВЫРАЗИТЬ(ОтаткиПоКурсу.СтоимостьНачальныйОстаток * (ОтаткиПоКурсу.КурсУчета / КурсПоДатам.Курс) КАК ЧИСЛО(15, 2))
ВЫРАЗИТЬ(ОтаткиПоКурсу.СтоимостьПриход * (ОтаткиПоКурсу.КурсУчета / КурсПоДатам.Курс) КАК ЧИСЛО(15, 2))
ВЫРАЗИТЬ(ОтаткиПоКурсу.СтоимостьРасход * (ОтаткиПоКурсу.КурсУчета / КурсПоДатам.Курс) КАК ЧИСЛО(15, 2))
ВЫРАЗИТЬ(ОтаткиПоКурсу.СтоимостьКонечныйОстаток * (ОтаткиПоКурсу.КурсУчета / КурсПоДатам.Курс) КАК ЧИСЛО(15, 2))

Так же в СКД присутствуют и обычные поля остатков
ОтаткиПоКурсу.СтоимостьНачальныйОстаток
ОтаткиПоКурсу.СтоимостьПриход
ОтаткиПоКурсу.СтоимостьРасход
ОтаткиПоКурсу.СтоимостьКонечныйОстаток

При построении отчета с использованием полей с формулой получаю результат с начальными остатками, при использовании стандартных полей. начального остатка нет. И это правильно. Остатка нет. Что я делаю не так? Спасибо.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. dhurricane 20.02.19 11:01 Сейчас в теме
(1) На закладке наборов данных проверьте роли для своих полей. Наверняка обычные поля остатка имеют роль "НачальныйОстаток" и "КонечныйОстаток". Те же роли надо дать и новым полям остатка, которые пересчитываются по курсу валюты.
7. dhurricane 20.02.19 11:19 Сейчас в теме
(6) Она относится к начальному остатку, для него не может быть регистратора, по которому вы разворачиваете данные регистра. И эта строка нужна СКД, чтобы использовать ее значение в итогах по группировке и в общем итоге.

Попробуйте наложить отбор на саму группировку по регистратору вида "Регистратор Заполнен".
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. dhurricane 20.02.19 11:01 Сейчас в теме
(1) На закладке наборов данных проверьте роли для своих полей. Наверняка обычные поля остатка имеют роль "НачальныйОстаток" и "КонечныйОстаток". Те же роли надо дать и новым полям остатка, которые пересчитываются по курсу валюты.
6. assa 61 20.02.19 11:14 Сейчас в теме
(3)Спасибо! Получил то, что хотел. Может быть научите еще, как убрать первую пустую строку?
7. dhurricane 20.02.19 11:19 Сейчас в теме
(6) Она относится к начальному остатку, для него не может быть регистратора, по которому вы разворачиваете данные регистра. И эта строка нужна СКД, чтобы использовать ее значение в итогах по группировке и в общем итоге.

Попробуйте наложить отбор на саму группировку по регистратору вида "Регистратор Заполнен".
8. assa 61 20.02.19 11:33 Сейчас в теме
(7)Получилось. Но я почему то думал, что это, что то типа костыля. Еще раз спасибо. Два ответа, две десятки :)
9. dhurricane 20.02.19 11:36 Сейчас в теме
(8) Возможно. Но эта строка есть в результате запроса, и как я уже сказал, она нужна СКД.

Вы можете подойти к вопросу творчески. :) Например, задать выражение представления для Регистратора: когда он не заполнен, выводить вместо него понятную пользователю надпись. Что-то вроде: "Начальный остаток на <НачалоПериодаОтчета>".
10. dhurricane 20.02.19 11:43 Сейчас в теме
(8) Я уже засомневался. А если отфильтровать эту строку прямо в запросе, получится ли верный результат? Вы можете провести эксперимент?
11. assa 61 20.02.19 11:47 Сейчас в теме
(10)Я не настолько силен в СКД. Скажите, что сделать, я попробую. Наверное, для регистратора в запросе надо написать "Выбор Когда Регистратор не NULL ..." Дайте, пожалуйста, образец, а я его к своему запросу приспособлю.
12. dhurricane 20.02.19 11:50 Сейчас в теме
(11) Не, просто в запросе написать "ГДЕ Таблица.Регистратор <> Неопределено" или "ГДЕ Не Таблица.Регистратор ЕСТЬ NULL" (не помню точно, какое именно значение принимает поле регистратора). А отбор на уровне группировки убрать.
13. assa 61 20.02.19 11:55 Сейчас в теме
(12)
ГДЕ Таблица.Регистратор <> Неопределено
Вставил такое, убрал отбор в настройках. Результат верный.
Прикрепленные файлы:
2. YannikAlx 43 20.02.19 10:56 Сейчас в теме
Если вы сами признали , что "И ЭТО ПРВИЛЬНО" что остатков нет, то вопрос о чем?
4. d.batovskiy 20.02.19 11:02 Сейчас в теме
В наборе данных сделайте периодичность "Авто", и добавьте поле ПериодСекунда
5. assa 61 20.02.19 11:13 Сейчас в теме
Оставьте свое сообщение

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