|
Добавить в запрос еще один отбор | ☑ | ||
---|---|---|---|---|
0
Мисти
03.03.14
✎
20:08
|
Запрос и отбор будут в тексте.
|
|||
1
Мисти
03.03.14
✎
20:09
|
ТекстЗапроса =
"ВЫБРАТЬ | ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура.ВидНоменклатуры, ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры) КАК ВидНоменклатуры, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии, | ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток, | СвободныеОстаткиОстатки.Номенклатура.ВидНоменклатуры КАК ВидНомен |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбТМЦВыбран | ТОГДА Номенклатура В ИЕРАРХИИ (&ВыбТМЦ) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВидНоменВыбран | ТОГДА Номенклатура.ВидНоменклатуры = &ВыбВидНомен | ИНАЧЕ ИСТИНА | КОНЕЦ {(Номенклатура)}) КАК СвободныеОстаткиОстатки | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбТМЦВыбран | ТОГДА Номенклатура В ИЕРАРХИИ (&ВыбТМЦ) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВидНоменВыбран | ТОГДА Номенклатура.ВидНоменклатуры = &ВыбВидНомен | ИНАЧЕ ИСТИНА | КОНЕЦ {(Номенклатура)}) КАК ТоварыНаСкладахОстатки | ПО СвободныеОстаткиОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И СвободныеОстаткиОстатки.Склад = ТоварыНаСкладахОстатки.Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СпрНом.Ссылка КАК Номенклатура, | ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад, | ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии, | ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток, | ПРЕДСТАВЛЕНИЕ(СвободныеОстатки.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд, | СвободныеОстатки.Номенклатура.Артикул КАК Артикул, //| СвободныеОстатки.Номенклатура КАК Номенклатура, | СвободныеОстатки.Номенклатура.ЭтоГруппа |ИЗ | Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки | ПО СпрНом.Ссылка = СвободныеОстатки.Номенклатура |Где (&НоменклатураНеЗаполнена или СпрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) |и (Не &ВидНоменВыбран или СпрНом.ВидНоменклатуры = &ВыбВидНомен) |УПОРЯДОЧИТЬ ПО Артикул |ИТОГИ | СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ"; Этот запрос мне тут уже помогали делать, потом по аналогии я поправила, теперь сюда надо добавить еще такой отбор: ЗапросНомен = Новый Запрос; ЗапросНомен.Текст = "ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура, | НоменклатураДополнительныеРеквизиты.Свойство, | НоменклатураДополнительныеРеквизиты.Значение |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка в (&МассивНомен) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбЗначение"; |
|||
2
Asmody
03.03.14
✎
21:44
|
Можно. Либо результат последнего запроса поместить в ВТ, а потом наложить ГДЕ в запросе, либо запихнуть все в СКД и накрутить там характеристик
|
|||
3
Torquader
03.03.14
✎
22:36
|
Насколько я понял, нужно отобрать номенклатуру по дополнительным реквизитам - так ?
|
|||
4
Мисти
03.03.14
✎
22:57
|
Ага, точно. Отобрать ее плюс ко всему еще и по доп. реквизитам.
|
|||
5
Torquader
03.03.14
✎
23:09
|
Доп-реквизиты у нас живут в таблице регистра сведений.
Поэтому, нужно с ней соединяться, чтобы отобрать то, что нам нужно - или в самом запросе или сначала во временную таблицу, а потом её соединять с запросом. |
|||
6
Мисти
03.03.14
✎
23:26
|
Я неправильно написала?
Правильно! В регистре - доп. сведения, а доп. реквизиты - непосредственно в справочнике. В моем запросе нет иерархии, (во втором), если я буду с ней соединять, у меня вообще иерархии не будет? |
|||
7
Torquader
03.03.14
✎
23:53
|
(6) Ну, если они в табличной части, то это существенно ничего не меняет. Мы почему-то отбираем по заданному значению, но не учитываем тип свойства ?
Не может так получиться, что у двух свойств будут одинаковые значения. Кроме того, желательно сказать ВЫБРАТЬ РАЗЛИЧНЫЕ, чтобы было "не так интересно" перебирать одинаковые ссылки ? |
|||
8
Мисти
09.03.14
✎
11:26
|
(7) Не бывает у 2 свойств одинаковые значения.
|
|||
9
Мисти
09.03.14
✎
11:27
|
Откуда могут получиться одинаковые ссылки?
|
|||
10
Мисти
09.03.14
✎
12:42
|
Давайте теперь эту каку разберем!
Наверное, надо сначала сделать таблицу нужной номенклатуры (она ограничивается видом номенклатуры, иерархией и доп. реквизитами), потом по ней запрос к регистрам, а потом всё это присобачить к справочнику, потому что в результате мне нужна номенклатура в иерархии? |
|||
11
Мисти
09.03.14
✎
12:59
|
Я так понимаю, простая задачка всем приятнее?
|
|||
12
Мисти
09.03.14
✎
13:07
|
До "поместить" я еще не дочитала.
"ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен) |ПОМЕСТИТЬ ВТ_СписокНом" Не так? А как мне сделать список подходящей номенклатуры? |
|||
13
Мисти
09.03.14
✎
14:14
|
ТекстЗапроса =
"ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен)"; Если Не ВыбПрограмма.Пустая() Тогда ТекстЗапроса = ТекстЗапроса+" | ///////////////////////////////////// | ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура, | НоменклатураДополнительныеРеквизиты.Свойство, | НоменклатураДополнительныеРеквизиты.Значение |ПОМЕСТИТЬ ВТ_СписокНом2 |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка в (ВТ_СписокНом) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбЗначение"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+ "ВЫБРАТЬ | ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии, | ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбПрограммаВЫбран | ТОГДА Номенклатура В (ВТ_СписокНом) | ИНАЧЕ Номенклатура В (ВТ_СписокНом2) Похоже на правду? Так бывает? (это только начало!) |
|||
14
m-serg74
09.03.14
✎
14:39
|
(13) категорически против полное соединение, даешь ОБЪЕДИНИТЬ + группировка
|
|||
15
Мисти
09.03.14
✎
14:47
|
Пока вообще не работает!
ТекстЗапроса = "ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен) |;"; Если Не ВыбПрограмма.Пустая() Тогда ТекстЗапроса = ТекстЗапроса+ " ///////////////////////////////////// | ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом2 |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка в (ВТ_СписокНом) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбЗначение |;"; КонецЕсли; Поле не найдено "ВТ_СписокНом" НоменклатураДополнительныеРеквизиты.Ссылка в (<<? |
|||
16
Мисти
09.03.14
✎
14:47
|
Почему против полное соединение? Так, по-моему, даже в типовой написано!
|
|||
17
m-serg74
09.03.14
✎
14:53
|
(16) пофиг на типовую, я же написал "я против" значит это сугубо мое личное мнение, хочешь прислушайся не хочешь не обращай внимание :)
|
|||
18
m-serg74
09.03.14
✎
14:55
|
(15) конечно...
вместо "(ВТ_СписокНом)" попробуй В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) |
|||
19
m-serg74
09.03.14
✎
14:56
|
(18) но вместо этого лучше внутреннее соединение сделай
|
|||
20
Мисти
09.03.14
✎
14:59
|
Хорошо бы обоснование личного мнения! Потому что на типовую я могу сослаться, ну и вообще, а на неизвестный мне ник - не очень. Вот на конкретные аргументы - было бы здорово!
Вообще, чувствую, деваться некуда, надо в этом безобразии начинать разбираться детально. |
|||
21
m-serg74
09.03.14
✎
15:00
|
(20) типовую писал еще более неизвестный тебе ник
|
|||
22
m-serg74
09.03.14
✎
15:04
|
(20) поищи в гугл "что лучше полное соединение или объединение" там много полезного и изложено лучше чем я смогу описать
|
|||
23
Мисти
09.03.14
✎
15:10
|
А можно ссылку? В гугле всего много! Всё очень интересно, но нет времени читать - всё.
|
|||
24
m-serg74
09.03.14
✎
15:12
|
(23) нет времени читать - тогда сразу пробуй, или почитать за тебя?
|
|||
25
m-serg74
09.03.14
✎
15:14
|
(23) почитай например
v8: Полное соединение vs Объединение |
|||
26
Мисти
09.03.14
✎
15:18
|
(25) Вау! Заработало! Спасибо, добрый человек!
|
|||
27
Мисти
09.03.14
✎
15:19
|
Ага, почитаю, тоже спасибо.
Какая самая доходчивая книжка по запросам? Или куды бечь? |
|||
28
m-serg74
09.03.14
✎
15:20
|
(27) [Какая самая доходчивая книжка по запросам?]
по прежнему гугл + умение искать в приоритете :) |
|||
29
Мисти
09.03.14
✎
15:24
|
Объединение соединяет по вертикали, а соединение - по горизонтали - не очень понятно, можно пример?
|
|||
30
m-serg74
09.03.14
✎
15:25
|
(29) все примеры в конструкторе, на мисте писать лениво
|
|||
31
m-serg74
09.03.14
✎
15:25
|
(29) и кстати не все так буквально
|
|||
32
m-serg74
09.03.14
✎
15:27
|
(29) в (25) еще внимание обрати на 18 и 21 пост
|
|||
33
Мисти
09.03.14
✎
15:48
|
На самом деле - не сработало!
Ругаться перестало. Самое главное, ради чего я переделывала - отбор по доп. реквизитам - не работает. Почему?? ТекстЗапроса = "ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен) |;"; Если Не ВыбПрограмма.Пустая() Тогда ТекстЗапроса = ТекстЗапроса+ " ///////////////////////////////////// | ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом2 |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбПрограмма |;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+ "ВЫБРАТЬ | ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии, | ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбПрограммаВЫбран | ТОГДА Номенклатура В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | ИНАЧЕ Номенклатура В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2) | КОНЕЦ | {(Номенклатура)}) КАК СвободныеОстаткиОстатки | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбПрограммаВЫбран | ТОГДА Номенклатура В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | ИНАЧЕ Номенклатура В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2) | КОНЕЦ | {(Номенклатура)}) КАК ТоварыНаСкладахОстатки | ПО СвободныеОстаткиОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И СвободныеОстаткиОстатки.Склад = ТоварыНаСкладахОстатки.Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СпрНом.Ссылка КАК Номенклатура, | ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад, | ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии, | ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток, | ПРЕДСТАВЛЕНИЕ(СвободныеОстатки.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд, | СвободныеОстатки.Номенклатура.Артикул КАК Артикул, | СвободныеОстатки.Номенклатура.ЭтоГруппа |ИЗ | Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки | ПО СпрНом.Ссылка = СвободныеОстатки.Номенклатура |Где (&ВыбПрограммаВЫбран и СпрНом.Ссылка В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | Или Не &ВыбПрограммаВЫбран и СпрНом.Ссылка В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2)) |УПОРЯДОЧИТЬ ПО Артикул |ИТОГИ | СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ"; // Возврат(ТекстЗапроса); |
|||
34
Мисти
09.03.14
✎
15:50
|
Как бы посмотреть, что у меня в ВТ_СписокНом2 попало?
И произошел ли по нему отбор? |
|||
35
XLife
09.03.14
✎
15:52
|
(34) в консоли запросов
|
|||
36
Torquader
09.03.14
✎
15:56
|
(34) Так вырежи кусок запроса, убери слово "Поместить" и выполняй в консоли - увидишь, что там есть.
|
|||
37
XLife
09.03.14
✎
15:58
|
(36) в нормальной консоли не надо ничего резать/убирать... достаточно просто посмотреть содержимое временной таблицы
|
|||
38
Мисти
09.03.14
✎
16:02
|
Где взять консоль запросов?
А для УФ есть? |
|||
39
Мисти
09.03.14
✎
16:03
|
Ну гляньте, а в запросе ошибки, может, есть?
Сам по себе этот запрос работал (по доп. реквизитам) |
|||
40
Torquader
09.03.14
✎
16:03
|
(37) Ну я обычно пишу запросы по частям, чтобы при отлаживании следующей части быть уверенным в предыдущей.
Правда, в последнее время вообще пишу в тексте, и как всегда, спотыкаюсь только на запятых не в том месте. |
|||
41
Torquader
09.03.14
✎
16:04
|
(39) Как франч называется, которому мы так "помогаем" ?
(Если стыдно здесь, то хоть на почту напиши - обещаю не рассказывать). |
|||
42
Torquader
09.03.14
✎
16:06
|
Зачем мы выбираем из справочника всю номенклатуру, удовлетворяющую условиям, если эти замечательные условия можно проверить и потом ?
|
|||
43
Мисти
09.03.14
✎
16:15
|
(40) У меня по частям всё работало, теперь же я всё "улучшила"! Чтоб как у людей!
Выбираю всю номенклатуру по условиям - чтоб доп. реквизиты искать по маленькой выборке. ну и потом запроса по доп. реквизитам может и не быть. |
|||
44
m-serg74
09.03.14
✎
16:15
|
(33) бредятина какая то, извиняюсь... а если ВыбПрограмма.Пустая() последние части запроса как узнают что ВТ_СписокНом2 не существует???
|
|||
45
m-serg74
09.03.14
✎
16:16
|
(43) [теперь же я всё "улучшила"! Чтоб как у людей!]
что то изменений не видно, даже вворуженным микроскопом взглядом |
|||
46
m-serg74
09.03.14
✎
16:19
|
(44) сорри пропустил "&ВыбПрограммаВЫбран"
|
|||
47
Мисти
09.03.14
✎
16:19
|
А потому что там надо всё наоборот написать!
|
|||
48
Мисти
09.03.14
✎
16:20
|
|Где (Не &ВыбПрограммаВЫбран и СпрНом.Ссылка В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом)
| Или &ВыбПрограммаВЫбран и СпрНом.Ссылка В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2)) |
|||
49
m-serg74
09.03.14
✎
16:20
|
(47) что поменялось то? помоему все без изменений осталось
|
|||
50
m-serg74
09.03.14
✎
16:21
|
(48) в (46) извинился
|
|||
51
m-serg74
09.03.14
✎
16:25
|
(50) наверное все таки зря извинялся если НЕ &ВыбПрограммаВЫбран, т.е. я так думаю ВТ_СписокНом2 не будет
а по условию ИНАЧЕ именно это будет проверяться КОГДА &ВыбПрограммаВЫбран ТОГДА Номенклатура В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) ИНАЧЕ Номенклатура В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2) |
|||
52
Мисти
09.03.14
✎
16:26
|
Местами поменять - программа выбрана - список 2, программа не выбрана - список один.
Вроде, получилось! |
|||
53
Torquader
09.03.14
✎
16:36
|
(52) Как бы, если выбран какой-то список или ещё какое-то дополнительное условие, то проще всего строку в запрос дописать (на стадии формирования текста запроса) и добавить параметры.
Зачем делать временную таблицу, в которую в случае отсутствия доп-условий будет выбрана вся номенклатура (типа кто-то "умный" сказал - маленькая выборка). |
|||
54
Мисти
09.03.14
✎
16:50
|
Надо, чтобы с отборами отчет формировался быстро, а без отборов он по-любому формируется очень долго.
|
|||
55
Мисти
09.03.14
✎
16:51
|
строку в запрос дописать - я не знаю, как по-другому прилепить запрос по доп. условиям.
|
|||
56
Torquader
09.03.14
✎
16:53
|
(55) Если мы отбираем номенклатуру, то в любой запрос в конце после слова ГДЕ можно добавить строку "И(условие)", и всё будет работать.
По-мойму, это даже во всех типовых есть. |
|||
57
Мисти
09.03.14
✎
17:00
|
Меня смущает то, что доп. реквизиты - это ж другая таблица?
Это же не список номенклатуры? |
|||
58
Torquader
09.03.14
✎
17:01
|
(57) Да, таблица другая, но что мешает сделать соединение или выборку во временную таблицу (причём только тогда, когда это надо), а не каждый раз сначала выбирать всё, а потом думать, что из этого всего нам нужно.
|
|||
59
Мисти
09.03.14
✎
17:02
|
Еще вопрос! Что там переделать, чтобы в отчет шло сначала по иерархии, а потом уже по артикулу?
|
|||
60
Мисти
09.03.14
✎
17:03
|
А временная таблица из всего справочника существенно медленнее работает? (там около 3000 позиций)
|
|||
61
Мисти
09.03.14
✎
17:05
|
(58) Как сделать-то? Мешает то, что я не умею!
|
|||
62
Torquader
09.03.14
✎
17:05
|
(60) А через год там будет 30000 позиций и так далее.
Зачем выбирать "дерьмо мамонта", если оно просто ещё не удалено из справочника. Потом, мне кажется очень странным, что не включили условие НЕ Спр.Группа ? |
|||
63
Torquader
09.03.14
✎
17:06
|
(61) ... и не стремлюсь этому научиться - так ?
|
|||
64
Torquader
09.03.14
✎
17:08
|
Что есть ВыбПрограмма ?
|
|||
65
Torquader
09.03.14
✎
17:11
|
И ещё название франча неплохо бы сказать, а то, может быть, я своему врагу помогаю.
|
|||
66
Мисти
09.03.14
✎
17:11
|
(62) Нет! У них более- менее постоянный ассортимент.
Мне нужно всё равно с иерархией! Это их некий дополнительный реквизит. (65) Не скажу. Очень мелкий. Считай, что нет его. |
|||
67
Torquader
09.03.14
✎
17:12
|
(66) Я как раз мелких и не люблю.
|
|||
68
Мисти
09.03.14
✎
17:13
|
А мы не любим крупных, и что?
|
|||
69
Torquader
09.03.14
✎
17:14
|
(68) Вы, по-мойму, долго думать не любите, ну и помнить что-то.
Поэтому, вам очень сложно работать. |
|||
70
Мисти
09.03.14
✎
17:14
|
Стремлюсь! Простые запросы я уже легко пишу.
И книжки пересмотрела, те, что у меня есть. в 3 ничего нового, а еще 2 - надо внимательно читать, но запросов там нет. |
|||
71
Мисти
09.03.14
✎
17:15
|
(69) Ну да, долго думать я даже не умею.
Не то, что моя дочка! Она может в состоянии полной сосредоточенности находиться часами. |
|||
72
Torquader
09.03.14
✎
17:16
|
(71) Тогда понятно - всё в дочку ушло.
|
|||
73
Torquader
09.03.14
✎
17:17
|
Объясните мне - зачем внутри запроса писать условие по ВыбПрограмма, если можно в зависимости от этого условия менять текст запроса ?
|
|||
74
Torquader
09.03.14
✎
17:18
|
(71) И вообще, мне кажется, что вам ещё две дочки и домашний уют, а вот программированием пусть занимаются те, у кого ничего и никуда не ушло.
|
|||
75
Мисти
09.03.14
✎
17:22
|
Оказывается! Я добилась того, что у меня выводится только та номенклатура, которая есть на складе.
А мне нужна вся! |
|||
76
Мисти
09.03.14
✎
17:24
|
(74) Да я бы с удовольствием уже, но детей пока надо содержать. И к тому же! Сложные для меня задачки встречаются где-то в 20% случаев, остальное я делаю нормально (хоть кто-то может и придраться, но работает!)
И к тому же! Второй раз - я уже представляю себе "где украсть". |
|||
77
Torquader
09.03.14
✎
17:24
|
(75) Молодец! Добилась того, что слово "дятел" к тебе стало ещё ближе.
В общем, мне кажется, что если мы хотим остатки, то нужно делать соединение сначала с одним регистром, а потом с другим, делая суммирование по остаткам. При соединении не забыть Null превратить в 0. |
|||
78
Torquader
09.03.14
✎
17:25
|
(76) По вашим темам этого не скажешь - несколько раз бывает одно и то же.
|
|||
79
Мисти
09.03.14
✎
17:26
|
|ИЗ
| Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки - разве это не говорит о том, что будет весь справочник? |
|||
80
Мисти
09.03.14
✎
17:26
|
(78) Бывает, что я бросаю, не закончив (откладываю), а потом возвращаюсь.
|
|||
81
Torquader
09.03.14
✎
17:29
|
(79) Здесь всё нормально, только почему сюда вставляются "чудестные" условия по временным таблицам, а не просто отбор по условию ?
|
|||
82
Torquader
09.03.14
✎
17:30
|
Потом, группы номенклатуры явно в условие не попадают.
|
|||
83
Мисти
09.03.14
✎
17:35
|
| И ВЫБОР
| КОГДА &ВыбПрограммаВЫбран | ТОГДА Номенклатура В (ВЫБРАТЬ ВТ_СписокНом2.Номенклатура ИЗ ВТ_СписокНом2) | ИНАЧЕ Номенклатура В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | КОНЕЦ |
|||
84
Мисти
09.03.14
✎
17:37
|
Вроде, по смыслу должно быть так (исправила)
Но теперь, если не выбрать группу - ругается! Таблица не найдена "ВТ_СписокНом2" ТОГДА Номенклатура В (ВЫБРАТЬ ВТ_СписокНом2.Номенкл |
|||
85
Мисти
09.03.14
✎
17:38
|
|ИТОГИ
| СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ"; - а вот это вконце не говорит о том, что попадут и группы? |
|||
86
Мисти
09.03.14
✎
17:39
|
(81) "а не просто отбор по условию ? " - это как?
|
|||
87
Torquader
09.03.14
✎
17:43
|
Если ВыбПрограммаВыбран Тогда
ТекстЗапроса+="Номенклатура.Ссылка В (ВЫБРАТЬ ...ВТ_СписокНом2)"; Иначе ТекстЗапроса+="Номенклатура.ССылка В (ВЫБРАТЬ ВТ_СписокНом.НОменклатура ИЗ ВТ_СписокНом)"; КонецЕсли; |
|||
88
Torquader
09.03.14
✎
17:44
|
ТОлько ТекстЗапроса=ТекстЗапроса+"... оператора += в 1С пока нет.
|
|||
89
Torquader
09.03.14
✎
18:00
|
И вообще, если мы не умеем собирать текст запроса по частям, то пишем несколько вариантов текста запроса и выбираем нужный.
Например, если склад выбран, то мы отбираем с учётом склада, а если нет - то отбираем по всем складам. Только менять надо не в самом запросе через Выбор, а при формировании его текста - ведь после момента формирования текста условия поменяться не могут. |
|||
90
Мисти
09.03.14
✎
18:10
|
Я так раньше и делала.
У меня и сейчас их 2 - один с ценой, другой без цены. Хочу чтоб уже по-человечески выглядело! |
|||
91
Torquader
09.03.14
✎
18:17
|
(90) Потом, зачем мы делаем соединение регистров, когда проще выбрать сначала один, а потом выбрать другой (с группировкой по номенклатуре) - ?
Теперь, если хочется один текст, то его нужно собирать динамически - это понятно ? |
|||
92
Мисти
09.03.14
✎
18:21
|
В каком смысле - проще выбрать сначала один потом другой?
Из регистров у меня всё хорошо выбирается! Динамически - это непонятно в данном контексте. |
|||
93
Torquader
09.03.14
✎
18:26
|
(92) Только объём выбираемого из регистров оставляет желать лучшего.
Также, когда мы накладываем условие на склад - проще дописать добавление условия "Склад=Склад" в текст запроса. |
|||
94
Torquader
09.03.14
✎
18:33
|
Внимательно посмотрел в текст написанного запроса ... ать, ать, ать - ответило эхо.
А зачем мы в том запросе условие по номенклатуре вставляем, чтобы его несколько раз проверять ? Потом что-то там намудрили с этим отбором - зачем условие ВыбПрограммаВыбран проверять на каждой строке, если оно ни в коем случае не поменяется в процессе выборки ? |
|||
95
Torquader
09.03.14
✎
18:35
|
Мне кажется, что ВЫБРАТЬ ... ИЗ РегистрНакопления.СвободныеОстатки... ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ... ИЗ РегистрНакопления.ТоварыНаСкладах... а потом ГРУППИРОВАТЬ и СУММА по остаткам.
|
|||
96
Torquader
09.03.14
✎
19:08
|
А вообще - очень интересно, что думает семья женщины, которая вместо того, чтобы проводить выходные с семьёй пытается сделать то, что у неё никогда не получается.
|
|||
97
Torquader
09.03.14
✎
19:38
|
Пыталось "умное создание"
Создать прекраснейший вопрос, И был, в процессе написания Нам задан каверзный вопрос. Ответов люди дали много, Но не дано их все понять. И "чуду" лишь одна дорога Вопросом google напрягать. А если что-то не выходит Задачу можно поменять, И так всегда по кругу ходит Пытаясь программистом стать. Клиентов рожи уже скисли Им надо видеть результат И, кажется, что скоро Мисти Они дадут пинка под зад. Однако, хочется другого, Чтоб тот, кто думать не спешил, Хоть раз в себя поверил снова И сам задачи все решил. ^_^ |
|||
98
m-serg74
09.03.14
✎
20:59
|
(93) сгруппировать читать до посинения изо дня в день
|
|||
99
m-serg74
09.03.14
✎
21:00
|
(96) ее может не быть...
|
|||
100
m-serg74
09.03.14
✎
21:01
|
(97) не обижай женщин, они наше будущее, даже если не наши
|
|||
101
Torquader
09.03.14
✎
21:02
|
(100) Знаете ли, такое будущее светлым не назовёшь.
А потом, в данном случае - не пнёшь - не сделает. |
|||
102
m-serg74
09.03.14
✎
21:04
|
(101) светлое с такими как ТС, стремится научится... это очень радует
|
|||
103
Torquader
09.03.14
✎
21:12
|
(102) Вечно стремиться научиться - будет более правильно.
А так, наверное, хорошая и старательная - только вот не выходит "каменный цветок". |
|||
104
m-serg74
09.03.14
✎
21:16
|
/Вечно стремиться научиться/
я с детсвта учусь ... микрочип, атмел, мсп... что то не все до сих пор умею это плохо или я тупой? |
|||
105
m-serg74
09.03.14
✎
21:21
|
(103) где ответ? или молчать проще?
|
|||
106
Torquader
09.03.14
✎
21:32
|
(104) Вы, в отличие от (0) всё запоминаете.
(105) Конечно, можно за (0) написать запрос, только вот проблема в том, что придётся писать всегда. Это "чудо" сюда приходит только потому, что ему помогают. Как раз из жалости, и потому, что старается. И потом, я же, на самом деле, не очень-то и (0) обижаю, в отличие от некоторых. Да, есть желание назвать её дятлом, так это заслужено. |
|||
107
Torquader
09.03.14
✎
21:35
|
Кроме того, (0) очень не любит читать синтаксис-помощник.
А в остальном, выпускник ВМиК МГУ, в любом случае, достоин уважения. Удачи. |
|||
108
m-serg74
09.03.14
✎
21:43
|
(107) "ВМиК МГУ"...
я самоучака... я не достоин? |
|||
109
m-serg74
09.03.14
✎
21:44
|
(108) очепятка "самоучка"
|
|||
110
Мисти
09.03.14
✎
21:47
|
Короче, я вернулась.
Отчет, вроде, формируется правильно. Под зад мне, вполне вероятно, там и дадут. Но! Я сделала всё, что меня просили! Вот просто - все задачи решены, всё работает, они перешли с 7 на 8. Можно по буквам - что в этом запросе категорически не так - в смысле скорости? |
|||
111
Мисти
09.03.14
✎
21:49
|
Я не слишком старательная, хватаюсь за все, и лишь бы работало - никогда ни красотой ни экспериментами не занимаюсь.
Мне оплачивают за 2 часа - я работаю 2 часа. (если туплю совсем, то туплю за свой счет) |
|||
112
m-serg74
09.03.14
✎
21:56
|
(111) забей на все... всегда делать надо для себя... мыжпрограммысты и польза от нас одна... мы есть
|
|||
113
m-serg74
09.03.14
✎
21:57
|
(111) может мэйл хотя бы в профиле напишешь
|
|||
114
m-serg74
09.03.14
✎
22:06
|
(0) и это из пред. темы писала что конф. БП 3.0 ... не правда, там ни ТоварыНаСкладах ни СвободныеОстатки регистров накопления нету...
|
|||
115
Мисти
09.03.14
✎
22:07
|
3.0 отдельно, УТ+СРМ - отдельно.
|
|||
116
Мисти
09.03.14
✎
22:07
|
Так это, как запрос-то переделать?
Вроде, работает, как просили. но криво ж? |
|||
117
m-serg74
09.03.14
✎
22:14
|
(115) во ис?
" УТ+СРМ" |
|||
118
Мисти
09.03.14
✎
22:16
|
Что такое - "во ис"?
|
|||
119
m-serg74
09.03.14
✎
22:16
|
who is
|
|||
120
Мисти
09.03.14
✎
22:18
|
Разработка Раруса.
|
|||
121
Мисти
09.03.14
✎
22:19
|
(95) А отборы все куда?
|
|||
122
m-serg74
09.03.14
✎
22:19
|
(120) это к чему?
|
|||
123
Мисти
09.03.14
✎
22:21
|
УТ+СРМ - разработка раруса.
|
|||
124
m-serg74
09.03.14
✎
22:28
|
(123) если до завтра терпит, то (113)
|
|||
125
Мисти
09.03.14
✎
22:37
|
Написала!
А еще мне иерархия нужна, а у меня она какая-то странная получается. |
|||
126
m-serg74
09.03.14
✎
22:43
|
(125) иерархия в самом последнем запросе или части запроса если в одном запросе все делается
|
|||
127
Мисти
09.03.14
✎
22:47
|
Ну, я так и написала.
Вообще, конечно, ерунда у меня какая-то в запросе получается - по каждой группе номенклатуры по 3 строки, по каждой номенклатуре - по 2. |
|||
128
Torquader
09.03.14
✎
22:48
|
(125) Чтобы иерархия была красивой, нужно группы из запроса исключить - иначе на группу будет две строки, что выглядит не айс.
|
|||
129
Мисти
09.03.14
✎
22:49
|
У меня мэйл-агент не установлен. во всяком случае, я им не пользуюсь.
|
|||
130
Torquader
09.03.14
✎
22:50
|
(127) Две вижу, а вот три - это кто-то явно перестарался.
Везде, где выбирается номенклатура вставь "И НЕ Номенклатура.ЭтоГруппа" |
|||
131
m-serg74
09.03.14
✎
22:56
|
(127) итоги потому что еще в прошлой теме я же писал в топку нада
|
|||
132
Мисти
09.03.14
✎
23:00
|
Значит, моя идея, что сначала всё отобрать по справочнику была неправильной.
Давайте всё сначала! |
|||
133
Мисти
09.03.14
✎
23:00
|
ВЫБРАТЬ
| СвободныеОстаткиОстатки.Номенклатура, | СвободныеОстаткиОстатки.Склад, | СвободныеОстаткиОстатки.ВНаличииОстаток, | СвободныеОстаткиОстатки.ВРезервеОстаток, | NULL КАК КОтгрузкеОстаток |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.ВНаличииОстаток, | NULL, | ТоварыНаСкладахОстатки.КОтгрузкеОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки |
|||
134
NcSteel
09.03.14
✎
23:02
|
Угадываю автора по теме.... Сразу понял кто автор, так как тема глупа ... ))) Это просто Света из Свет.
|
|||
135
Мисти
09.03.14
✎
23:04
|
Тогда только здесь, потом-то только отсюда вся номенклатура берется, разве нет?
"ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен И НЕ Номенклатура.ЭтоГруппа) |;"; |
|||
136
Мисти
09.03.14
✎
23:05
|
Где я теперь получу ВНаличииОстаток, если он мне нужен из регистра ТоварыНаСкладахОстатки?
|
|||
137
NcSteel
09.03.14
✎
23:08
|
Никогда! Запомните НИКОГДА не используйте в условиях ИЛИ.... по крайней мере два раза..... это рукалицо
|
|||
138
Мисти
09.03.14
✎
23:10
|
(137) Почему??
|
|||
139
m-serg74
09.03.14
✎
23:14
|
(138) просто прими на веру... НИКОГДА ... ДВА РАЗА... иначе это просто напрасно
|
|||
140
Мисти
09.03.14
✎
23:16
|
Не, ну мне так совсем непонятно. Должен же быть ответ!
|
|||
141
Мисти
09.03.14
✎
23:16
|
В книжке моей про это ничего нет.
|
|||
142
m-serg74
09.03.14
✎
23:17
|
ты сама пишешь книжку?
|
|||
143
Torquader
09.03.14
✎
23:17
|
ТекстЗапроса="ВЫБРАТЬ
|СпрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ |Справочник.Номенклатура КАК СпрНом"; Если(НоменклатураЗаполнена)ИЛИ(ВыбранВидНоменклатуры)Тогда ТекстЗапроса=ТекстЗапроса+" |ГДЕ"; Если НоменклатураЗаполнена Тогда ТекстЗапроса=ТекстЗапроса+" |СпрНом.Ссылка В ИЕРАРХИИ (&ВыбТмц)"; Зпр.УстановитьПараметр("ВыбТмц",СписокНоменклатуры); КонецЕсли; Если ВыбранВидНоменклатуры Тогда ТекстЗапроса=ТекстЗапроса+" |СпрНом.ВидНоменклатуры=&ЗаданныйВид"; Зпр.УстановитьПараметр("ЗаданныйВид",ВидНоменклатуры); КонецЕсли; КонецЕсли; |
|||
144
NcSteel
09.03.14
✎
23:19
|
(140)
Использование логического ИЛИ в секции ГДЕ запроса Не следует использовать ИЛИ в секции ГДЕ запроса. Это может привести к тому, что СУБД не сможет использовать индексы таблиц и будет выполнять сканирование, что увеличит время работы запроса и вероянтность возникновения блокировок. Вместо этого следует разбить один запрос на несколько и объединить результаты. Например, запрос ВЫБРАТЬ Товар.Наименование ИЗ Справочник.Товары КАК Товар ГДЕ Артикул = "001" ИЛИ Артикул = "002" следует заменить на запрос ВЫБРАТЬ Товар.Наименование ИЗ Справочник.Товары КАК Товар ГДЕ Артикул = "001" |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ Товар.Наименование ИЗ Справочник.Товары КАК Товар ГДЕ Артикул = "002" |
|||
145
Torquader
09.03.14
✎
23:20
|
Конечно, так как мы это условие используем в нескольких местах, то лучше его "сложить" в отдельную переменную, которую потом просто вставлять в запрос, где нужно.
|
|||
146
Мисти
09.03.14
✎
23:20
|
Ну, я раньше ьак всегда делала!
Хочу от этого отучиться, потому что быстрее же работает, если условия внутри регистра, например, задавать, а не потом - "где". |
|||
147
Torquader
09.03.14
✎
23:21
|
(144) У неё там ИЛИ используется для того, чтобы выключать условие, которое она собирает до исполнения запроса. То есть, если всё написать стандартно - или просто не будет.
|
|||
148
Мисти
09.03.14
✎
23:21
|
(144) Ух ты! Спасибо! Выучу.
|
|||
149
NcSteel
09.03.14
✎
23:21
|
(146) Надо знать структуру таблиц и понимать, почему быстрее , а почему нет .... И далеко не всегда использовать параметры виртуальных таблиц работает быстрее
|
|||
150
Мисти
09.03.14
✎
23:24
|
А когда нет? Вот, например, условие по складу для регистра свободных остатков?
|
|||
151
m-serg74
09.03.14
✎
23:24
|
(148) я еще в прошлой теме написал - посмотри сообщения про "все должно руководствоваться головой" в каждом случае надо думать
|
|||
152
m-serg74
09.03.14
✎
23:25
|
(150) как минимум вместе [условие по складу] это сделать параметром виртуальной таблицы
|
|||
153
Мисти
09.03.14
✎
23:26
|
(143) Мы же решили начать с регистров!
|
|||
154
Torquader
09.03.14
✎
23:26
|
(150) А что там в условии ?
Если склад не задан, то просто его не указываем, если склад задан только один, то проверка на равно, если их несколько, тогда в списке. И количество складов известно на момент формирования текста запроса, поэтому, на момент исполнения запроса известно, что там будет. |
|||
155
Torquader
09.03.14
✎
23:27
|
(153) Я тебе показываю, что условие можно добавить в любое место запроса без всяких танцев с ИЛИ.
|
|||
156
Мисти
09.03.14
✎
23:27
|
Ну да, либо склад выбран, либо по всем - его быстрее в условии регистра или "Где"?
|
|||
157
m-serg74
09.03.14
✎
23:27
|
(152) вместе ... вместо
|
|||
158
Мисти
09.03.14
✎
23:28
|
(157) Так понятнее.
|
|||
159
Мисти
09.03.14
✎
23:28
|
У меня в запросе получается половина строк с единицей и артикулом, а половина - без. Ну, т.е. одна какая-то лишняя явно.
|
|||
160
Torquader
09.03.14
✎
23:29
|
(156) Так что мешает дописать его в текст запроса после ГДЕ по условию, а не городить что-то другое.
|
|||
161
m-serg74
09.03.14
✎
23:29
|
(159) соединение такое соединение
|
|||
162
Мисти
09.03.14
✎
23:29
|
Короче, кто мне наконец, уже более-менее всё это перепишет?
А я потом прикручу к этому цены - САМА! |
|||
163
Torquader
09.03.14
✎
23:29
|
(159) Обход результата запроса с группировками нужно смотреть - вы там группировали по ИЕРАРХИИ (итоги строили), а потом обходите всё линейно.
|
|||
164
m-serg74
09.03.14
✎
23:30
|
(162) - (124)
|
|||
165
Мисти
09.03.14
✎
23:30
|
Я обхожу по группировкам.
|
|||
166
Torquader
09.03.14
✎
23:36
|
Пусть у нас СписокНоменклатуры - наш список номенклатуры, в котором она должна быть.
ВидНоменклатуры - наш вид номенклатуры, который пользователь может выбрать. Тогда сначала формируем условие. УсловиеЗапроса=""; Если СписокНоменклатуры.Количество()>0 Тогда УсловиеЗапроса=УсловиеЗапроса+" |СпрНом.Ссылка В ИЕРАРХИИ(&ПарамСписокНоменклатуры)"; Зпр.УстановитьПараметр("ПарамСписокНоменклатуры",СписокНоменклатуры); КонецЕсли; Если ЗначениеЗаполнено(ВидНоменклатуры)Тогда УсловиеЗапроса=УсловиеЗапроса+" |СпрНом.ВидНоменклатуры=ПарамВидНоменклатуры"; Зпр.УстановитьПараметр("ПарамВидНоменклатуры",ВидНоменклатуры); КонецЕсли; Далее, это можно вставить в запрос. |
|||
167
Torquader
09.03.14
✎
23:39
|
ТекстЗапроса="
|ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура, | СвободныеОстаткиОстатки.Склад, | СвободныеОстаткиОстатки.ВНаличииОстаток, | СвободныеОстаткиОстатки.ВРезервеОстаток, | NULL КАК КОтгрузкеОстаток |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки"; Если УсловиеЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ГДЕ |"+УсловиеЗапроса; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.ВНаличииОстаток, | NULL, | ТоварыНаСкладахОстатки.КОтгрузкеОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки"; Если УсловиеЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ГДЕ |"+УсловиеЗапроса; КонецЕсли; в общем, где-то так. |
|||
168
Torquader
09.03.14
✎
23:42
|
С условием, кстати, я фигню написал - там ИЛИ нужно вставлять.
То есть так: УсловиеЗапроса=""; Если СписокНоменклатуры.Количество()>0 Тогда УсловиеЗапроса="СпрНом.Ссылка В ИЕРАРХИИ(&ПарамСписокНоменклатуры)"; Зпр.УстановитьПараметр("ПарамСписокНоменклатуры",СписокНоменклатуры); КонецЕсли; Если ЗначениеЗаполнено(ВидНоменклатуры)Тогда Если УсловиеЗапроса<>"" Тогда УсловиеЗапроса="("+УсловиеЗапроса+")И(СпрНом.ВидНоменклатуры=ПарамВидНоменклатуры)"; Иначе УсловиеЗапроса="СпрНом.ВидНоменклатуры=ПарамВидНоменклатуры"; КонецЕсли; Зпр.УстановитьПараметр("ПарамВидНоменклатуры",ВидНоменклатуры); КонецЕсли; |
|||
169
Torquader
09.03.14
✎
23:47
|
Ой, и ещё Null заменить на 0, так как Null в запросе просто никому не нужен.
Ну и сгруппировать нужно результат по выбранным полям с суммой, особенно, если склад не указан - иначе будет куча строк для одной и той же номенклатуры. |
|||
170
Torquader
09.03.14
✎
23:49
|
В общем, если немного посидеть, то можно и дописать.
|
|||
171
Мисти
10.03.14
✎
12:49
|
Надо максимум ограничений прямо в регистре указать, а не "где", за это меня уже пороли!
Или это мало влияет на скорость? |
|||
172
Мисти
10.03.14
✎
12:51
|
И чем плохо - сначала отобрать список номенклатуры (как я собиралась), а потом по нему рассчитывать остатки? (там еще и цены потом)
Или вот так - (как сначала было) "ВЫБРАТЬ | ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура.ВидНоменклатуры, ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры) КАК ВидНоменклатуры, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии, | ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток, | СвободныеОстаткиОстатки.Номенклатура.ВидНоменклатуры КАК ВидНомен |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбТМЦВыбран | ТОГДА Номенклатура В ИЕРАРХИИ (&ВыбТМЦ) | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВидНоменВыбран | ТОГДА Номенклатура.ВидНоменклатуры = &ВыбВидНомен | ИНАЧЕ ИСТИНА | КОНЕЦ {(Номенклатура)}) КАК СвободныеОстаткиОстатки |
|||
173
Мисти
10.03.14
✎
12:52
|
Про полное соединение - это мне тут кто-то написал в прошлый раз.
Я так и не поняла, чем его заменить (как это будет выглядеть) |
|||
174
Torquader
10.03.14
✎
14:16
|
(173) Полное соединение иногда интересно, но не в данном случае. Вы выбираете остатки из одного регистра и резервы - из другого, поэтому, логичнее отбирать сначала один, а потом другой (то есть объединение), а соединение в данном случае выглядит не очень понятно.
Кстати, можно посмотреть в любой типовой как делается любая выборка из нескольких регистров. Кроме того, если у вас будут цены, то нужно предполагать, что на складе будут одинаковые товары с разными ценами (если, конечно, не розничная торговля). Сначала отобрать список номенклатуры можно только тогда, когда есть доп-условия (по дополнительным свойствам) - так как соединение с основным запросом выглядит не очень красиво. Если же условия на значения номенклатуры, то можно делать соединения сразу в отборе по регистру (однако, это всё равно будет обращение к таблице Номенклатура). Хотя, если вы хотите получить все товары, которые удовлетворяют отбору вне зависимости от остатков, то вполне допустимо сначала просто их отобрать, так как всё равно от выборки по всем товарам не уйти, но в этом случае, количество товаров не должно быть большим. Самое главное, что при выборе регистров всё равно будет делаться соединение с этой виртуальной таблицей товаров, и, если в ней товаров не сильно меньше, чем в самой таблице товаров, то вы потеряете время на формирование временной таблицы. Можно не делать соединение с таблицей регистра и выбрать сначала остатки всех товаров, но, если большую часть этой выборки мы потом отбросим, то не за чем напрягать сервер. |
|||
175
Мисти
10.03.14
✎
16:04
|
Цена нужна только какая-то одна. Если нет цены - то и не надо, пусть будут только остатки.
Тогда надо писать 4 разных запроса - с ценой один (у меня не получилось объединить), по всей номенклатуре - другой, по номенклатуре с отбором - третий, а с отбором по доп. реквизитам - четвертый. |
|||
176
Torquader
10.03.14
✎
16:33
|
(175) Наконец-то, кто-то понял, что одним запросом несколько зайцев убить не получится.
|
|||
177
Мисти
10.03.14
✎
17:14
|
Да у меня и так их 2! Это как раз мой метод.
|
|||
178
Мисти
10.03.14
✎
17:14
|
Так что делать, если для всего справочника номенклатуры?
|
|||
179
Мисти
10.03.14
✎
17:19
|
Мне еще с иерархией надо разобраться!
И можно ли обойтись без итогов, если я потом делаю обход по группировкам? |
|||
180
Torquader
10.03.14
✎
17:20
|
(178) Если для всего справочника, то "левое соединение" с двумя регистрами и выбор значений.
Номенклатура ЛевоеСоединение Рег1 По Ном.Ссылка=Рег1.Ном ЛевоеСоединение Рег2 По Ном.Ссылка=Рег2.Ном |
|||
181
Torquader
10.03.14
✎
17:21
|
(179) Если хочется итоги по группам, то без итогов не обойтись - иначе группы будут, а итоги - нет.
|
|||
182
Мисти
10.03.14
✎
17:40
|
Пока надо решить основную проблему.
У меня написано в конце - |УПОРЯДОЧИТЬ ПО | Артикул |ИТОГИ | СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"; // В итоге у меня всё упорядочивается по артикулу, товары попадают в свою группу, но группы идут не в том порядке, в котором в справочнике! И что там у меня еще было ужасно? Спр.Группа убрала, задваивания строк нет! Это я не сообразила - первая строка идет по складу, вторая - по номенклатуре. |
|||
183
Torquader
10.03.14
✎
18:04
|
Зачем нужно упорядочивание по артикулу ?
Или это заказчики хотели ? Просто, в случае иерархии по номенклатуре это будет выглядеть очень странно. |
|||
184
Мисти
10.03.14
✎
18:19
|
Да, они хотят, чтоб порядок групп - как в справочнике, а в группе - по артикулу.
Сейчас проверю - если убрать по артикулу и оставить автоупорядочивание (а это что?) - может, так и получится? |
|||
185
Мисти
10.03.14
✎
18:34
|
Не-а, группы встали на место, а внутри группы - не по артикулу.
|
|||
186
Мисти
10.03.14
✎
18:37
|
По умолчанию, если открыть справочник номенклатуры - там тоже не по артикулу.
Я могу предложить только такой дурацкий способ - по группам выгружать в таблицу там сортировать, и выводить. |
|||
187
Torquader
10.03.14
✎
19:02
|
Смотри - когда ты включаешь упорядочивание по артикулу - все товары в запросе выбираются по артикулу, а группы достраиваются после попадания товара в отчёт, то есть до появления товара группа никак не может попасть в запрос.
|
|||
188
GANR
10.03.14
✎
19:03
|
(0) Неужели не проще сделать за 2-3 недели то, что я рекомендовал, а не плодить в течение нескольких месяцев вопросы про один и тот же запрос??? Обучающий курс, про который я говорил, проходят даже люди, которым за 60 http://sql-ex.ru/users_page.php?uid=10332 - и ничего.
|
|||
189
Мисти
10.03.14
✎
19:06
|
Давай курс! Я уже почти созрела.
|
|||
190
Мисти
10.03.14
✎
19:07
|
(187) Это странно звучит, как будто речь о переборе.
Оно же всё одновременно появляется в запросе! Если нет нормального пути - сделаю через таблицу. |
|||
191
Torquader
10.03.14
✎
19:09
|
(190) Автоупорядочивание - в твоём случае, упорядочивание по наименованию справочника, но вы ему сказали по артикулу.
Можно попробовать добавить в запрос родителя номенклатуры, упорядочить сначала по нему (то есть по его имени), а потом уже по артикулу (будет для тех, у кого родитель совпал). |
|||
192
Мисти
10.03.14
✎
19:16
|
Мне нравятся твои советы! У меня возникает вопрос - "почему я сама до этого не додумалась?", а не - "что этоо??"
|
|||
193
Мисти
10.03.14
✎
19:17
|
А зачем тогда нужна галка "автоупорядочивание", если и без нее всё так же упорядочивается?
|
|||
194
Torquader
10.03.14
✎
19:21
|
В системе результат запроса упорядочивается по внутреннему ID, который не очень понятен, если же сказано "автоупорядочивание", то это говорит машине, что пользователь хочет видеть упорядоченный результат так, как он показывается в списке.
Однако, автоупорядочивание работает уже после команды "упорядочить по", и в вашем случае "упорядочить ПО артикул" перекрывает автоупорядочивание, которое проявится только тогда, когда совпадут артикулы. |
|||
195
Torquader
10.03.14
✎
19:23
|
(192) Если кто-то не хочет думать, это значит, что он на что-то отвлекается.
А вообще, можно почитать любую инструкцию по настоящему SQL, чтобы понять, как он работает - в 1С пытались сделать тоже самое, но на русском языке. P.S. я видел женщину твоего возраста, которая на ура с Oracle работала, так что ничего невозможного нет. |
|||
196
Мисти
10.03.14
✎
19:29
|
Да дело не в возрасте.
Ума у меня, и правда, маловато. Точнее, нет объемного воображения, чтоб с таблицами работать. |
|||
197
Мисти
10.03.14
✎
19:33
|
Очень интересно! Группы построились правильно, а номенклатура - в обратном порядке.
|
|||
198
Мисти
10.03.14
✎
19:49
|
Усё. Получилось.
|
|||
199
rphosts
10.03.14
✎
20:12
|
не прошло и 2 недель...
|
|||
200
Мисти
10.03.14
✎
20:26
|
Бред какой-то! На меленькой группе (внутри еще один уровень подгрупп) - всё красиво, а на большой (внутри - 2 уровня подгрупп) - всё наоборот - подгруппы в неизвестно каком порядке и иерархия в обратную сторону.
|
|||
201
Torquader
10.03.14
✎
20:32
|
(200) Сортировка по родителям была в каком порядке ?
И по чему они упорядочены при выводе в списке ? |
|||
202
Мисти
10.03.14
✎
20:36
|
Я не стала править то, что как бы и работает пока. Хоть бы добиться вида нужного.
ТекстЗапроса = "ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом |ИЗ | Справочник.Номенклатура КАК СПрНом |ГДЕ | (&НоменклатураНеЗаполнена | ИЛИ СПрНом.Ссылка В ИЕРАРХИИ (&ВыбТМЦ)) | И (НЕ &ВидНоменВыбран | ИЛИ СПрНом.ВидНоменклатуры = &ВыбВидНомен )И НЕ СПрНом.ЭтоГруппа |;"; Если Не ВыбПрограмма.Пустая() Тогда ТекстЗапроса = ТекстЗапроса+ " ///////////////////////////////////// | ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом2 |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбПрограмма |;"; Иначе ТекстЗапроса = ТекстЗапроса+ " ///////////////////////////////////// | ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка Как Номенклатура |ПОМЕСТИТЬ ВТ_СписокНом2 |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Ссылка В (ВЫБРАТЬ ВТ_СписокНом.Номенклатура ИЗ ВТ_СписокНом) | И НоменклатураДополнительныеРеквизиты.Значение = &ВыбПрограмма |;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+ "ВЫБРАТЬ | ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад, | ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии, | ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток |ПОМЕСТИТЬ ВТ_СвободныеОстатки |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА НЕ &ВыбПрограммаВыбран | ТОГДА Номенклатура В | (ВЫБРАТЬ | ВТ_СписокНом.Номенклатура | ИЗ | ВТ_СписокНом) | ИНАЧЕ Номенклатура В | (ВЫБРАТЬ | ВТ_СписокНом2.Номенклатура | ИЗ | ВТ_СписокНом2) | КОНЕЦ {(Номенклатура)}) КАК СвободныеОстаткиОстатки | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( | &НаДату, | ВЫБОР | КОГДА &СкладВыбран | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ | И ВЫБОР | КОГДА &ВыбПрограммаВЫбран | ТОГДА Номенклатура В | (ВЫБРАТЬ | ВТ_СписокНом2.Номенклатура | ИЗ | ВТ_СписокНом2) | ИНАЧЕ Номенклатура В | (ВЫБРАТЬ | ВТ_СписокНом.Номенклатура | ИЗ | ВТ_СписокНом) | КОНЕЦ {(Номенклатура)}) КАК ТоварыНаСкладахОстатки | ПО СвободныеОстаткиОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И СвободныеОстаткиОстатки.Склад = ТоварыНаСкладахОстатки.Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СПрНом.Ссылка КАК Номенклатура, | ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад, | ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве, | ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии, | ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток, | ПРЕДСТАВЛЕНИЕ(СвободныеОстатки.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд, | СвободныеОстатки.Номенклатура.Артикул КАК Артикул, | СвободныеОстатки.Номенклатура.ЭтоГруппа, | СПрНом.Код, | СПрНом.Родитель КАК Родитель |ИЗ | Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки | ПО СПрНом.Ссылка = СвободныеОстатки.Номенклатура |ГДЕ | (НЕ &ВыбПрограммаВЫбран | И СПрНом.Ссылка В | (ВЫБРАТЬ | ВТ_СписокНом.Номенклатура | ИЗ | ВТ_СписокНом) | ИЛИ &ВыбПрограммаВЫбран | И СПрНом.Ссылка В | (ВЫБРАТЬ | ВТ_СписокНом2.Номенклатура | ИЗ | ВТ_СписокНом2)) | |УПОРЯДОЧИТЬ ПО | Родитель, | Артикул |ИТОГИ | СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ"; |
|||
203
Мисти
10.03.14
✎
20:37
|
Смотрю в отладчике результат запроса - там так и есть, первая группа упорядочена по артикулу по возрастанию, а остальные - по убыванию.
Терроризм какой-то. |
|||
204
GANR
10.03.14
✎
21:04
|
(189) А чего его давать? Регистрируемся на ресурсе из (188), решаем 63 упражнения (1-й сертификат) на рейтинговом этапе и такие вопросы отпадают.
|
|||
205
Torquader
10.03.14
✎
21:12
|
(202) А почему Артикул выбирается из СвободныхОстатков - что там будет, когда остатков нет - Null и что с этим делать ?
|
|||
206
Мисти
10.03.14
✎
21:25
|
(205) чушь какая. Это кто так написал???
|
|||
207
Torquader
10.03.14
✎
21:29
|
(206) И ЭтоГруппа оттуда же.
Кто написал, по-мойму, это очевидно - и ему должно быть стыдно и обидно. |
|||
208
Мисти
10.03.14
✎
22:54
|
Теперь по артикулу всё идет правильно, а группы - еще в запросе стоят не в том порядке, не по алфавиту.
Хотя уже написала - сортировать по наименованию родителя. | СПрНом.Код, | СПрНом.ЭтоГруппа, | СПрНом.Артикул КАК Артикул, | СПрНом.Родитель.Наименование КАК РодительНаименование |ИЗ | Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки | ПО СПрНом.Ссылка = СвободныеОстатки.Номенклатура |ГДЕ | ((НЕ &ВыбПрограммаВЫбран | И СПрНом.Ссылка В | (ВЫБРАТЬ | ВТ_СписокНом.Номенклатура | ИЗ | ВТ_СписокНом) | ИЛИ &ВыбПрограммаВЫбран | И СПрНом.Ссылка В | (ВЫБРАТЬ | ВТ_СписокНом2.Номенклатура | ИЗ | ВТ_СписокНом2))и не Спрном.ЭтоГруппа) | |УПОРЯДОЧИТЬ ПО | РодительНаименование, | Артикул |ИТОГИ | СУММА(ВРезерве), | СУММА(ВНаличии), | СУММА(ПолныйОстаток) |ПО | Склад, | Номенклатура ИЕРАРХИЯ"; // Возврат(ТекстЗапроса); |
|||
209
Мисти
10.03.14
✎
22:58
|
(204) Так это не совсем чтоб 1С!
И вообще, я привыкла на русском писать. Мне бы такой же - но прямо чтоб 1С. |
|||
210
Torquader
10.03.14
✎
23:34
|
СпрНом.ЭтоГруппа при выборе вам зачем ?
Собственно, как и код. Если и так не получилось, то выбирай номенклатуру в отдельную таблицу, как в иерархии, а потом из этой таблицы выбирай только элементы. |
|||
211
Мисти
10.03.14
✎
23:54
|
Так элементы нормально! У меня группы набекрень.
|
|||
212
Мисти
10.03.14
✎
23:55
|
Код = чтоб в таблице посмотреть в отладчике.
А он мешает? |
|||
213
vicof
11.03.14
✎
00:29
|
(210) удивляюсь вашему хладнокровию и педагогическим способностям.
|
|||
214
Torquader
11.03.14
✎
01:27
|
(213) Вы никогда не пробовали приучать котёнка к сортиру - вот там терпения нужно на целый день, так как эти животные не могут продумывать своих действий.
А в данном случае - человек - и даже что-то пытается сделать. И, вполне вероятно, что даже сделает. (211) Попробуй сначала выбрать справочник с группами (во временную таблицу), а потом группы убрать. (И это можно делать на тестовом запросе без соединения с регистром - чтобы быстрее выполнялось). |
|||
215
Мисти
11.03.14
✎
01:36
|
(214) Спасибо за помощь, но я не поняла, как это.
А кошки, кстати, сами понимают про сортир всё, во всяком случае, котята - точно. Вот щенки совсем не сразу. |
|||
216
vicof
11.03.14
✎
02:41
|
(214) я кошку за один день приучил, просто отнес в туалет и все) сама все поняла. Но человека заставить сделать самому-просто отнести,положить,показать,разжевать мало. Пока у Мисти не появится внутренняя мотивация-так и будет сидеть и тупить. Человеке животное ленивое.
|
|||
217
Torquader
11.03.14
✎
09:01
|
В общем, в умной книжке написано, что для получения правильной иерархии нужно выбирать с группами, а в упорядочивании писать СпрНом.Ссылка ИЕРАРХИЯ.
Соответственно, группы можно будет потом "выкинуть" при получении результата запроса. |
|||
218
Мисти
11.03.14
✎
09:14
|
Ого! Говорит - "Нельзя использовать иерархическую сортировку в запросе с итогами.
|
|||
219
Wobland
11.03.14
✎
09:17
|
не хочу читать двести постов. вижу желание группировки в (208), сформулированное странным образом
|
|||
220
Мисти
11.03.14
✎
10:36
|
А что там странного?
Там же соединение с остатками! |ИЗ | Справочник.Номенклатура КАК СПрНом | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки |
|||
221
Torquader
11.03.14
✎
10:44
|
(219) Она хочет "интересную" группировку и итоги по группам - что тут такого странного (разве что желание внутри группы отсортировать по артикулу).
|
|||
222
Wobland
11.03.14
✎
10:48
|
(221) она знает, что ЭТОГИ дадут ей дерево?
|
|||
223
Мисти
11.03.14
✎
10:49
|
Да, потом обход по группировкам - по складу и по номенклатуре.
|
|||
224
Torquader
11.03.14
✎
12:15
|
(222) Они ей уже дали дерево, только ветки на этом дереве в другую сторону смотрят.
|
|||
225
Torquader
11.03.14
✎
12:16
|
На самом деле - задача не совсем тривиальная - получить дерево, как оно выглядит в справочнике да ещё и с итогами по ветвям.
|
|||
226
GANR
11.03.14
✎
16:17
|
(209) Не важно какой язык - суть в том, чтобы развить пространственное воображение, нужное при написании запросов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |