Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Неверно считается колонка в СКД

Неверно считается колонка в СКД
Я
   МешочекЗнаний
 
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
   toypaul
 
2 - 25.06.20 - 17:41
качать отчет лень, но как мне кажется во втором варианте нужно реквизиту дата, который теперь не от регистратора получается присвоить роль Период. только вот какой номер поставить ... можно такой же как у регистратора, или больше чем у регистратора. ну или меньше чем у регистратора
   МешочекЗнаний
 
3 - 25.06.20 - 17:44
(2) Не, я дату ради примера вытащил. Могу любое другое поле взять, например код, или наименование, или любой другой реквизит - эффект тот же. Уже второй день голову ломаю, не знаю как можно подобную проблему обойти.
Что ещё чудеснее, если я беру левое соединение от справочника номенклатура, то всё нормально, суммирования так же не происходит.
   toypaul
 
4 - 25.06.20 - 17:51
(3) а что мешает проверить?
   toypaul
 
5 - 25.06.20 - 17:55
тут вообще снова такая же проблема намечается как в соседней теме. ну не надо цеплять в таблице ОстаткиИОбороты к регистратору всякую фигню. или отборы какие-то фигачить по этим реквизитам. ничем хорошим это не сулит.

нормально это работает в 2х случаях - просто вывести регистратор в отчет. или вытянуть реквизит через точку - причем не в запросе, а в схеме (хотя тоже так себе идея). есть таблица оборотов - вот к ней и цеплять надо. ясно дело, что придется стыковать остатки с оборотами в этом случае. ну ... вот такие они эти таблицы плюс СКД тоже не гении писали.
   МешочекЗнаний
 
6 - 25.06.20 - 18:04
(4) Поставил период, 3 - не помогло. Период 2 нельзя т.к. уже есть такой порядковый номер.
(5) Это упрощённый пример. Мне нужны остатки и обороты. Знания по оптимальные приёмы в запросе я имею, книжку по подготовке к эксперту читал. Реальный пример намного сложнее, там я использую временные таблицы и получаю ту же проблему - временная таблица с результатом выборки по вирутальной таблице выводит нормальные данные, но если я объединяю эту временную таблицу с другой временной таблицей получаю неверные колонки начального и конечного остатка без расшифровки по регистратору.
   toypaul
 
7 - 25.06.20 - 18:43
остатки сделать одним набором, обороты вторым.
   toypaul
 
8 - 25.06.20 - 18:44
релиз платформы?
   toypaul
 
9 - 25.06.20 - 18:51
Нашел решение

ВЫБРАТЬ
    ОстаткиНоменклатурыОстаткиИОбороты.Регистратор КАК Регистратор,
    ОстаткиНоменклатурыОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда,
    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    РасходнаяНакладная.Дата КАК Дата,
    ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура
ИЗ
    РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК ОстаткиНоменклатурыОстаткиИОбороты
        {ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
        ПО ОстаткиНоменклатурыОстаткиИОбороты.Регистратор = РасходнаяНакладная.Ссылка}
   toypaul
 
10 - 25.06.20 - 18:51
Чтобы это понять нужно прочитать наш цикл статей http://catalog.mista.ru/public/1224249/

более конкретно - последний раздел :)
   МешочекЗнаний
 
11 - 26.06.20 - 08:11
(9) В боевом отчёте я пробовал этот вариант с необязательными таблицами, не помогло. А в демонстрационных забыл.
Да, в демонстрационных вариантах сработало, но в боевом отчёте проблема сохранилась.
Благодарю за наводку, пойду почитаю статьи.
   craxx
 
12 - 26.06.20 - 08:50
(11) в боевом имя отчета поменяй. Там кэширование местами глючит, бывает

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.