Запросе к РегистрБухгалтерии.Хозрасчетный.Остатки, по двум субконто

1. Grek_Master 26.06.20 22:23 Сейчас в теме
Добрый вечер!

Вопрос относительно простой. Но сразу решение не получается найти.

1. Есть РегистрБухгалтерии.Хозрасчетный.Остатки. И есть два субконто (субконто1 и субконто2). Где Субконто1 - Контрагенты, Субконто2 - Договоры контрагентов.

2. Есть массив ограничений субконто, как параметр на виртуальную таблицу (Контрагенты и Договоры из плана видов характеристик).

3. Есть МассивСчетов по которым надо сделать выборку. Пока все просто

4. Но не все счета могут иметь Субконто2. Контрагент есть, а договор не ведется. Например, можно посмотреть аналитику на счете 58.01 - только по контрагенту

Вопрос - как проще сделать запрос к данному регистру, что бы не ругался - "Субконто2" не найдено (если делать в "лоб", то будет ругаться)

Хотелось бы просто задать список счетов, одним массивом. И "простым запросом" обойти отсутствие "Субконто2" на ряде счетов. Т.е. на выходе хочу получить данные

- Счет
- Контрагент
- Договор (если ведется аналитики)
- Сумма

P/S

И пока писал - думаю, наверное придется делать две выборки по контрагентам, потом выборку по договорам. Соединять их по Контрагенту. И потом с этой выборкой работать далее

Проще есть еще решения?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. Grek_Master 02.07.20 15:41 Сейчас в теме +0.25 $m
Сделал проще

1. Первая таблица - Счета, которые имеют остаток за заданную дату, и которые имеют субконто "Договор"

2. Вторая таблица - тоже что п.1, но которые имеют субконто Контрагенты, с исключением счетов из п.1

3. Ну, а далее, имея две таблицы - все уже просто
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 72 26.06.20 23:52 Сейчас в теме
(1)Делаете пакетный запрос.
1. Получаете список счетов, у которых только первое субконто Контрагент
2. Получаете список счетов, у которых 2 субконто: Контрагент и Договор
3. Получаете Остатки, ограничивая счета списком из п.1, объединяете с остатками, ограниченными по счетам из п.2.
ipoloskov; +1 Ответить
2. Fox-trot 158 26.06.20 23:07 Сейчас в теме
можно и одним запросом, просто придется кучу городить из ВЫБОР КОГДА...
4. SAShikutkin 5 02.07.20 08:24 Сейчас в теме
ВЫБРАТЬ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&счет), , ) КАК ХозрасчетныйОстатки
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Счет КАК Счет,
ВременнаяТаблица.Субконто1 КАК Субконто1,
ВременнаяТаблица.Субконто2 КАК Субконто2,
ВременнаяТаблица.СуммаОстаток КАК СуммаОстаток
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
НЕ ВременнаяТаблица.Субконто1 В (&Субконто1)
И ВЫБОР
КОГДА ЕСТЬNULL(ВременнаяТаблица.Субконто2, "БезДоговора") <> "БезДоговора"
ТОГДА НЕ ВременнаяТаблица.Субконто2 В (&Субконто2)
КОНЕЦ
5. Grek_Master 02.07.20 15:41 Сейчас в теме +0.25 $m
Сделал проще

1. Первая таблица - Счета, которые имеют остаток за заданную дату, и которые имеют субконто "Договор"

2. Вторая таблица - тоже что п.1, но которые имеют субконто Контрагенты, с исключением счетов из п.1

3. Ну, а далее, имея две таблицы - все уже просто
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот