Имя: Пароль:
1C
1С v8
функция минимум в запросе
, ,
0 gorilla
 
05.11.15
20:44
добрый вечер всем.такой вопрос.не выбирает запрос только минимальный срок по сериям.тоесть минимальные серии.продолжает выбирать все.и группирует странно.товар вверху,другой в середине,третий в конце.

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

СГРУППИРОВАТЬ ПО
Выразить(Номенклатура.НаименованиеПолное КАК строка (1000)),
Номенклатура.Код,
ЗначенияСвойствПроизводитель.Значение,
ТоварыНаСкладахОстатки.СерияНоменклатуры,
ЦеныНоменклатурыСрезПоследних.Цена,
ТоварыНаСкладахОстатки.КоличествоОстаток,
1 FIXXXL
 
05.11.15
20:48
минимум не такой умный, что б в сериях разбираться
примитивные типы - эт да
2 Рэйв
 
05.11.15
20:50
что это за пафос?
Выразить(Номенклатура.НаименованиеПолное КАК строка(1000)) КАК Название,
3 gorilla
 
05.11.15
20:51
(1) не хотелось ыб пложить ветки,но я невнимательно глянул на результаты,с начал показалось что серии выбирает потом изучил все записи и нашел повторы по артикулам.может кто посовтует как отбрать наименьший срок годности у серии?из трех дат взять наименьшую.
(2)где то вычитал что с неограниченно длинной группировка непроходит.и правда если убрать выразить то будет ошибка
4 Рэйв
 
05.11.15
20:53
(3)ты реально под название 1000 символов готов придумать?:-)
Оптимист.
5 gorilla
 
05.11.15
20:53
(4)с запасом
6 Рэйв
 
05.11.15
20:55
(5)ты вкурсе , что Биллу Гейтсу было достаточно 512 КИЛОБАЙТ оперативной памяти?
7 Рэйв
 
05.11.15
20:55
На все:-)
8 gorilla
 
05.11.15
20:56
(6)ДА) в курсе.по моему вопросу что то подскажете?
9 Рэйв
 
05.11.15
20:58
(6)Скажу- Стремись к стандарту Билла Гейтса.:-)
10 Рэйв
 
05.11.15
21:00
А так советую использовать ВТ
11 Рэйв
 
05.11.15
21:01
и не забывать индексировать по полям по которым идет соединение конечно
12 gorilla
 
05.11.15
21:01
(10) например
13 Рэйв
 
05.11.15
21:04
(12) Может тебе еще и ключ от квартиры, где деньги лежат?
(С)О.Бендер
14 hhhh
 
05.11.15
21:20
(8)

СГРУППИРОВАТЬ ПО
   ...
   ТоварыНаСкладахОстатки.КоличествоОстаток

это что за порнография?

Реально веришь, что одинаковый остаток по каждому товару?
15 gorilla
 
05.11.15
21:30
(14)убрал.сделал Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК КоличествоТоваров,
и еще было
ВЫБОР
КОГДА СУММА(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0
    ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК Наличие

все равно отбирает все серии у карточки,хоть группирует по возрастанию
16 gorilla
 
05.11.15
21:30
пардон не по возрастанию.а как хочет
17 Рэйв
 
05.11.15
21:34
Я бы в ВТ для начала раскидал
18 Рэйв
 
05.11.15
21:34
перед соединением
19 gorilla
 
05.11.15
21:49
Номенклатура.Ссылка.Код КАК Код
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры) КАК СерияНоменклатуры,
ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
ПО Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
ГДЕ
Номенклатура.ПометкаУдаления = ЛОЖЬ
И Номенклатура.ЭтоГруппа = ЛОЖЬ
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка.Код
ТоварыНаСкладахОстатки.СерияНоменклатуры,


сделал простейший запрос.не работает минимум
20 segn
 
05.11.15
21:58
В секции

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

убери последнюю строку
21 gorilla
 
05.11.15
22:16
убрал.спасибо.запрос выдал что нужно.
22 gorilla
 
05.11.15
22:26
(20)спасибо вам огромное
23 gorilla
 
05.11.15
22:42
еще один вопрос чисто из интереса.МИНИМУМ срабатывает отлично есть партия 15.11.2015 и 14.12.2015 вытаскивает 15.11.15 а вот ради интереса меняю МИНИМУМ на МАКСИМУМ и он не срабатывает потому что есть партии 01.04.2016 и 28.01.2016 и 10.03.2016 а вытаскивает  28.01.2016.Почему так?
24 hhhh
 
05.11.15
22:57
(23) а где у тебя дата в запросе? Почему ты по датам ждешь?
25 gorilla
 
05.11.15
22:58
"Почему ты по датам ждешь?" сорри непонял
26 gorilla
 
05.11.15
23:05
(24)а как правильно?
27 viktor_vv
 
05.11.15
23:22
Он тебе минимум по ссылке серии берет, а не по представлению. Возьми что ли минимум(серия.наименование) или какой там тебе реквизит интересует.
28 gorilla
 
05.11.15
23:27
(27)сделал
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.Наименование) КАК СрокГодности,
так он мне гад вытащил самую последнюю партию 01,04,2016 а нужно 15.11.15
29 gorilla
 
05.11.15
23:31
понимаю что достал всех,но...запрос отлично все делает вытаскивает нужную серию (ну по крайней мере до(27)) но проблема в том что количество этой серии суммированое а не по остатку
30 viktor_vv
 
05.11.15
23:31
Если есть в партии реквизит с датой годности, по нему делай минимум. А то так по правилам сортировки строк работает и как бы правильно выдал.
31 gorilla
 
05.11.15
23:34
(30)спасибо МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,
получилось
но проблема(29) актуальна
32 viktor_vv
 
05.11.15
23:35
это тебе во временную таблицу отобрать минимальные серии потом сделать внутренне соединение к вт остатков по номенклатуре и серии.
33 gorilla
 
05.11.15
23:36
(32)а как при этом оставить
ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура
34 hhhh
 
05.11.15
23:46
ну, 2 раза будет

ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура

там и там
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн