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

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

При построении отчета с использованием полей с формулой получаю результат с начальными остатками, при использовании стандартных полей. начального остатка нет. И это правильно. Остатка нет. Что я делаю не так? Спасибо.
---
На закладке наборов данных проверьте роли для своих полей. Наверняка обычные поля остатка имеют роль "НачальныйОстаток" и "КонечныйОстаток". Те же роли надо дать и новым полям остатка, которые пересчитываются по курсу валюты.
---
Она относится к начальному остатку, для него не может быть регистратора, по которому вы разворачиваете данные регистра. И эта строка нужна СКД, чтобы использовать ее значение в итогах по группировке и в общем итоге.

Попробуйте наложить отбор на саму группировку по регистратору вида "Регистратор Заполнен".
---
На закладке наборов данных проверьте роли для своих полей. Наверняка обычные поля остатка имеют роль "НачальныйОстаток" и "КонечныйОстаток". Те же роли надо дать и новым полям остатка, которые пересчитываются по курсу валюты.
---
Спасибо! Получил то, что хотел. Может быть научите еще, как убрать первую пустую строку?
---
Она относится к начальному остатку, для него не может быть регистратора, по которому вы разворачиваете данные регистра. И эта строка нужна СКД, чтобы использовать ее значение в итогах по группировке и в общем итоге.

Попробуйте наложить отбор на саму группировку по регистратору вида "Регистратор Заполнен".
---
Получилось. Но я почему то думал, что это, что то типа костыля. Еще раз спасибо. Два ответа, две десятки :)
---
Возможно. Но эта строка есть в результате запроса, и как я уже сказал, она нужна СКД.

Вы можете подойти к вопросу творчески. :) Например, задать выражение представления для Регистратора: когда он не заполнен, выводить вместо него понятную пользователю надпись. Что-то вроде: "Начальный остаток на <НачалоПериодаОтчета>".
---
Я уже засомневался. А если отфильтровать эту строку прямо в запросе, получится ли верный результат? Вы можете провести эксперимент?
---
Я не настолько силен в СКД. Скажите, что сделать, я попробую. Наверное, для регистратора в запросе надо написать "Выбор Когда Регистратор не NULL ..." Дайте, пожалуйста, образец, а я его к своему запросу приспособлю.
---
Не, просто в запросе написать "ГДЕ Таблица.Регистратор <> Неопределено" или "ГДЕ Не Таблица.Регистратор ЕСТЬ NULL" (не помню точно, какое именно значение принимает поле регистратора). А отбор на уровне группировки убрать.
---
ГДЕ Таблица.Регистратор <> Неопределено Вставил такое, убрал отбор в настройках. Результат верный.
---
Если вы сами признали , что "И ЭТО ПРВИЛЬНО" что остатков нет, то вопрос о чем?
---
В наборе данных сделайте периодичность "Авто", и добавьте поле ПериодСекунда
---
Да, так и сделано.