Доброго дня!
Подскажите, пожалуйста, с решением проблемы.
Есть регистр в УТ взаиморасчеты по срокам, регистратором у него является определяемый тип "Расчетный документ"
Как в запросе выбрать все регистраторы по типу "Поступлениена расчетный счет".

Опробовал ТИПЗНАЧЕНИЯ, ССЫЛКА, ВЫРАЗИТЬ - везде выдает ошибку.

ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор.Ссылка) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств) - не отрабатывает
ССЫЛКА - выдает ошибку о несовместимости типов
Спасибо!
---
мой выход - это использовать основную таблицу, чтобы выдернуть реквизит. виртуальная таблица обороты с остатками не подходят. Еще раз спасибо!
---
не совсем понятен вопрос. Определяемый тип доступен только в конфигураторе и через ОбъектМетаданных.
В запросе будут доступны типы, которые определены в состав определяемого типа. Определяемый тип можно рассматривать как составной тип из состава определяемого типа.
Соответственно, если тип Документ.ПоступлениеБезналичныхДенежныхСредств входит в состав определяемого типа, то по нему можно делать отбор. В том числе и через Ссылка.

Приведите код, который пробовали и не отрабатывает.
---
А зачем ты берёшь Регистратор.Ссылка? Регистратор - это уже ссылка, а его ещё дополнительно соединяешь со всеми таблицами документов, входящих в определяемый тип.
---
```1c
    Пробовал из без ссылки. Вернул как было - результат запроса = 0
    ВЫБРАТЬ
    СУММА(ЗаказКлиентаТовары.СуммаСНДС) КАК СуммаЗаказа,
    ЗаказКлиентаТовары.Ссылка КАК Заказ
    ПОМЕСТИТЬ ВРЕМ_ЗАКАЗЫССУММОЙ
    ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
    ГДЕ
    ЗаказКлиентаТовары.Ссылка В(&Заказы)

    СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов КАК ЗАКАЗКЛИЕНТА,
    ВРЕМ_ЗАКАЗЫССУММОЙ.СуммаЗаказа КАК СуммаЗаказа,
    ВЫБОР
    КОГДА РасчетыСКлиентамиПоСрокамОстаткиИОбороты.РасчетныйДокумент.ХозяйственнаяОперация = &ХО
    ТОГДА РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ПредоплатаНачальныйОстаток + РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ПредоплатаПриход
    ИНАЧЕ 0
    КОНЕЦ КАК Оплата,
    ВЫБОР
    КОГДА РасчетыСКлиентамиПоСрокамОстаткиИОбороты.РасчетныйДокумент.ХозяйственнаяОперация = &ХОПогашение
    ТОГДА РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ДолгПриход
    ИНАЧЕ 0
    КОНЕЦ КАК ПогашениеДолга,
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор КАК РасчетныйДокумент
    //ВЫРАЗИТЬ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор КАК Документ.ПоступлениеБезналичныхДенежныхСредств)

    ПОМЕСТИТЬ врЕм_всезаКАЗЫЗАПериодССУММОЙ_1
    ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоСрокам.ОстаткиИОбороты(, , Регистратор, , ) КАК РасчетыСКлиентамиПоСрокамОстаткиИОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ ВРЕМ_ЗАКАЗЫССУММОЙ КАК ВРЕМ_ЗАКАЗЫССУММОЙ
    ПО (РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов = ВРЕМ_ЗАКАЗЫССУММОЙ.Заказ)
    ГДЕ
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов В(&Заказы)
    И
    ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств)
```
---
Последняя строка не отрабатывает, без нее работает
---
что значит не отрабатывает? Нет данных?
Ну и самое главное. Отбор по конкретному типу не отменяет соединение по всем таблицам, если нет ВЫРАЗИТЬ для явного указания типа регистратора при обращении к/через регистратор.
---
Это только в запросе есть обращение через точку от поля с сотставным типом. Если в запросе дальнейшего обращения нет - то и связей никаких не строится.
---
смотри внимательно запрос:
РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор КАК РасчетныйДокумент
---
Да, и где здесь обращение к данным регистратора через точку? Нет его. Просто берётся сама ссылка из таблицы регистра, дальше связь не идёт.
---
а получение ссылки регистратора это не получение данных через регистратор? Ну проверь :)
---
Нет, это поле самой таблицы регистра. Вот если написать Регистратор.Ссылка - тогда да, будет связь ссылки из таблицы регистра с таблицами самих регистраторов., и я об этом написал в (2).
А если писать просто Регистратор - то это просто ссылка из самой таблицы регистра, она ни с чем не связывается, она уже есть.

UPD. Иначе по твоей логике, использование любой ссылки в запросе автоматически ведёт к левому соединения с этой таблицей (владельцем ссылки). Но это же не так.
---
да. ты прав. Тут наложилось представление кода в шапке:
ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор.Ссылка) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств)
Вот он него и подсознание и сработало.
---
нет данных. Результат запроса пустой, потому что последняя строка условия не работает. Т.е. в этом регистре регистратор никогда не равен типу документа "ПоступлениеБезналичныхДенежныхСредств". А равен типу "определяемый" тип, или не правильно думаю?
---
или не правильно думаю?
Вот это правильный ответ.
Нет в регистре данных, которые соответствовали бы отбору:
И РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов В(&Заказы)
И ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств)
---
Нет в регистре данных, которые соответствовали бы отбору - согласен.

И РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов В(&Заказы) - оставляю только это условие - все работает
И ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.Регистратор) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств) - если оставлять только это условие - всегда пустой результат.
---
учитывая, что через Ссылка ругается, то скорее всего тип Документ.ПоступлениеБезналичныхДенежныхСредств не включен в определяемый тип.
---
проверял
---
Это Измерение а не регистратор!!!
---
Да, понял свою ошибку, спасибо
---
Спасибо, помог разобраться. У этого регистра нет такого регистратора. Это я подзатупил )
---
Красавчик!
---
Это я подзатупил ) Это заслуживает вознаграждения, а тому, кто помог - и "спасибо" хватит! ;-)
---
Да сейчас сам же свой ответ отметит как правильный, и успокоится.
---
РасчетныйДокумент содержит в себе ссылку на ПоступлениеБезналичныхДенежныхСредств
---
это один из вариантов )
---
скрин регистратора в регистре
---
Хотя, эта строка тоже не отрабатывает

И ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиПоСрокамОстаткиИОбороты.РасчетныйДокумент) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств)
---
Посмотри свой скрин в (10). Там нет документов поступления ДС. Там есть "Регистратор расчетов". Согласись, это несколько другой тип документа.
---
что вернет такой запрос:

```1c
    ВЫБРАТЬ
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.ОбъектРасчетов КАК ОбъектРасчетов,
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.РасчетныйДокумент КАК РасчетныйДокумент
    ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоСрокам.ОстаткиИОбороты(, , , , ) КАК РасчетыСКлиентамиПоСрокамОстаткиИОбороты
    ГДЕ
    РасчетыСКлиентамиПоСрокамОстаткиИОбороты.РасчетныйДокумент ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
```

?
---
мой выход - это использовать основную таблицу, чтобы выдернуть реквизит. виртуальная таблица обороты с остатками не подходят. Еще раз спасибо!
---
Я ж говорил, сам себя отметит. Да ещё и с неправильным решением.
---
другого варианта, чтобы решить мою задачу нет (простого), того, кто помог - я упомянул, себе решение не присвоил, что не так? ))
---
Не работает
---
определяемый тип