|   |   | 
| 
 | Запрос по табличной части. Функция Максимум(Цена). Сбивает порядок строк ↓ (Волшебник 02.09.2022 08:37) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Eugeneer 02.09.22✎ 07:16 | 
        Короче в запрос передается ТЧ. Эта ТЧ во временной таблице запроса (там нельзя применять функции).
 Потом идет запрос в помещенной таблице и там применяется Максимум. В таблице есть дубли. Чтобы убрать дубли использую Максимум - чтобы в результате не было их. Все нормально работает. Но в результате все строки как попало ВООБЩЕ. А нужно чтобы сохранялось сортировка по номеру строки. Но если я номер строки использую в запросе - то максимум не сработает. Единственный вариант это еще использовать Максимум(НомерСтроки)... работает. но тогда запрос в 4 раза почему то сразу медленней. | |||
| 1
    
        Eugeneer 02.09.22✎ 07:17 | 
        А с сортировкой бред какой то совсем.
 Причем я не понимаю, потому что я передаю ТЧ - она нормальная. По порядку. | |||
| 2
    
        Eugeneer 02.09.22✎ 07:18 | 
        Короче как из ТЧ убрать дубли, но сохранить про этом порядок строк который там.     | |||
| 3
    
        Ryzeman 02.09.22✎ 07:29 | 
        ВЫБРАТЬ
 МИНИМУМ(ТабЧасть.НомерСтроки) КАК НомерСтроки, ТабЧасть.Номенклатура КАК Номенклатура ИЗ ТабЧасть КАК ТабЧасть СГРУППИРОВАТЬ ПО ТабЧасть.Номенклатура УПОРЯДОЧИТЬ ПО МИНИМУМ(ТабЧасть.НомерСтроки) ВОЗР P.S. не проснулся? Или знание SQL - ненужное?) | |||
| 4
    
        НафНаф 02.09.22✎ 07:30 | 
        >>там нельзя применять функции
 конкретнее можно? | |||
| 5
    
        AneJIbcuH 02.09.22✎ 07:31 | 
        (3) Так пишет же, что применил Максимум(НомерСтроки). Но производительность падает     | |||
| 6
    
        Eugeneer 02.09.22✎ 07:31 | 
        (3) я про то и пишу) но тогда запрос медленнее) ладно фиг с ним.э лишних пара секунд на 10к позиций.     | |||
| 7
    
        Ryzeman 02.09.22✎ 07:32 | 
        (6) Ты не про то пишешь. На кой чёрт ты максимум от номенклатуры берёшь, когда по ней надо группировать?     | |||
| 8
    
        Ryzeman 02.09.22✎ 07:33 | 
        (5) с 0.000000001 мс до 0.000000004?
 Если у него там по 100к строк, пусть индексирует и правильно по индексу выбирает... | |||
| 9
    
        Eugeneer 02.09.22✎ 07:34 | 
        тут еще больше вопрос
 | МАКСИМУМ(ВременнаяДанныеПоиска.Поле_ЦенаЗакупки) КАК ЦенаЗакупки, | МАКСИМУМ(ВременнаяДанныеПоиска.НомерСтроки) КАК НомерСтроки, тут еще больше вопрос к результату. Не получится ли что вернется цена максимум минимальной строки. (если вдруг цена больше оказалось у номера строки меньше). | |||
| 10
    
        Eugeneer 02.09.22✎ 07:35 | 
        (7) максимум по цене.     | |||
| 11
    
        НафНаф 02.09.22✎ 07:35 | 
        (9) а ты еще и SQL не знаешь, браво     | |||
| 12
    
        RomanYS 02.09.22✎ 07:36 | 
        (9) глупейший вопрос     | |||
| 13
    
        Eugeneer 02.09.22✎ 07:37 | 
        ))) я понял что вернется и максимум цены и максимум номера из дублей.
 А хотелось бы чтобы вернулся номер строки именно той где был максимум. Короче 1С видимо не может так. | |||
| 14
    
        Eugeneer 02.09.22✎ 07:37 | 
        либо придется делать несколько соединений.... но ради номера строки как то не комильфо.     | |||
| 15
    
        AneJIbcuH 02.09.22✎ 07:40 | 
        (14) Одно соединение     | |||
| 16
    
        Eugeneer 02.09.22✎ 07:42 | 
        ну что одно. номер строки не соответствует максимальной цене.     | |||
| 17
    
        Ryzeman 02.09.22✎ 07:44 | 
        (13) >>Короче 1С видимо не может так
 При чём тут 1с, если речь про запрос - читай чистая задачка на SQL... Сгруппируй по номеру строки и сделай внутреннее с номенклатурой. Это тривиальная задача | |||
| 18
    
        СеменовСемен 02.09.22✎ 07:45 | 
        Если тз по номенклатуре отсортирована, то в 1 проход без запросов это можно вычислить. Будет существенно быстрее | |||
| 19
    
        Eugeneer 02.09.22✎ 07:45 | 
        его только можно будет достать если еще раз соедить с ТЧ по группировке и Цена = Максимум(Цена)     | |||
| 20
    
        Ryzeman 02.09.22✎ 07:46 | 
        (17) Ерунду написал. Наоборот - сгруппируй по номенклатуре и привяжи номер. Останется только решить что делать когда у тебя в 100 строках одинаковая номенклатура и цена, какую брать     | |||
