Коллеги, добрый день. Необходимо в запросе без использования параметров установить отбор по нескольким видам субконто. Например, для отбора по виду субконто «контрагенты» используется запрос:
ХозрасчетныйОбороты.Счет,
ХозрасчетныйОбороты.Субконто1
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), , , ) КАК ХозрасчетныйОбороты
Как этот отбор установить проще всего? Заранее спасибо!
Светлана написал: Коллеги, добрый день. Необходимо в запросе без использования параметров установить отбор по нескольким видам субконто. Например, для отбора по виду субконто «контрагенты» используется запрос: ХозрасчетныйОбороты.Счет, ХозрасчетныйОбороты.Субконто1 ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), , , ) КАК ХозрасчетныйОбороты Как этот отбор установить проще всего? Заранее спасибо!
Попробуйте передать массив субконто. Там вообще порядок никакой роли не играет, а именно как вы будете в массе задавать, так они и будут располагаться. Массив задать можно через параметры.
Вид субконто - массив, порядок в массиве определяет порядок вытаскиваемых субконто1, субконто2, то есть Контрагент, Договор. В итоге у вас Субконто1 будет всегда контрагент, Субконто2 - договор. И не важно, как они на счетах располагаются.
Светлана написал: Коллеги, добрый день. Необходимо в запросе без использования параметров установить отбор по нескольким видам субконто. Например, для отбора по виду субконто «контрагенты» используется запрос: ХозрасчетныйОбороты.Счет, ХозрасчетныйОбороты.Субконто1 ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), , , ) КАК ХозрасчетныйОбороты Как этот отбор установить проще всего? Заранее спасибо!
Смотрите, можно же еще вот так сделать
ВЫБРАТЬ
ЗаказыПокупателейОбороты.ЗаказПокупателя,
ЗаказыПокупателейОбороты.КоличествоОборот,
ЗаказыПокупателейОбороты.СуммаУпрОборот
ИЗ
РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ЗаказПокупателя.ТипЗаказа В (ЗНАЧЕНИЕ(Перечисление.ТипыЗаказов.Головной),ЗНАЧЕНИЕ(Перечисление.ТипыЗаказов.Лицензии))) КАК ЗаказыПокупателейОбороты
Хотя вообще бывает, что с видом субконто не работает.
Светлана написал: Коллеги, добрый день. Необходимо в запросе без использования параметров установить отбор по нескольким видам субконто. Например, для отбора по виду субконто «контрагенты» используется запрос: ХозрасчетныйОбороты.Счет, ХозрасчетныйОбороты.Субконто1 ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), , , ) КАК ХозрасчетныйОбороты Как этот отбор установить проще всего? Заранее спасибо!
Смотрите, можно же еще вот так сделать ВЫБРАТЬ ЗаказыПокупателейОбороты.ЗаказПокупателя, ЗаказыПокупателейОбороты.КоличествоОборот, ЗаказыПокупателейОбороты.СуммаУпрОборот ИЗ РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ЗаказПокупателя.ТипЗаказа В (ЗНАЧЕНИЕ(Перечисление.ТипыЗаказов.Головной),ЗНАЧЕНИЕ(Перечисление.ТипыЗаказов.Лицензии))) КАК ЗаказыПокупателейОбороты Хотя вообще бывает, что с видом субконто не работает.
Да, при этом еще такая тема есть, можно попробовать
Обороты:
Субконто (необязательный)
Тип параметра: ПланВидовХарактеристикСсылка.; Массив; ФиксированныйМассив; СписокЗначений.
Ссылка, или массив ссылок, или фиксированный массив ссылок, или список значений, содержащий ссылки, на виды субконто.
ВЫБРАТЬ
ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры) КАК Тип
В параметре Субконто можно передать не значение субконто, а значение вида субконто или массив видов субконто. А для отбора по значению субконто используется параметр Условие. У меня было так, например, что был запрос из регистра бухгалтерии. В нем отбирались данные по периоду и счету. Нужно было сделать также отбор по неизвестно какому субконто, но при это его вид был однозначно определен = СтатьиДвиженияДенСредств. И вот я тоже думала, как установить еще и отбор по субконто.
Тогда мы решили передать МассивВидовСубконто в параметре виртуальной таблицы. И вот это переместили в параметры вирт. таблицы: [/code] и туда же добавили свой отбор по субконто. Использовали «ИЛИ», так как не знали, каким именно субконто было наше субконто.
Виктория написал: В параметре Субконто можно передать не значение субконто, а значение вида субконто или массив видов субконто. А для отбора по значению субконто используется параметр Условие. У меня было так, например, что был запрос из регистра бухгалтерии. В нем отбирались данные по периоду и счету. Нужно было сделать также отбор по неизвестно какому субконто, но при это его вид был однозначно определен = СтатьиДвиженияДенСредств. И вот я тоже думала, как установить еще и отбор по субконто. Тогда мы решили передать МассивВидовСубконто в параметре виртуальной таблицы. И вот это переместили в параметры вирт. таблицы: [/code] и туда же добавили свой отбор по субконто. Использовали «ИЛИ», так как не знали, каким именно субконто было наше субконто.
Вообще знаю, что если параметр <Субконто> задан, то выбираются данные только по тем счетам, у которых определены все указанные виды субконто. При этом поля "Субконто<N>" будут содержать значения, соответствующие переданным видам субконто. Например, если один счет имеет настройку субконто "Материалы, Склад", а второй "Склад, Материалы", и параметр "Виды субконто" задан как массив "Материалы, Склад", то поле "Субконто1" будет содержать материалы, а поле "Субконто2" - склады, независимо от счета.
Также принципиальный момент состоит в том, что массив «Субконто» передается по запросу. И запрос используется субконто в этом же порядке. А в каком они стоят на счете – роли не играет. Лишь бы были.
Еще можно использовать ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ.
если ТИПЗНАЧЕНИЯ(МестоХранения) тогда берите Субконто2.