Имя: Пароль:
1C
1С v8
Как можно ускорить запрос по производству
, ,
0 asder117
 
17.10.19
10:20
Доброго времени суток. Конфа УПП
Пытаюсь построить на нем отчет по заказам на производство которые не закрыты. В этом отчете должно выдаваться количество комплектующих из данного заказа согласно спецификации, имеющееся на складах
Отчет строиться в СКД по такому запросу
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
        ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка)

ИНДЕКСИРОВАТЬ ПО
    ЗаказНаПроизводство
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Полуфабрикат,
    СпецификацииНоменклатурыИсходныеКомплектующие.Количество,
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка КАК Спецификация
ПОМЕСТИТЬ НоменклатураСпецификаций
ИЗ
    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
ГДЕ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Комментарий ПОДОБНО &Коммент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СвободныеОстаткиОстатки.Номенклатура КАК НоменклатураСклад,
    СвободныеОстаткиОстатки.КоличествоОстаток КАК ОстатокНаСкладе,
    СвободныеОстаткиОстатки1.КоличествоОстаток КАК ОстатокНаСкладеПР,
    СвободныеОстаткиОстатки2.КоличествоОстаток КАК ОстаткНаСкладе2,
    СвободныеОстаткиОстатки3.КоличествоОстаток КАК ОстаткНаСкладе3
ПОМЕСТИТЬ ОстаткиНаСкладах
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад = &Склад) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад = &Склад2) КАК СвободныеОстаткиОстатки1
        ПО СвободныеОстаткиОстатки.Номенклатура = СвободныеОстаткиОстатки1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад = &Склад3) КАК СвободныеОстаткиОстатки2
        ПО СвободныеОстаткиОстатки.Номенклатура = СвободныеОстаткиОстатки2.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад = &Склад4) КАК СвободныеОстаткиОстатки3
        ПО СвободныеОстаткиОстатки.Номенклатура = СвободныеОстаткиОстатки3.Номенклатура
ГДЕ
    СвободныеОстаткиОстатки.КоличествоОстаток > 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НоменклатураСпецификаций.Полуфабрикат,
    ЗаказыНаПроизводство.Продукция,
    ЗаказыНаПроизводство.ЗаказНаПроизводство,
    ЗаказыНаПроизводство.КоличествоОстаток,
    НоменклатураСпецификаций.Количество КАК КоличествоВСпец,
    ОстаткиНаСкладах.ОстатокНаСкладе,
    ОстаткиНаСкладах.ОстатокНаСкладеПР,
    ОстаткиНаСкладах.ОстаткНаСкладе2,
    ОстаткиНаСкладах.ОстаткНаСкладе3
ИЗ
    ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураСпецификаций КАК НоменклатураСпецификаций
            ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиНаСкладах КАК ОстаткиНаСкладах
            ПО НоменклатураСпецификаций.Полуфабрикат = ОстаткиНаСкладах.НоменклатураСклад
        ПО ЗаказыНаПроизводство.Спецификация = НоменклатураСпецификаций.Спецификация
Если в первой части запроса убрать связку с регистром ПричиныЗакрытияЗаказов то отчет работает быстро и все выдается, но проблема в том, что выдаются и те заказы которые закрыты
После того как ввел связку отчет вываливается из-за недостатка памяти. Может кто подскажет где косяк, сам найти не могу пока..Спасибо
1 ДенисЧ
 
17.10.19
10:29
Поправь условие связи в первом на
ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка.Ссылка.Ссылка.Ссылка)
Для надёжности
2 palsergeich
 
17.10.19
10:31
(1) Ты же шутишь?
3 ДенисЧ
 
17.10.19
10:32
(2) В каждой шутке есть доля шутки
4 asder117
 
17.10.19
10:32
(1) Я тоже что-то смысла в этом не пойму...
5 Aleksandr N
 
17.10.19
10:33
(1) Бгг.
6 ДенисЧ
 
17.10.19
10:34
(4) а в этом
ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка)

ты видишь дофига смысла? Зачем там ссылка? Дополнительный джойн в запрос пихать?
7 hhhh
 
17.10.19
10:35
(4) ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство)


так напиши. Ускоришь запрос в 60 раз.
8 piter3
 
17.10.19
10:35
ГДЕ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Комментарий ПОДОБНО &Коммент
Фу
ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка)
Фи
9 RomanYS
 
17.10.19
10:35
(4) указана ошибка
(6) еще интереснее смысл "<>" в данном соединении
10 asder117
 
17.10.19
10:36
(6) Да это я уже понял и убрал. но проблемы не решило.
Первая часть запроса в консоли отрабатывает на ура и быстро но когда все вместе тупо висит и вылетает ошибку
11 palsergeich
 
17.10.19
10:37
(10) за подобно коммент во 2 пакете надо депримировать
12 ДенисЧ
 
17.10.19
10:37
ИЗ
РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
ЛЕВОЕ СОЕДИНЕНИЕ        
    РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ПО (ПричиныЗакрытияЗаказов.Заказ = РегЗаказы.ЗаказНаПроизводство.Ссылка)
где ПричиныЗакрытияЗаказов есть NULL
13 asder117
 
17.10.19
10:37
(9) Чтобы отсечь те заказы которые были закрыты
(7) да нифига
14 piter3
 
17.10.19
10:38
ПОМЕСТИТЬ ОстаткиНаСкладах
А зачем столько отбирать склад1,2,3?
Вы реально понимаете,что хотите?
15 RomanYS
 
17.10.19
10:39
(13) >> Чтобы отсечь те заказы которые были закрыты
Это п..ц! Для этого надо соединять со статусами ДРУГИХ заказов?
16 palsergeich
 
17.10.19
10:42
(14) даже это не так страшно.
ГДЕ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Комментарий ПОДОБНО &Коммент
Это только я что ли вижу?
17 asder117
 
17.10.19
10:42
(15) Идея была такова взять остатки заказов на производстве (почему только там есть и заказы которые уже завершены не пойму) т.к. у заказа на производство нет поля закрыт не закрыт то связать его с регистром причин..и оттуда осеять те заказы которые были закрыты
(14) Задача была в получении в отчете остатков с 3-х складов
18 asder117
 
17.10.19
10:43
(16) Нужно получить было номенклатуру из спецификаций где в комменте указано определенное значение
19 piter3
 
17.10.19
10:44
(16) почему же выше уже писали
20 palsergeich
 
17.10.19
10:44
(17) это можно было сделать без соединений передав массив складов.
(18) Ошибка проектирования, никакой учётный механизм не должен ориентироваться на комментарий
21 Пузан
 
17.10.19
10:44
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, НЕ ЗаказНаПроизводство В (ВЫБРАТЬ Заказ ИЗ РегистрСведений.ПричиныЗакрытияЗаказов)) КАК РегЗаказы

ИНДЕКСИРОВАТЬ ПО
    ЗаказНаПроизводство
;
22 palsergeich
 
17.10.19
10:46
(19) после нового дизайна рекламы на мобильном тяжело стало в теме ориентироваться.
(21)
НЕ ЗаказНаПроизводство В (ВЫБРАТЬ Заказ ИЗ РегистрСведений.ПричиныЗакрытияЗаказов)
Тоже такое себе
23 Пузан
 
17.10.19
10:47
"ПОМЕСТИТЬ ОстаткиНаСкладах " эту таблицу надо получать через ОБЪЕДИНИТЬ ВСЕ
24 ДенисЧ
 
17.10.19
10:47
(21) Явное соединение заменить на замаскированное?
25 asder117
 
17.10.19
10:47
(20) Я это понимаю и пытаюсь менять все это. Но пока не изменили сказали сделать такой отчет и все с привязкой к комменту
26 Пузан
 
17.10.19
10:48
(22) Да, запрос внутри не очень, но зато условие передано в параметры виртуальной таблицы.
27 asder117
 
17.10.19
10:48
(21) (22) также вылетают закрытые заказы
28 asder117
 
17.10.19
10:49
(23) Это тоже я поменял уже..
29 palsergeich
 
17.10.19
10:50
(25) сделать доп реквизит и перенести значения туда - дел на 15 - 20 минут.
Есть у тебя несколько пакетов, как ты выяснил - 1 выполняется быстро, к нему добавляй по пакету и выясни какой именно пакет является проблемой. (26) оптимизатор умный, не всегда передача в параметры виртуальной таблицы сложного условия лучше помещения в секцию Где простого условия.
30 palsergeich
 
17.10.19
10:51
Но начать надо с того что бы понять в каком именно пакете проблема, пока мы тут всего лишь гадаем на кофейной гуще
31 Пузан
 
17.10.19
10:52
(27) Не может быть. Не попадут заказы, которые есть в этом регистре.
32 xXeNoNx
 
17.10.19
10:53
(0) а что, в первом подзапросе нннадо умножать?
Может наведет на мысль?

ВЫБРАТЬ
    "а" КАК Поле
ПОМЕСТИТЬ вт1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "б"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "в"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "г"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "д"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "е"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт1.Поле КАК Поле
ИЗ
    вт1 КАК вт1
        ЛЕВОЕ СОЕДИНЕНИЕ вт1 КАК вт2
        ПО вт1.Поле <> вт2.Поле
33 Пузан
 
17.10.19
10:53
(29) Соединение с виртуальной таблицей - это всяко разно зло.
34 asder117
 
17.10.19
10:53
(29) В новой конфе так и сделали. А по пакетам понял буду отсекать и смотреть..
(31) попадают. Открываю структуру и в ней док закрытие заказов на производство
35 asder117
 
17.10.19
10:55
(32) На какую мысль и что умножать
36 asder117
 
17.10.19
10:56
(32) Если разговор  идет по остаткам на складах я выше написал что поменял на это
37 xXeNoNx
 
17.10.19
10:56
(35) Умножение первой строки на вторую таблицу если там заказы не равны
38 xXeNoNx
 
17.10.19
10:57
(35) Сколько всего записей у тебя в таблице РегистрСведений.ПричиныЗакрытияЗаказов?
39 Пузан
 
17.10.19
11:00
(34) Поставь условие на вид документа.
40 asder117
 
17.10.19
11:00
(38) около 4500. Сам отчет если его с этим регистром не сталкивать работает нормально без проблем и им пользуются. одно не нравиться что в таблице есть закрытые заказы
41 palsergeich
 
17.10.19
11:01
(40) пакет то какой проблемный?
42 palsergeich
 
17.10.19
11:01
(40) вместо того что бы воздух сотрясать уже локализовал бы
43 Пузан
 
17.10.19
11:04
(40) Т.е. есть закрытые заказы которые отсутствуют в регистре ПричиныЗакрытияЗаказов? Тогда надо как-то по другому их определять, через значение реквизита например.
44 asder117
 
17.10.19
11:07
(43) Там к примеру попадает заказ 2018 года который закрыт и в регистре он тоже есть с причиной "прошел выпуск"
(41) расчленяю по пакетно и пытаюсь понять. Пока на последнем результирущем висит
45 xXeNoNx
 
17.10.19
11:08
(40) ну вот смотри, берем первую строку из 4500 и добавляем к ней всю таблицу остатков, кроме той строки, где заказы не равны и так для каждой строчки...

Выходит 4500 * количествостроквостатках - 4500
46 xXeNoNx
 
17.10.19
11:09
+(45) в итоговой таблице будет содержаться дубликаты по 4499 раз
47 palsergeich
 
17.10.19
11:09
(44) сколько выполняются предыдущие и сколько строк в соединяемых таблицах проблемного запроса? Консоль адекватная есть?
48 asder117
 
17.10.19
11:10
(47) Консолью я пользуюсь из инструментов разработчика. По остальным смотрю.
49 Пузан
 
17.10.19
11:15
(44) Я не верю что мой запрос выдает заказы, которые присутствуют в регистре ПричиныЗакрытияЗаказов. Вы меня вводите в заблуждение.
50 xXeNoNx
 
17.10.19
11:20
убрать из временной таблицы ОстаткиНаСкладах  соединения и добавить туда аналитику "Склад"
51 asder117
 
17.10.19
11:50
(49)Есть поверьте мне (50) Сделал чрез объединение
52 ХардHard
 
17.10.19
11:52
(51) Там не объединять надо, выводишь из остатков измерение склад, условие что склад в (&списокскладов) , группируешь по номенклатуре и выбираешь количество различных склад, тебе нужно там где различных складов = 4.
53 xXeNoNx
 
17.10.19
12:02
(51) а если добавится еще один склад, буднт еще одно объедиение?
54 xXeNoNx
 
17.10.19
12:02
*будет
55 xXeNoNx
 
17.10.19
12:04
Хотел бы я посмотреть запрос, который получился в итоге
56 asder117
 
17.10.19
13:46
(55) типа того
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(
            &ДатаКон,
            НЕ ЗаказНаПроизводство В
                    (ВЫБРАТЬ
                        РегистрСведений.ПричиныЗакрытияЗаказов.Заказ
                    ИЗ
                        РегистрСведений.ПричиныЗакрытияЗаказов)) КАК РегЗаказы

ИНДЕКСИРОВАТЬ ПО
    ЗаказНаПроизводство
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Полуфабрикат,
    СпецификацииНоменклатурыИсходныеКомплектующие.Количество,
    СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка КАК Спецификация
ПОМЕСТИТЬ НоменклатураСпецификаций
ИЗ
    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
ГДЕ
    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Комментарий ПОДОБНО &Коммент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СвободныеОстаткиОстатки.Номенклатура КАК НоменклатураСклад,
    СУММА(СвободныеОстаткиОстатки.КоличествоОстаток) КАК ОстатокНаСкладе,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СвободныеОстаткиОстатки.Склад) КАК Склад
ПОМЕСТИТЬ ОстаткиНаСкладах
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад = &СписокСкладов) КАК СвободныеОстаткиОстатки
ГДЕ
    СвободныеОстаткиОстатки.КоличествоОстаток > 0

СГРУППИРОВАТЬ ПО
    СвободныеОстаткиОстатки.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НоменклатураСпецификаций.Полуфабрикат,
    ЗаказыНаПроизводство.Продукция,
    ЗаказыНаПроизводство.ЗаказНаПроизводство,
    ЗаказыНаПроизводство.КоличествоОстаток,
    НоменклатураСпецификаций.Количество КАК КоличествоВСпец,
    ОстаткиНаСкладах.ОстатокНаСкладе,
    ОстаткиНаСкладах.Склад
ИЗ
    ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураСпецификаций КАК НоменклатураСпецификаций
            ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиНаСкладах КАК ОстаткиНаСкладах
            ПО НоменклатураСпецификаций.Полуфабрикат = ОстаткиНаСкладах.НоменклатураСклад
        ПО ЗаказыНаПроизводство.Спецификация = НоменклатураСпецификаций.Спецификация
57 asder117
 
17.10.19
13:47
(55) А колонки по складу выстраивать через вычисляемые поля похоже
58 tesseract
 
17.10.19
13:50
(56) А зачем первую таблицу индексировать? Этот индекс нигде не используется.
59 asder117
 
17.10.19
13:53
(58) На будующее в планах использовать его..
60 arsik
 
гуру
17.10.19
13:59
Может так?

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПричиныЗакрытияЗаказов КАК ПричиныЗакрытияЗаказов
        ПО (ПричиныЗакрытияЗаказов.Заказ = РегЗаказы.ЗаказНаПроизводство)
ГДЕ
    ПричиныЗакрытияЗаказов.Заказ ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
    ЗаказНаПроизводство
61 cons24
 
17.10.19
14:03
(0) запрос гавно(с)

1й пакет "ЗаказыНаПроизводство": условие "не равно" в соединении = зло. Заменить на "равно"+"где ПричиныЗакрытияЗаказов.Заказ есть null".

2й пакет "НоменклатураСпецификаций ": ПОДОБНО с "%условие%" всегда медленно работает. Надеюсь у вас выражение для ПОДОБНО вида "текст%".

3й пакет "ОстаткиНаСкладах " соединение с виртуальной таблицей = зло. А вы его и еще и наплодили.
И что делать если бизнес захочет еще один склад? Добавлять еще соединение? Дурдом!
Надо заменить на один пакет регистр.Остатки(Дата,МассивСкладов) - а в следующем уже соединять его с самим собой.

Читать: https://its.1c.ru/db/metod8dev#content:5842:hdoc
62 cons24
 
17.10.19
14:04
(0) чем вы вообще занимались в 1с 6 лет?
63 arsik
 
гуру
17.10.19
14:05
(61) не соглашусь, что соединение с виртуальной - зло. Иногда лучше выделить в виртуальную данные и уже с ней работать, нежели городить по нескольку соединений.
64 xXeNoNx
 
17.10.19
14:10
(63) Вы путаете..., почитайте что такое "виртуальная таблица", если о таблице речь
65 xXeNoNx
 
17.10.19
14:11
(61) 2й пакет "НоменклатураСпецификаций ": ПОДОБНО... помимо этого тут еще и неявное левое соединение...
66 xXeNoNx
 
17.10.19
14:12
+(64) и да, соединение с вирт. таблицей - зло
67 arsik
 
гуру
17.10.19
14:12
(64) А, да. Извиняюсь. С временной спутал.
68 xXeNoNx
 
17.10.19
14:19
А что тут такое написано?
Для чего это?

ВЫБРАТЬ
    СвободныеОстаткиОстатки.Номенклатура КАК НоменклатураСклад,
    СУММА(СвободныеОстаткиОстатки.КоличествоОстаток) КАК ОстатокНаСкладе,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СвободныеОстаткиОстатки.Склад) КАК Склад
ПОМЕСТИТЬ ОстаткиНаСкладах
69 asder117
 
17.10.19
14:23
(61) "Надеюсь у вас выражение для ПОДОБНО вида "текст%"." - само собой

Надо заменить на один пакет регистр.Остатки(Дата,МассивСкладов) - а в следующем уже соединять его с самим собой.
Это я сделал но я его переделал через объединение на текущий момент но сейчас решаю через передачу массива. Потом через доп поля по условию создаю колонки в СКД
70 asder117
 
17.10.19
14:30
(68) Обшибси
ВЫБРАТЬ
    СвободныеОстаткиОстатки.Склад КАК Склад,
    СвободныеОстаткиОстатки.Номенклатура КАК НоменклатураСклад,
    СУММА(СвободныеОстаткиОстатки.КоличествоОстаток) КАК ОстатокНаСкладе
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Склад В (&СписокСкладов)) КАК СвободныеОстаткиОстатки
ГДЕ
    СвободныеОстаткиОстатки.КоличествоОстаток > 0

СГРУППИРОВАТЬ ПО
    СвободныеОстаткиОстатки.Номенклатура,
    СвободныеОстаткиОстатки.Склад
71 asder117
 
17.10.19
14:38
(70) По всем складам я остатки получу таким запросом. но потом мне их надо вывести в отчете по колонкам на каждый склад отдельно. Один из вариантов это вычисляемые поля. А там уже наложить условие
72 xXeNoNx
 
17.10.19
14:51
(70) Таак.., а зачем СГРУППИРОВАТЬ?
73 xXeNoNx
 
17.10.19
14:52
+(72) Зачем СвободныеОстаткиОстатки.КоличествоОстаток > 0, есть отрицательные остатки по данному  регистру?
74 asder117
 
17.10.19
16:06
(73) есть и такое (72) чтобы небыло куча строк