| 21
    
        Eugeneer 02.09.22✎ 07:49 | 
        1С не может выбирать поля которые не сгруппированы.
 на номер строки только функцию приходится накладывать. а это значит что по она покажет не реальную строку с МАКС ценой, а максимальную строку из нескольких дублей. | |||
| 22
    
        НафНаф 02.09.22✎ 07:50 | 
        (21) это SQL, а не 1С     | |||
| 23
    
        Eugeneer 02.09.22✎ 07:51 | 
        ну ок . ладно. понятно. будет работать как может     | |||
| 24
    
        RomanYS 02.09.22✎ 08:17 | 
        (23) всё решаемо. Подобные задачи регулярно здесь мелькают как тестовые. Вот например
 Получение последних контрагентов на каждый день продаж Кстати там кажется интересовались зачем такие задачи могут понадобиться) | |||
| 25
    
        Eugeneer 02.09.22✎ 08:20 | 
        (24) я знаю что решаемо. если еще добавить еще раз соединение с таблицей. А я этого не хочу.     | |||
| 26
    
        RomanYS 02.09.22✎ 08:22 | 
        (24) + Помогите с простым запросом     | |||
| 27
    
        Eugeneer 02.09.22✎ 08:22 | 
        там задача проще. поэтому можно соединений добавлять сколько влезет.
 у меня огромная таблица. если я ее буду много раз использовать. то это все замедление | |||
| 28
    
        RomanYS 02.09.22✎ 08:23 | 
        (25) странная постановка, тебе это или нужно или нет     | |||
| 29
    
        Eugeneer 02.09.22✎ 08:34 | 
        (28) забудь)))
 у меня не решаемая задача))) Я только что понял что она не решится вообще никак. )) Потому что у меня там 3 цены. разных колонок. И везде максимум используется. Это значит что среди одинаковых строк может быть максимум этих трех цен совершенно хаотично. Поэтому и номер строки вообще безсмыслен. Другое дело это сортировка. | |||
| 30
    
        Eugeneer 02.09.22✎ 08:36 | 
        разве что можно сделать красиво так это отсортировать по номенклатуре.
 а потом использовать МИНИМУМ(НомерСтроки) и МАКСИМУМ (номер строки). и в отчет вывести что то типа номера строки с какой по какую (мин-макс) | |||
| 31
    
        Гений 1С гуру 02.09.22✎ 08:37 | 
        (2) в ТЧ есть номер строки, диядя.     | |||
| 32
    
        Eugeneer 02.09.22✎ 08:38 | 
        Я не уверен что там больше двух дублей вообще будет. ъотя может быть. Вижу идеальням вариантом это и мин и макс задействовать.     | |||
| 33
    
        СеменовСемен 02.09.22✎ 08:42 | 
        у тебя есть таблица. прошелся по ней, пометил те строки которые с максимумом, выгрузил их в отдельную таблицу и ее уже в запрос для дальнейшей обработки     | |||
| 34
    
        Eugeneer 02.09.22✎ 08:45 | 
        Как всегда я гениально нахожу КРАСИВОЕ РЕШЕНИЕ.
 Мало того что убиваются дубли и я не просто вывожу таблицу бюез дублей. Теперь у меня в отчете видно - если не было дублей - то просто номер строки. А если были дубли - то я сделал вывод Мин-Макс диапазона в котором эхти дубли))) КРАСОТА. теперь юзер будет сразу видеть нормальные строки, и если не нормальные - то знать где они)) | |||
| 35
    
        НафНаф 02.09.22✎ 08:53 | 
        (34) как это решает твое "номер строки не соответствует максимальной цене"?     | |||
| 36
    
        forforumandspam 02.09.22✎ 08:57 | 
        Хоть бы раз текст запроса показал     | |||
| 37
    
        Eugeneer 02.09.22✎ 09:00 | 
        (35) как раз решает. мало того еще говорит юзеру диапазон строк с дублями     | |||
| 38
    
        Eugeneer 02.09.22✎ 09:02 | 
        мне больше нужна была даже сортировка (чтобы осталась таже). Потому что без номеров строк вообще бред выводился - вся номенклатура хаотично. при этом мне не нужна была сортировка по номенклатуре.     | |||
| 39
    
        НафНаф 02.09.22✎ 09:10 | 
        (37) ну да, для одного товара, Мин = 1, Макс = 10000, количество строк этого товара 4, а максимальная цена в 7423 строке )))     | |||
| 40
    
        Eugeneer 02.09.22✎ 09:12 | 
        (39) да пофиг. главное сам факт отобразить (подсветить).
 Ну и сортировка. | |||
| 41
    
        Eugeneer 02.09.22✎ 09:13 | 
        если чо там можно и Количество различные в запросе задействовать     | |||
| 42
    
        НафНаф 02.09.22✎ 09:17 | 
        (40) на лету меняешь условие, ага     | |||
| 43
    
        mikecool 02.09.22✎ 10:07 | 
        лавры Гения не дают спокойно спать Евгению 
 стих получился | |||
| 44
    
        Eugeneer 02.09.22✎ 10:15 | 
        (42) как раз на то и программист чтобы на лету находить лучшие решения     | |||
| 45
    
        НафНаф 02.09.22✎ 11:06 | 
        (44) опять подмена терминов "условия" и "решения"     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |