|
|
Запрос по виртуальной таблице ДвиженияССубконто и проводка со счетом 000 |
☑ |
|
0
dimawrx
20.06.22
✎
13:16
|
Надо определить, есть ли в проводках документа по регистру бухгалтерии записи с видом субконто Номенклатура.
Делаю такой запрос:
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйДвиженияССубконто.Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
| ,
| ,
| Регистратор = &Регистратор
| И (ВидСубконтоДт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
| ИЛИ ВидСубконтоДт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
| ИЛИ ВидСубконтоДт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
| ИЛИ ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
| ИЛИ ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
| ИЛИ ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)),
| ,
| ) КАК ХозрасчетныйДвиженияССубконто";
Запрос работает, кроме случая, когда в проводке используется счет 000, на котором нет субконто, то есть не выбирает записи типа Дт 10 Кт 000.
Это нормальное поведение платформы и надо по другому делать запрос?
|
|
|
1
DCKiller
20.06.22
✎
13:18
|
А на 10 счете субконто точно "Номенклатура"? Или м.б. какие-нибудь "Материалы"... Ну так, на всякий случай.
И сформированы ли эти проводки Дт 10 Кт 000 именно тем регистратором, по которому отбираешь записи?
|
|
|
2
RomanYS
20.06.22
✎
13:21
|
(0) таблица ДвиженияССубконто самая кривая и тормозная. Если это весь запрос, то логичнее просто заменить на реальную таблицу Субконто
|
|
|
3
dimawrx
20.06.22
✎
13:25
|
(1)
Да, номенклатура, вот такие проводки, как на скрине, не отбираются
https://disk.yandex.ru/i/TIRKxUPivXuzcQ
|
|
|
4
DCKiller
20.06.22
✎
13:31
|
Запрос выполняется в обычном модуле или в СКД?
Попробуй, как вариант, для каждого "ИЛИ" создать отдельную таблицу (разбить на несколько ОБЪЕДИНИТЬ)
|
|
|
5
RomanYS
20.06.22
✎
13:36
|
+(2) в плоской таблице Субконто есть то, что тебе нужно. И все твои отборы попадут в индекс.
Вместо этого ты берешь монструозную виртуальную таблицу и накладываешь условия или на 6 полей. Зачем?
|
|
|
6
dimawrx
20.06.22
✎
13:43
|
(4) Обычный модуль.
(5) Спасибо, попробую сделать через Субконто. Этот запрос был написан лет 15 назад и ошибка только сейчас проявилась.
|
|
|
7
dimawrx
20.06.22
✎
13:59
|
(5) Еще раз спасибо! С Субконто записи стали выбираться, запрос стал проще и быстрее.
|
|
|
8
Ёпрст
гуру
20.06.22
✎
14:22
|
(5) с 15 релиза это уже не монструозная виртуальная табличка, а реальная табличка.. и должно работать и так
|
|
|
9
RomanYS
20.06.22
✎
15:15
|
(8) ну менее монструозной она от это не стала. Ну и возможно это и есть причина проблем ТС - при переходе на реальную таблицу, заполнилась она криво и из-за этого проводки не находятся.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший