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

Как можно ускорить запрос по производству

Как можно ускорить запрос по производству
Я
   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
Поправь условие связи в первом на
ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка.Ссылка.Ссылка.Ссылка) 
Для надёжности
   palsergeich
 
2 - 17.10.19 - 10:31
(1) Ты же шутишь?
   ДенисЧ
 
3 - 17.10.19 - 10:32
(2) В каждой шутке есть доля шутки
   asder117
 
4 - 17.10.19 - 10:32
(1) Я тоже что-то смысла в этом не пойму...
   Aleksandr N
 
5 - 17.10.19 - 10:33
(1) Бгг.
   ДенисЧ
 
6 - 17.10.19 - 10:34
(4) а в этом
 ПО (ПричиныЗакрытияЗаказов.Заказ <> РегЗаказы.ЗаказНаПроизводство.Ссылка) 

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


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

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

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

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

ВЫБРАТЬ
    "б"

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

ВЫБРАТЬ
    "в"

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

ВЫБРАТЬ
    "г"

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

ВЫБРАТЬ
    "д"

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

ВЫБРАТЬ
    "е"
;

////////////////////////////////////////////////////////////////////////////////

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

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

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

////////////////////////////////////////////////////////////////////////////////

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

////////////////////////////////////////////////////////////////////////////////

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

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

////////////////////////////////////////////////////////////////////////////////

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

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

   cons24
 
61 - 17.10.19 - 14:03
(0) запрос гавно(с)

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

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

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

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

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

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

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


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