Запросе к РегистрБухгалтерии.Хозрасчетный.Остатки, по двум субконто
Добрый вечер!
Вопрос относительно простой. Но сразу решение не получается найти.
1. Есть РегистрБухгалтерии.Хозрасчетный.Остатки. И есть два субконто (субконто1 и субконто2). Где Субконто1 - Контрагенты, Субконто2 - Договоры контрагентов.
2. Есть массив ограничений субконто, как параметр на виртуальную таблицу (Контрагенты и Договоры из плана видов характеристик).
3. Есть МассивСчетов по которым надо сделать выборку. Пока все просто
4. Но не все счета могут иметь Субконто2. Контрагент есть, а договор не ведется. Например, можно посмотреть аналитику на счете 58.01 - только по контрагенту
Вопрос - как проще сделать запрос к данному регистру, что бы не ругался - "Субконто2" не найдено (если делать в "лоб", то будет ругаться)
Хотелось бы просто задать список счетов, одним массивом. И "простым запросом" обойти отсутствие "Субконто2" на ряде счетов. Т.е. на выходе хочу получить данные
- Счет
- Контрагент
- Договор (если ведется аналитики)
- Сумма
P/S
И пока писал - думаю, наверное придется делать две выборки по контрагентам, потом выборку по договорам. Соединять их по Контрагенту. И потом с этой выборкой работать далее
Проще есть еще решения?
Вопрос относительно простой. Но сразу решение не получается найти.
1. Есть РегистрБухгалтерии.Хозрасчетный.Остатки. И есть два субконто (субконто1 и субконто2). Где Субконто1 - Контрагенты, Субконто2 - Договоры контрагентов.
2. Есть массив ограничений субконто, как параметр на виртуальную таблицу (Контрагенты и Договоры из плана видов характеристик).
3. Есть МассивСчетов по которым надо сделать выборку. Пока все просто
4. Но не все счета могут иметь Субконто2. Контрагент есть, а договор не ведется. Например, можно посмотреть аналитику на счете 58.01 - только по контрагенту
Вопрос - как проще сделать запрос к данному регистру, что бы не ругался - "Субконто2" не найдено (если делать в "лоб", то будет ругаться)
Хотелось бы просто задать список счетов, одним массивом. И "простым запросом" обойти отсутствие "Субконто2" на ряде счетов. Т.е. на выходе хочу получить данные
- Счет
- Контрагент
- Договор (если ведется аналитики)
- Сумма
P/S
И пока писал - думаю, наверное придется делать две выборки по контрагентам, потом выборку по договорам. Соединять их по Контрагенту. И потом с этой выборкой работать далее
Проще есть еще решения?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Делаете пакетный запрос.
1. Получаете список счетов, у которых только первое субконто Контрагент
2. Получаете список счетов, у которых 2 субконто: Контрагент и Договор
3. Получаете Остатки, ограничивая счета списком из п.1, объединяете с остатками, ограниченными по счетам из п.2.
1. Получаете список счетов, у которых только первое субконто Контрагент
2. Получаете список счетов, у которых 2 субконто: Контрагент и Договор
3. Получаете Остатки, ограничивая счета списком из п.1, объединяете с остатками, ограниченными по счетам из п.2.
ВЫБРАТЬ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&счет), , ) КАК ХозрасчетныйОстатки
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Счет КАК Счет,
ВременнаяТаблица.Субконто1 КАК Субконто1,
ВременнаяТаблица.Субконто2 КАК Субконто2,
ВременнаяТаблица.СуммаОстаток КАК СуммаОстаток
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
НЕ ВременнаяТаблица.Субконто1 В (&Субконто1)
И ВЫБОР
КОГДА ЕСТЬNULL(ВременнаяТаблица.Субконто2, "БезДоговора") <> "БезДоговора"
ТОГДА НЕ ВременнаяТаблица.Субконто2 В (&Субконто2)
КОНЕЦ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&счет), , ) КАК ХозрасчетныйОстатки
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Счет КАК Счет,
ВременнаяТаблица.Субконто1 КАК Субконто1,
ВременнаяТаблица.Субконто2 КАК Субконто2,
ВременнаяТаблица.СуммаОстаток КАК СуммаОстаток
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
НЕ ВременнаяТаблица.Субконто1 В (&Субконто1)
И ВЫБОР
КОГДА ЕСТЬNULL(ВременнаяТаблица.Субконто2, "БезДоговора") <> "БезДоговора"
ТОГДА НЕ ВременнаяТаблица.Субконто2 В (&Субконто2)
КОНЕЦ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот