![]() |
|
Неверно считается колонка в СКД | ☑ | ||
---|---|---|---|---|
0
МешочекЗнаний
25.06.20
✎
17:28
|
Приветствую. Понадобилось объединить две таблицы в запросе СКД и получил странную картинку. Ниже упрощённые примеры для воспроизведения ошибки:
Первый вариант отчёта - получение поля через точку 1) Получаю поле "Дата" от регистратора через точку http://www.ximage.ru/data/imgs/1593094012.jpg 2)Строю отчёт с расшифровкой по регистратору - всё ок (Начальный и конечный остаток не суммируется) http://www.ximage.ru/data/imgs/1593094143.jpg 3) Строю без расшифровки по регистратор - всё ок.(Начальный и конечный остаток не суммируется) http://www.ximage.ru/data/imgs/1593094280.jpg Второй вариант отчёта - получение поля с помощью левого соединения таблиц 1) Получаю поле "Дата" от регистратора через левое соединение http://www.ximage.ru/data/imgs/1593094420.jpg[/IMG] 2)Строю отчёт с расшифровкой по регистратору - всё ок (Начальный и конечный остаток не суммируется) http://www.ximage.ru/data/imgs/1593094483.jpg 3) Строю без расшифровки по регистратор - ошибка.(Начальный и конечный суммируется) http://www.ximage.ru/data/imgs/1593094579.jpg Почему такой эффект и что нужно исправить чтобы во втором варианте колонки начального и конечного остатка не суммировались? з.ы. Файлы для примера с внешними отчётами: https://dropmefiles.com/RtR4p |
|||
1
МешочекЗнаний
25.06.20
✎
17:31
|
(0) Жаль нельзя тему отредактировать. В четвёртой ссылке на скриншот не удалил тег IMG. Вот правильная ссылка.
http://www.ximage.ru/data/imgs/1593094420.jpg |
|||
2
toypaul
гуру
25.06.20
✎
17:41
|
качать отчет лень, но как мне кажется во втором варианте нужно реквизиту дата, который теперь не от регистратора получается присвоить роль Период. только вот какой номер поставить ... можно такой же как у регистратора, или больше чем у регистратора. ну или меньше чем у регистратора
|
|||
3
МешочекЗнаний
25.06.20
✎
17:44
|
(2) Не, я дату ради примера вытащил. Могу любое другое поле взять, например код, или наименование, или любой другой реквизит - эффект тот же. Уже второй день голову ломаю, не знаю как можно подобную проблему обойти.
Что ещё чудеснее, если я беру левое соединение от справочника номенклатура, то всё нормально, суммирования так же не происходит. |
|||
4
toypaul
гуру
25.06.20
✎
17:51
|
(3) а что мешает проверить?
|
|||
5
toypaul
гуру
25.06.20
✎
17:55
|
тут вообще снова такая же проблема намечается как в соседней теме. ну не надо цеплять в таблице ОстаткиИОбороты к регистратору всякую фигню. или отборы какие-то фигачить по этим реквизитам. ничем хорошим это не сулит.
нормально это работает в 2х случаях - просто вывести регистратор в отчет. или вытянуть реквизит через точку - причем не в запросе, а в схеме (хотя тоже так себе идея). есть таблица оборотов - вот к ней и цеплять надо. ясно дело, что придется стыковать остатки с оборотами в этом случае. ну ... вот такие они эти таблицы плюс СКД тоже не гении писали. |
|||
6
МешочекЗнаний
25.06.20
✎
18:04
|
(4) Поставил период, 3 - не помогло. Период 2 нельзя т.к. уже есть такой порядковый номер.
(5) Это упрощённый пример. Мне нужны остатки и обороты. Знания по оптимальные приёмы в запросе я имею, книжку по подготовке к эксперту читал. Реальный пример намного сложнее, там я использую временные таблицы и получаю ту же проблему - временная таблица с результатом выборки по вирутальной таблице выводит нормальные данные, но если я объединяю эту временную таблицу с другой временной таблицей получаю неверные колонки начального и конечного остатка без расшифровки по регистратору. |
|||
7
toypaul
гуру
25.06.20
✎
18:43
|
остатки сделать одним набором, обороты вторым.
|
|||
8
toypaul
гуру
25.06.20
✎
18:44
|
релиз платформы?
|
|||
9
toypaul
гуру
25.06.20
✎
18:51
|
Нашел решение
ВЫБРАТЬ ОстаткиНоменклатурыОстаткиИОбороты.Регистратор КАК Регистратор, ОстаткиНоменклатурыОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда, ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток, ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход, ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход, ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, РасходнаяНакладная.Дата КАК Дата, ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура ИЗ РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК ОстаткиНоменклатурыОстаткиИОбороты {ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная ПО ОстаткиНоменклатурыОстаткиИОбороты.Регистратор = РасходнаяНакладная.Ссылка} |
|||
10
toypaul
гуру
25.06.20
✎
18:51
|
Чтобы это понять нужно прочитать наш цикл статей http://catalog.mista.ru/public/1224249/
более конкретно - последний раздел :) |
|||
11
МешочекЗнаний
26.06.20
✎
08:11
|
(9) В боевом отчёте я пробовал этот вариант с необязательными таблицами, не помогло. А в демонстрационных забыл.
Да, в демонстрационных вариантах сработало, но в боевом отчёте проблема сохранилась. Благодарю за наводку, пойду почитаю статьи. |
|||
12
craxx
26.06.20
✎
08:50
|
(11) в боевом имя отчета поменяй. Там кэширование местами глючит, бывает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |