Имя: Пароль:
1C
 
Выбрать 5 самых продаваемых позиций по каждой номенклатурной группы.
0 sashafish
 
03.10.09
13:33
Как выбрать ограниченное количество? Поз номенклатурной группой подразумевается папка в которой лежит номенклатура. Общее количество выбрал так:
ВЫБРАТЬ
   ПродажиОбороты.Номенклатура.Родитель КАК НоменклатураРодитель,
   ПродажиОбороты.Номенклатура,
   СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

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

УПОРЯДОЧИТЬ ПО
   НоменклатураРодитель,
   КоличествоОборот УБЫВ
ИТОГИ
   СУММА(КоличествоОборот)
ПО
   НоменклатураРодитель
АВТОУПОРЯДОЧИВАНИЕ
1 Maniac
 
03.10.09
13:38
ВЫБРАТЬ ПЕРВЫЕ 5
2 Maniac
 
03.10.09
13:40
хотя она выберет 5 из всех папок. если по каждой то надо думтаь
3 sashafish
 
03.10.09
13:41
(2) как не странно:)
4 Maniac
 
03.10.09
13:43
можно попробовать несколько вложенных запросов. один чисто по папкам для определения количество папок, во втором по номенклатуре с количеством получаемых элементов по формуеле - количество полученных папок из преидущего запроса * 5.
5 izekia
 
03.10.09
13:43
на 1С нереализуемо
на транзакте нормальном вполне

а в справочнике сколько уровней? и элементы есть на всех или только на последнем?
6 izekia
 
03.10.09
13:44
(4) смешно, ты хоть сам понял что сказал?
7 Maniac
 
03.10.09
13:44
передай в запрос параметр с количество полученных папок. можно сделать отдельным запросом перед главным.
Потом умножаешь на 5. получаешь количество требуемых для выборки элементов.
Передаешь ээто количество в ВЫБРАТЬ ПЕРВЫЕ
8 sashafish
 
03.10.09
13:45
(5) неопределенное количество уровней, элементы есть везде.
9 izekia
 
03.10.09
13:45
+(5) нереализуемо - в смысле на урезанном языке запросов
10 bazvan
 
03.10.09
13:45
на ИТС есть анализ данных (типа консоли) там вроде такое есть. поглядите
11 sashafish
 
03.10.09
13:45
(7) а если в некоторых папках пусто?
12 Maniac
 
03.10.09
13:45
(8) ну так сделай предварительный запрос пчисто по папкам. для определения.
13 izekia
 
03.10.09
13:46
(7) Евгений, успокойся, проблема нерешаема в запросе, если только не генерить текст запроса, что бессмысленно с учетом (8)
14 Maniac
 
03.10.09
13:46
(7) так ты запроссделай по данным продаж. но только по папкам.
15 izekia
 
03.10.09
13:47
(8) сделай запрос и далее уже обработай программно, на 1С запросом это не сделать
16 Maniac
 
03.10.09
13:48
(13) не гони пургу. двумя запросами все реализуемо.
1) получаем предварительным запросом структуру справочника по папкам. Получаем количество папок.
умножаем на 5 = получеам общее количсетво элементов которые как раз будут искомыми.
Во втором запросе делам выбрать первые +"количествоЭлементов
Всё. задача решена.
17 Maniac
 
03.10.09
13:49
на краяняк тупо в выборке запроса по счетчику выводить.
18 Mikeware
 
03.10.09
13:49
(10) В консоли это и в семерке работает
19 izekia
 
03.10.09
13:50
(16) Евгений, ты ничего не понимаешь в запросах и что самое смешное не стесняешься это показать
20 Maniac
 
03.10.09
13:51
(19) так и скажи что облажался утверждениями а вариант то рабочий.
21 izekia
 
03.10.09
13:51
(16) могу за 25 уе показать тебе ошибки в твоем методе
хотя нет, за 25 я покажу тебе одну
и + намек на втору в подарок
22 sashafish
 
03.10.09
13:51
(17) задача-сделать запросом.
(18) о какой консоле речь. итс нет сейчас:(
23 izekia
 
03.10.09
13:51
(22) кто такую задачу ставит?
24 sashafish
 
03.10.09
13:52
(23)я:) ворочаться с выборками- плохо это:)
25 izekia
 
03.10.09
13:53
ты пойми, в 1С ты имеешь дело с урезаным языком запросов, в нем такое сделать нереально
хотя тут одна идея была, сейчас попробую накидать
26 izekia
 
03.10.09
13:56
(24) здесь запросом нужно получить необходимые данные и дальше обработать, другого пути нет, по крайней мере имеющего смысл
27 Maniac
 
03.10.09
14:00
Можно динамический запрос сделать с вложенностью
28 Maniac
 
03.10.09
14:01
Тип выборка по группам справочника и присоединение к тексту запроса вложенного запроса по каждой папке. с получением 5 элементов
29 izekia
 
03.10.09
14:02
короче есть вариант, сделать соединение по группе пять раз, выбрать соединения имеющие наибольшую сумму для каждой группы, но это слегка неоптимально
30 izekia
 
03.10.09
14:03
(28) читай (13)
31 sashafish
 
03.10.09
14:08
(29) "слегка неоптимально":))
32 izekia
 
03.10.09
14:09
(29) + в условии исключить совпадения элементов
ну и соответственно заджойнить это все на временную таблицу с итогами
пять раз и сложить суммы и по этим суммам найти максимум по группам и на него еще раз заджойнить то же самое
33 Tafa
 
03.10.09
14:10
ВЫБРАТЬ
   ПродажиОбороты.Номенклатура.Родитель КАК Родитель,
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.КоличествоОборот КАК Количество
ПОМЕСТИТЬ Продажи
ИЗ
   РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Продажи.Родитель КАК Родитель,
   Продажи.Номенклатура КАК Номенклатура,
   Продажи.Количество КАК Количество
ИЗ
   Продажи КАК Продажи
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Продажи КАК ПродажиНумерация
       ПО Продажи.Родитель = ПродажиНумерация.Родитель
           И Продажи.Количество <= ПродажиНумерация.Количество

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

ИМЕЮЩИЕ
   КОЛИЧЕСТВО(ПродажиНумерация.Количество) <= 5

УПОРЯДОЧИТЬ ПО
   Родитель,
   Количество УБЫВ
34 izekia
 
03.10.09
14:10
(31) это единственное решение в данном случае, с использованием временных таблиц, оно вполне оптимальным будет
35 izekia
 
03.10.09
14:13
(33) а где сортировка, здесь просто первые пять
36 Tafa
 
03.10.09
14:14
(35)
УПОРЯДОЧИТЬ ПО
   Родитель,
   Количество УБЫВ
37 jcage
 
03.10.09
14:14
Все отметившиеся в это ветке - ламеры. Особенно maniac. Идите в институт учите коррелированные подзапросы.

Вариант для 8.0. Работает примерно 40 секунд

ВЫБРАТЬ
   Продажи.Номенклатура,
   Продажи.СтоимостьОборот КАК СтоимостьОборот,
   Продажи.Группа КАК Группа
ИЗ
   (ВЫБРАТЬ
       ПродажиОбороты.Номенклатура КАК Номенклатура,
       ПродажиОбороты.Номенклатура.Родитель КАК Группа,
       ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
   ИЗ
       РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты) КАК Продажи
ГДЕ
   Продажи.Номенклатура В
           (ВЫБРАТЬ ПЕРВЫЕ 5
               ВложенныеПродажи.Номенклатура
           ИЗ
               РегистрНакопления.Продажи.Обороты КАК ВложенныеПродажи
           ГДЕ
               ВложенныеПродажи.Номенклатура.Родитель = Продажи.Группа
           УПОРЯДОЧИТЬ ПО
               ВложенныеПродажи.СтоимостьОборот УБЫВ)

УПОРЯДОЧИТЬ ПО
   Группа,
   СтоимостьОборот УБЫВ
ИТОГИ ПО
   Группа

Вариант для 8.1.

ВЫБРАТЬ
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.Номенклатура.Родитель КАК Группа,
   ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
ПОМЕСТИТЬ Продажи
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Продажи.Номенклатура,
   Продажи.СтоимостьОборот КАК СтоимостьОборот,
   Продажи.Группа КАК Группа
ИЗ
   Продажи КАК Продажи
ГДЕ
   Продажи.Номенклатура В
           (ВЫБРАТЬ ПЕРВЫЕ 5
               ВложенныеПродажи.Номенклатура
           ИЗ
               Продажи КАК ВложенныеПродажи
           ГДЕ
               ВложенныеПродажи.Группа = Продажи.Группа
           УПОРЯДОЧИТЬ ПО
               ВложенныеПродажи.СтоимостьОборот УБЫВ)

УПОРЯДОЧИТЬ ПО
   Группа,
   СтоимостьОборот УБЫВ
ИТОГИ ПО
   Группа

Замеры произведены для компа 1 ГБ RAM, 2.2 ЦПУ. УТ за год работы - примерно 10 реализаций по 20 строк в день.
38 izekia
 
03.10.09
14:15
(36) да правильно, я не обратил внимания, что речь идет про количество, а не про сумму
39 izekia
 
03.10.09
14:16
значит в (34) я был неправ
40 jcage
 
03.10.09
14:17
(33) уже лучше - ты не ламер =). Но запрос будет очень долго работать.
41 jcage
 
03.10.09
14:18
(37) + вариант для 8.1. работает примерно 5 секунд
42 sashafish
 
03.10.09
14:18
jcage- отец.
43 izekia
 
03.10.09
14:19
(37) мне почему-то всегда казалось, что конструкция
           ГДЕ
               ВложенныеПродажи.Группа = Продажи.Группа
в 1С не работает, спасибо за пример
44 izekia
 
03.10.09
14:24
я похоже такой же тупой как Евгений, пойду лучше работать
45 Maniac
 
03.10.09
14:28
(37) я ламер? походу ты ламер. привел тоже самое о чем я говорил. в отличие от тебя мы в общении только идею предлагали. кокнретная верная реализация уже в процессе рождается.Я предложил самое главное - толчок от чего плясать.
Походу ты ламер раз этого не понял.
46 jcage
 
03.10.09
14:28
Разобрал запрос Tafa. Оценка в (40) была не верной. Запрос работает очень хорошо. Tafa - мое почтение.
47 jcage
 
03.10.09
14:32
(45) Да - ты ламер. Перечитай посты в этой ветке. Ты не предложил конкретного быстро работающего решения, а предлагал всякую фигню типа двух запросов. Понтов у тебя много, а толку - пшик.
48 Maniac
 
03.10.09
14:34
(47) придурок. я сразу сказал Про выборку ПЕРВЫЕ
и про несколько запросов включая вложенный.
Если у тебя готовое решение было - флаг в руки барабан на шею. Я не сидул код не писал. а прдлагал конструкцию. Конкретная реализация мне нафиг не нужна была - у меня таких задач нестоит. Если бы чел сел за код сделал бы тоже самое.
49 jcage
 
03.10.09
14:38
(48)
1. За базар ответить можно. Земля круглая.
2. Ты теперь свистеть можешь сколько угодно. Посты до (37) все говорят за тебя. Вместо того что бы теоритизировать как ты я потратил 1 минуту и написал запрос.
50 Maniac
 
03.10.09
14:40
(49) думаешь перчатки и красные труселя одел пуп земли?
Грубить не надо было в 37.
51 ukneo
 
03.10.09
14:42
а у меня тоже есть красные труселя и перчатки=) значит я тоже пуп земли?
правда я если чего нить не знаю я всякую лабуду не пишу на форуме
52 jcage
 
03.10.09
14:43
(51) у тебя синие =) ты до пупа земли не дотягиваешь
53 ink1981
 
03.10.09
14:43
Суровые мужики не носят красные труселя
54 jcage
 
03.10.09
14:46
(53) если ты считаешь, что суровые мужики должны сидеть на форумах писать всякую фигню и пользуясь анонимность оскорблять других - то лучше я буду в красных труселях.
55 jcage
 
03.10.09
14:47
(50) А насчет перчаток - как будешь в москве - пиши. Проверим чего ты стоишь. Ламерок.
56 Maniac
 
03.10.09
14:48
Кстати где в этом запросе вложенность по иеархии.
57 Maniac
 
03.10.09
14:49
в отчет выведется только групп и номенклатура. многоуровневые группы в результат не выйдет. где они?
58 Maniac
 
03.10.09
14:50
(55) остынь шпана.
59 Maniac
 
03.10.09
14:51
ты наверно и пользователей своих за ламеров считаешь да? ну и как труселя спасают?
60 izekia
 
03.10.09
14:53
(56) Евгений, ты описание задачи читал?
61 Maniac
 
03.10.09
14:57
(60) а что описание задачи. Надо наперед думать о том что задачу сразу могут изменить. У меня дерево групп большое. Внутри группы которые относятся к нужным группам.
Ты думаешь когда заказчик увидит что ему принесли не спросит а почему не видно верхних групп, или не скажет мне так неудобно смотреть папки все подряд.
62 Maniac
 
03.10.09
14:58
я бы сразу понял что нужно делать наперед так как надо, потому что когда скажут вывести все дерево придется полностью все переписывать.
63 izekia
 
03.10.09
14:59
(61) ты что хочешь?
человек задал вопрос на форуме, получил конкретный и исчерпывающий ответ, даже два
(62) а ты уверен, что придется все полностью переписывать?
64 ukneo
 
03.10.09
14:59
(61) а еще он может сказать что хочет видеть как космические корабли бороздят безкрайние просторы вселенной. ты тоже ето будешь делать, заглядывая наперед?
65 Maniac
 
03.10.09
15:01
(63) по временной таблице иеархия не работает.
66 Maniac
 
03.10.09
15:02
(64) может и такое сказать. но тут как бы ответ очевиден. могу поспорить что это будет первым же вопросом заказчика.
67 Maniac
 
03.10.09
15:03
причем задаст этот вопрос ровно чере 5 секунд.
68 izekia
 
03.10.09
15:04
(65) то есть такое по-твоему не работает:
ВЫБРАТЬ
   Номенклатура.Ссылка
ПОМЕСТИТЬ Тест
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.ЭтоГруппа = ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Тест.Ссылка КАК Ссылка
ИЗ
   Тест КАК Тест
ИТОГИ ПО
   Ссылка ТОЛЬКО ИЕРАРХИЯ
69 Maniac
 
03.10.09
15:06
(68) итоги по иеархии
70 Maniac
 
03.10.09
15:08
(68) не помню где но  меня не рабьотала выборка по временной таблицы чтобы в отчет в результате выводилось всё дерево.
71 izekia
 
03.10.09
15:09
ВЫБРАТЬ
   Номенклатура.Ссылка,
   2 КАК Сумма
ПОМЕСТИТЬ Тест
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.ЭтоГруппа = ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Тест.Ссылка КАК Ссылка,
   Тест.Сумма КАК Сумма
ИЗ
   Тест КАК Тест
ИТОГИ
   СУММА(Сумма)
ПО

   Ссылка ТОЛЬКО ИЕРАРХИЯ
72 jcage
 
03.10.09
15:09
(56, 61, 62) не показывай дальше свое ламерство запросы из (33) от Tafa и из (37) от jcage легко модифицируются для работы с иерархией. Достаточно добавить ИЕРАРХИЯ в ИТОГИ. Кстати, прежде чем писать на форумах всякую фигню - я открыл УТ и ПРОВЕРИЛ будет ли это работать. Почему бы тебе не делать так же?
73 izekia
 
03.10.09
15:10
(70) Евгений, у тебя много что не работает, ответ в (47)
74 Maniac
 
03.10.09
15:14
лана пойду бьюсь аб стену
75 jcage
 
03.10.09
15:17
(74) первый стоящий пост от тебя
76 izekia
 
03.10.09
15:17
(74) лучше книжек умных почитай
77 Maniac
 
03.10.09
15:18
(76) лучше неделю протрезветь
78 kumena
 
03.10.09
15:19
можете еще вот здесь поразбиваться v8: Соединение с максимумом по сумме, реально?
в производственных целях сделал не одним запросом и уже заниматься лень.
79 ukneo
 
03.10.09
15:19
ну как вам не стыдно человека оскорблять. ну ошибся он, ну ошибся он, ну построил из себя самого умного, ну он же согласился биться головой ап стену=)
вы зачем его еще подопнули к етой самой стене.
ай ай ай. как не стыдно
80 kumena
 
03.10.09
15:20
то есть запрос один, ограничитель не в запросе
81 Maniac
 
03.10.09
15:20
(79) да просто красные круселя кому то жмут видно
82 jcage
 
03.10.09
15:27
(81) ты сам виноват.
83 Maniac
 
03.10.09
15:31
(82) давай не будем возвращатся. я уже писал что я не кодер. Для меня решение задач в первую очередь начальная точка от которой плясать а дальше конкретная реализация. и я все верно изнчально понял. мож написал по тупому но понял я все как надо. и про выборку по количеству и про необходимость вложенного запроса. оставалось только сесть и конкретно найти вариант.
Если бы я сидел и каждому тут готовые запросы шлепал то уж извини брат был бы лохом. А лох и ламер несопоставимы.
84 jcage
 
03.10.09
15:35
(83)
1. Давай не будем пиписьками меряться - у меня длиннее. Я не буду своей должностью бравировать, но она выше.
2. Запрос написать заняло ровно 1 минуту - наглядно и понятно. Ты что бы всю ту фигню писать потратил минут 10.
3. Твои предложения 2-ух запросов по определению не верные в 8.х. В 7.7 может быть это и правильно.

Получил ты за то что с уверенностью вещаешь про вещи которых не знаешь.

А вообще спасибо тебе мы тут с Васей поржали над тобой от души.
85 bazvan
 
03.10.09
15:38
(84) Нууу это тут Маня мало ж о г
Вот тут OFF: В шоке от УправлениеТорговлей я понимаю что большая ветка НО там просто жжжесть
86 Maniac
 
03.10.09
15:45
(84) человек. я сижу мне делать нечего. могу общатся и часами глянь ссылку в (85)
87 Maniac
 
03.10.09
15:46
(85) привет. нравятся большие ветки с маньяком?
88 ptiz
 
03.10.09
16:08
Через СКД можно. Там есть "первые N записей".
89 izekia
 
03.10.09
16:15
(88) дорого
90 sashafish
 
03.10.09
17:32
В общем не знаю будет ли этот пост последним, но все огромное спасибо:)
91 Maniac
 
03.10.09
17:38
(90) да не за что))))) будешь еще что нибудь нужно из готовых запросов пиши. Меня зови в ветку и обязательно получишь готовый текст кода совершенно забесплатно.
92 jcage
 
03.10.09
17:41
можно сделать проще - приходи работать в нашу компанию. Коллектив у нас сильный - быстро научишься писать правильные запросы.
93 bazvan
 
03.10.09
17:45
(92) Фрнач?
94 jcage
 
03.10.09
17:48
(93) формально - да. Но беготней принципиально не занимаемся. Работаем на нескольких проектов. По отделу на проект.
95 Maniac
 
03.10.09
17:50
газпром чтоле?
96 bazvan
 
03.10.09
17:50
(94)ясно спасибо
97 BabySG
 
03.10.09
23:46
(72) ИТОГИ не прокатят в СКД
98 bvn13
 
04.10.09
00:13
вот такой текст запроса по сабжевой теме приведен в каркасной конфигурации от Арутюнова Сергея (1С):


Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 5
              |    ИсточникДанных.Товар
              |ИЗ
              |    (ВЫБРАТЬ
              |        РезервТовара.Товар КАК Товар,
              |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РезервТовара.Регистратор) КАК Сделок
              |    ИЗ
              |        РегистрНакопления.РезервТовара КАК РезервТовара
              |    ГДЕ
              |        РезервТовара.Цена <> 0
              |    
              |    СГРУППИРОВАТЬ ПО
              |        РезервТовара.Товар) КАК ИсточникДанных
              |
              |УПОРЯДОЧИТЬ ПО
              |    ИсточникДанных.Сделок УБЫВ";
99 simol
 
04.10.09
00:27
(98)нужно не первые 5 а первые 5 в каждой группе
100 eklmn
 
гуру
04.10.09
01:17
100!!!
101 Злопчинский
 
04.10.09
01:56
задача - фекалия! особенно если окажется, что после запроса элемент перекинули в другую группу... вот из-за таких долюоебов наши космические корабили и не бороздят просторы вселенной.
102 sashafish
 
05.10.09
18:20
Поразбирал временные таблицы, но что-то опять не в порядке:)
Если периодический регистр сведений СПЦ, в который пишется средняя цена прихода в разрезе Номенклатуры Серий. В запросе предпринита попытка вытащить из документов реализации номенклатуру и завязать ее на актуальном приходе. Т.к. есть измерение серий в регистре СПЦ, то срез последних дает СПЦ по каждой забитой серии. Надо вытащить только самую последнюю запись касательно серий. Запрос, который я навоял и который вешает систему:

ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Ссылка,
   РеализацияТоваровУслугТовары.Номенклатура,
   СПЦСрезПоследних.СПЦ,
   СПЦСрезПоследних.ЦенаПрихода,
   СПЦСрезПоследних.Период
ПОМЕСТИТЬ Артикул
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СПЦ.СрезПоследних КАК СПЦСрезПоследних
       ПО РеализацияТоваровУслугТовары.Номенклатура = СПЦСрезПоследних.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Артикул.Ссылка,
   Артикул.Номенклатура,
   Артикул.СПЦ,
   Артикул.ЦенаПрихода,
   Артикул.Период
ИЗ
   Артикул КАК Артикул
ГДЕ
   Артикул.Период В
           (ВЫБРАТЬ ПЕРВЫЕ 1
               ВАртикул.Период
           ИЗ
               Артикул КАК ВАртикул
           ГДЕ
               ВАртикул.Ссылка = Артикул.Ссылка)
103 sashafish
 
05.10.09
18:32
Разобрался. Это не "Вешает систему", это "Очень долго работает":) Как оптимизировать запрос хотя бы в 5 раз, т.е. до времени выполнения в 2 минуты:)
104 NewNick
 
05.10.09
19:39
первая таблица ну очень жирная ) ее обязательно строить по всем товарным позициями всех реализаций в том числе и удаленных и тп ?)
второй запрос почему то потерял упорядочивание.

в плане оптимизации все очень просто. вначале найди первые. а потом цепляй к реализациям а не наоборот )
105 sashafish
 
05.10.09
20:15
(104)Спасибо. Раскину мозгами. По итогам выложу запрос:)
106 Bober
 
05.10.09
20:20
номенклатурные группы - это папки спр.Номенклатура или отдельный спр.НоменклатурныеГруппы? Если папки, то нужно искать первые 5 родителя элемента или первые 5 по группах верхнего уровня, или еще как?
107 Bober
 
05.10.09
20:24
номенклатурные группы - это папки спр.Номенклатура или отдельный спр.НоменклатурныеГруппы? Если папки, то нужно искать первые 5 родителя элемента или первые 5 по группах верхнего уровня?
108 sashafish
 
05.10.09
21:34
(107)Вопрос по первым 5 решен, читай выше. Это папки.
109 jcage
 
05.10.09
22:04
1. Получаешь позиции запросом, которые писал выше.
2. Делаешь левое соединение со средними ценами ТОЛЬКО ПО этим позициям
3. При соединении на регистр сведений накладываешь условие на виртуальную таблицу по принципу:

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СПЦ.СрезПоследних(,Номенклатура В (ВЫБРАТЬ Номенклатура из ТАБЛИЦАСПЕРВЫМИ5продаваемымиПОЗИЦИЯМИПОГРУППАМ)

И будет намного быстрее. И отучайся делать запросы по документам для отчетов.
110 sashafish
 
06.10.09
12:03
Товарищи растусуйте, пожалуйста. Почему первый запрос выполняется за 30 секунд, а второй вообще не выполняется на моей машине. Ну машина конечно не ахти, но хоть как-то это должно работать?!
Запрос №1:
ВЫБРАТЬ
   СПЦСрезПоследних.Номенклатура,
   СПЦСрезПоследних.Период,
   СПЦСрезПоследних.СПЦ,
   СПЦСрезПоследних.ЦенаПрихода
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
   РегистрСведений.СПЦ.СрезПоследних КАК СПЦСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВременнаяТаблица.Номенклатура КАК Номенклатура,
   ВременнаяТаблица.Период,
   ВременнаяТаблица.СПЦ,
   ВременнаяТаблица.ЦенаПрихода
ИЗ
   ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
   ВременнаяТаблица.Период В
           (ВЫБРАТЬ ПЕРВЫЕ 1
               Таблица.Период
           ИЗ
               ВременнаяТаблица КАК Таблица
           ГДЕ
               Таблица.Номенклатура = ВременнаяТаблица.Номенклатура
           УПОРЯДОЧИТЬ ПО
               Таблица.Период УБЫВ)

УПОРЯДОЧИТЬ ПО
   Номенклатура
АВТОУПОРЯДОЧИВАНИЕ


Запрос №2:

ВЫБРАТЬ
   ВложенныйЗапрос.Период,
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.СПЦ
ИЗ
   (ВЫБРАТЬ
       СПЦСрезПоследних.Период КАК Период,
       СПЦСрезПоследних.Номенклатура КАК Номенклатура,
       СПЦСрезПоследних.СПЦ КАК СПЦ
   ИЗ
       РегистрСведений.СПЦ.СрезПоследних КАК СПЦСрезПоследних) КАК ВложенныйЗапрос
ГДЕ
   ВложенныйЗапрос.Период В
           (ВЫБРАТЬ ПЕРВЫЕ 1
               СПЦСрезПоследних.Период КАК Период
           ИЗ
               РегистрСведений.СПЦ.СрезПоследних КАК СПЦСрезПоследних
           ГДЕ
               СПЦСрезПоследних.Номенклатура = ВложенныйЗапрос.Номенклатура
           УПОРЯДОЧИТЬ ПО
               Период УБЫВ)
111 73
 
06.10.09
12:08
Во втором запросе СрезПоследних строится офигеть сколько раз.
В первом - 1 раз и помещается во временную.
112 jcage
 
06.10.09
12:15
Объясни структуру регистров и чего ты хочешь добиться.
113 sashafish
 
06.10.09
12:25
Регистр сведений СПЦ: периодический, с измерениями: номенклатура, характеристика номенклатуры, серия номенклатуры, склад; ресурсами: СПЦ, ЦенаПрихода. Регистр двигают все приходы на определенный склад. Каждый раз пишется новое значение СПЦ и  цены прихода. СПЦ=СуммаВсегоПрихода/ОбщееКолличествоПрихода.
Задача: вытащить последний приход по каждой номенклатуре без учета по сериям, т.е. просто последний приход.
Это часть большей задачей, но с остальным проблем в понимании нет:)
114 jcage
 
06.10.09
19:17
ВЫБРАТЬ
   СПЦСрезПоследних.Номенклатура,
   СПЦСрезПоследних.Характеристика,
   СПЦСрезПоследних.Серия,
   СПЦСрезПоследних.Период,
   СПЦСрезПоследних.СПЦ,
   СПЦСрезПоследних.ЦенаПрихода
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
   РегистрСведений.СПЦ.СрезПоследних КАК СПЦСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВременнаяТаблица.Номенклатура,
   ВременнаяТаблица.Характеристика,
   ВременнаяТаблица.Период,
   ВременнаяТаблица.СПЦ,
   ВременнаяТаблица.ЦенаПрихода
ИЗ
   ВременнаяТаблица КАК ВременнаяТаблица
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
          (ВЫБРАТЬ
       Номенклатура, Характеристика, Максимум(Серия), Максимум(Период)
           ИЗ
               ВременнаяТаблица КАК Таблица
       СГРУППИРОВАТЬ ПО Номенклатура, Характеристика
           ) КАК Фильтр
ПО Фильтр.Номенклатура = ВременнаяТаблица.Номенклатура
И Фильтр.Характеристика = ВременнаяТаблица.Характеристика
и Фильтр.Серия = ВременнаяТаблица.Серия
и Фильтр.Период = ВременнаяТаблица.Период

УПОРЯДОЧИТЬ ПО
   Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
115 sashafish
 
06.10.09
22:15
Спасибо,jcage. Буду копать:) Твой запрос работает у меня полторы секунды.
Грамотные запросы решают:)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.