Как получить в запросе реквизит из составного типа данных?
Доброе время суток! Мучаюсь со следующей проблемой: есть регистр накопления, где регистратор является составным типом данных. Мне необходимо получить реквизит СтатьяДДС, в случае если тип документа регистратора Платежное поручение входящее. А в дальнейшем по этому реквизиту соединиться с регистром сведений. Я даже условие задала, чтобы отбирались только те записи где тип документа регистратора пл/п входящее. Статья ДДС выводится пустая, соответствие не находится :( Подкиньте, пожалуйста, идею.
Пример запроса:
ВЫБРАТЬ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Организация,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Контрагент,
НАЧАЛОПЕРИОДА(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.ДатаОплаты, ДЕНЬ) КАК Дата,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СуммаРегПриход,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор,
ВЫБОР
КОГДА РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
ТОГДА ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПлатежноеПоручениеВходящее).СтатьяДвиженияДенежныхСредств
КОГДА РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
ТОГДА ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПриходныйКассовыйОрдер).СтатьяДвиженияДенежныхСредств
КОНЕЦ КАК СтатьяДДС,
СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю джетам.СтатьяОборотовПоБюджетам
ИЗ
РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю джетам КАК СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю джетам
ПО (ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПлатежноеПоручениеВходящее).СтатьяДвиженияДенежныхСредств = СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю джетам.СтатьяДвиженияДенежныхСредств)
ГДЕ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СчетОплаты = ЗНАЧЕНИЕ(ПланСчетов.ХозРасчетный.РасчетыСПокупателями)
И РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
Пример запроса:
ВЫБРАТЬ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Организация,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Контрагент,
НАЧАЛОПЕРИОДА(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.ДатаОплаты, ДЕНЬ) КАК Дата,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СуммаРегПриход,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор,
ВЫБОР
КОГДА РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
ТОГДА ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПлатежноеПоручениеВходящее).СтатьяДвиженияДенежныхСредств
КОГДА РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
ТОГДА ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПриходныйКассовыйОрдер).СтатьяДвиженияДенежныхСредств
КОНЕЦ КАК СтатьяДДС,
СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю
ИЗ
РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю
ПО (ВЫРАЗИТЬ(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Документ.ПлатежноеПоручениеВходящее).СтатьяДвиженияДенежныхСредств = СоответствиеСтатейДвиженияДенежныхСредствСтатьямОборотовПоБю
ГДЕ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СчетОплаты = ЗНАЧЕНИЕ(ПланСчетов.ХозРасчетный.РасчетыСПокупателями)
И РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
проблема обычно в том что в ПлатПор, есть ТЧ расшифровка платежа, и когда стоит галка "списком", тогда видно что это ТЧ, а когда строчка в ней одна-единственная, то создается впечатление, что СтатьяДДС в шапке документа заполнена, но это не так, в общем не оттуда читаешь СтатьюДДС
(5) Iskra, к вложенным вообще лажа обращаться, получай в временную таблицу данные из регистра, вторым пакетом соединяй с ТЧ этих регистраторов и вытаскивай СтатьиДДС, вот тут вопрос - если окажется в расшифровке несколько строк - что делать, и лишь после этого соединяй с рег. свед.
Подобную проблему решал внутри запроса.
Нужно использовать команду запроса ВЫРАЗИТЬ(ПутьКПолю КАК ТИП)
смысл в том что эта команда работает своего рода как фильтр и выбирает только те записи где тип указанный в команде совпадает с типом значения в строке.
яндекс знает про эту команду все.
Еще это решение помогает вылечить сортировку списка в управляемых формах, которая не работает для реквизитов составного типа.
Нужно использовать команду запроса ВЫРАЗИТЬ(ПутьКПолю КАК ТИП)
смысл в том что эта команда работает своего рода как фильтр и выбирает только те записи где тип указанный в команде совпадает с типом значения в строке.
яндекс знает про эту команду все.
Еще это решение помогает вылечить сортировку списка в управляемых формах, которая не работает для реквизитов составного типа.
(11) m-serg74, получилось, но только не через вложенную таблицу. Нужную мне статью ДДС беру из регистра накопления "Движения ДДС", движения по которому записываются параллельно с движениями по РН "Расчеты по реализации, бух. учет", связь по документу регистратору:
ВЫБРАТЬ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Организация КАК Организация,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Контрагент КАК Контрагент,
НАЧАЛОПЕРИОДА(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Период, ДЕНЬ) КАК Дата,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СуммаРегПриход КАК СуммаРегПриход,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Регистратор,
ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
ИЗ
РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ДвиженияДенежныхСредствОбороты
ПО РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор = ДвиженияДенежныхСредствОбороты.Регистратор
Так работает ))) Спасибо)
ВЫБРАТЬ
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Организация КАК Организация,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Контрагент КАК Контрагент,
НАЧАЛОПЕРИОДА(РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Период, ДЕНЬ) КАК Дата,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.СуммаРегПриход КАК СуммаРегПриход,
РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор КАК Регистратор,
ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
ИЗ
РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ДвиженияДенежныхСредствОбороты
ПО РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОбороты.Регистратор = ДвиженияДенежныхСредствОбороты.Регистратор
Так работает ))) Спасибо)
(13) Iskra, повнимательнее с этим регистром (РасчетыПоРеализацииВУсловныхЕдиницахОрганизации), там имеются "подводные камни", сам одно время с ним возился (дебиторку-кредиторку нужно было для бюджетирования выдергивать)... например, если есть ПП только по управл. учету в этом рег. их не будет, еще там фигня какая то была, там же еще есть РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации, и они как то там хитро используются...
В общем, вопрос нерешаем - по реквизиту составного типа получить ТЧ регистратора НЕВОЗМОЖНО.
Максимум, чего я добился использованием ВЫБОР...КОГДА в источнике запроса (обошел все идиотские ограничения "нельзя обращаться к вложенной таблице через поле составного типа", синтаксис идеален, конструктор запроса на "ура" открывает) - это получил ошибку SDBL "Такого поля нет в базе" (дело на MS SQL происходило).
Так что - молодец 1С, что сама ввела непонятно что (составные типы, ТЧ, и ВЫРАЗИТЬ в запросе), работающее кое-как.
P/S/ Конечно, исключая вариант, когда у каждого типа составного реквизита - есть эта ТЧ: тогда все дело просто "скатывается" к варианту "обычного реквизита", и ТЧ получается стандартным путем.
Максимум, чего я добился использованием ВЫБОР...КОГДА в источнике запроса (обошел все идиотские ограничения "нельзя обращаться к вложенной таблице через поле составного типа", синтаксис идеален, конструктор запроса на "ура" открывает) - это получил ошибку SDBL "Такого поля нет в базе" (дело на MS SQL происходило).
Так что - молодец 1С, что сама ввела непонятно что (составные типы, ТЧ, и ВЫРАЗИТЬ в запросе), работающее кое-как.
P/S/ Конечно, исключая вариант, когда у каждого типа составного реквизита - есть эта ТЧ: тогда все дело просто "скатывается" к варианту "обычного реквизита", и ТЧ получается стандартным путем.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот