|   |   | 
| 
 | Помогите создать быструю функцию выборки из таблицы | ☑ | ||
|---|---|---|---|---|
| 0
    
        Маленький Вопросик 18.03.15✎ 17:54 | 
        1. Есть таблица общих продаж:
 Номенклатура, магазин, количество, сумма Подскажите функцию, чтобы возвращала количество различных магазинов, в которых существовала продажа вводной номенклатуры | |||
| 1
    
        DexterMorgan 18.03.15✎ 17:57 | 
        передать тз в запрос     | |||
| 2
    
        DexterMorgan 18.03.15✎ 17:59 | 
        Выбрать Количество(Различные ТЗ.Магазин) Из ТЗ КАК ТЗ 
 ГДЕ ТЗ.Номенклатура = &Номенклатура И ТЗ.Количество > 0 | |||
| 3
    
        Маленький Вопросик 18.03.15✎ 17:59 | 
        (1) это понятно     | |||
| 4
    
        DexterMorgan 18.03.15✎ 17:59 | 
        чета такое походу     | |||
| 5
    
        DexterMorgan 18.03.15✎ 18:00 | 
        А ну ТЗ тоже параметр     | |||
| 6
    
        Маленький Вопросик 18.03.15✎ 18:01 | 
        Надо что-то поумнее     | |||
| 7
    
        DexterMorgan 18.03.15✎ 18:01 | 
        (6) типа не передавать тз в запрос? или запрос поумнее?     | |||
| 8
    
        Маленький Вопросик 18.03.15✎ 18:02 | 
        У меня тз на форме, в ней 1млн 800 тыс строк     | |||
| 9
    
        hhhh 18.03.15✎ 18:03 | 
        (8) а откуда взялась ТЗ на форме? наверно перед этим быдлозапрос был?     | |||
| 10
    
        DexterMorgan 18.03.15✎ 18:04 | 
        (8) ну перебирай на клиенте строки циклом     | |||
| 11
    
        Drac0 18.03.15✎ 18:07 | 
        (8) Делай НайтиСтроки а потом обходи. У ТЗ, вроде, есть индексы по колонкам - будет быстро работать.     | |||
| 12
    
        Маленький Вопросик 18.03.15✎ 18:07 | 
        (9) оттуда, что это табличная часть     | |||
| 13
    
        DexterMorgan 18.03.15✎ 18:08 | 
        (11) сомнительно, что будет быстрее чем один раз циклом обойти. НайтиСтроки - по сути тоже циклом отбирает. Хотя хз спорить не буду)     | |||
| 14
    
        Маленький Вопросик 18.03.15✎ 18:10 | 
        Надо чето замутить - количество магазинов, 10 - максимальное значение
 Может при обходе добавлять в массив количества магазинов по каждой номенклатуре .... При достижении 10 - прерывать | |||
| 15
    
        Torquader 18.03.15✎ 18:12 | 
        Вообще-то, индексированная таблица должна помочь, так как передача ТЗ в запрос - не сильно спасёт ситуацию - полное просто сканирование ТЗ будет делать SQL-сервер.     | |||
| 16
    
        WebberNSK 18.03.15✎ 18:15 | 
        (0) ПостроительОтчета ?     | |||
| 17
    
        Маленький Вопросик 18.03.15✎ 18:16 | 
        (16) какой построитель - тут смысл такой - ввел "пирожок" получил 4
 Ввел булочку получил 7 | |||
| 18
    
        Drac0 18.03.15✎ 18:17 | 
        (12) ммм, ТЧ записанного объекта?     | |||
| 19
    
        palpetrovich 18.03.15✎ 18:20 | 
        (8) "1млн 800 тыс строк" - внушаитЪ :)   интересно, что там?     | |||
| 20
    
        mikecool 18.03.15✎ 18:22 | 
        второй Маня     | |||
| 21
    
        Маленький Вопросик 18.03.15✎ 18:35 | 
        (19) там (0)     | |||
| 22
    
        mistеr 18.03.15✎ 18:39 | 
        (8) Так в базе есть этот миллион строк или нет?     | |||
| 23
    
        Маленький Вопросик 18.03.15✎ 18:40 | 
        (22) есть и гораздо больше     | |||
| 24
    
        mistеr 18.03.15✎ 18:45 | 
        (23) Ну так за чем дело стало? Запросом типа (2) и вытаскивай.     | |||
| 25
    
        Рэйв 18.03.15✎ 18:49 | ||||
| 26
    
        Рэйв 18.03.15✎ 18:49 | 
        простите.Не удержался:-)     | |||
| 27
    
        Маленький Вопросик 18.03.15✎ 18:50 | 
        Вообще какими методами можно еще определить в скольки магазинах продавался определенный товаррр?     | |||
| 28
    
        Провинциальный 1сник 18.03.15✎ 18:51 | 
        Запросом? То есть, пихать все два миллиона строк на sql-сервер во времянку - это норма? Вряд ли. Особенно если sql и сервер 1с на разных компьютерах. Лучше уж просто на сервере создать индекс в таблице значений и искать по нему.     | |||
| 29
    
        WebberNSK 18.03.15✎ 18:52 | 
        (17) будешь в запрос пихать - будет тормозить, а у построителя есть источник получения таблица     | |||
| 30
    
        Маленький Вопросик 18.03.15✎ 18:57 | 
        Вообщем вот так надо сделать из регистра продаж отобрать различные "магазины" - делать запрос по регистру, а не по таблице и засовывыть результат в другую таблицу...     | |||
| 31
    
        mistеr 18.03.15✎ 19:03 | 
        (27) Еще можно распечатать весь регистр на многометровую простыню и затем по ней считать на счетах.     | |||
| 32
    
        mistеr 18.03.15✎ 19:04 | 
        (28) Во времянку не надо. Все есть в регистре.     | |||
| 33
    
        Фрэнки 18.03.15✎ 19:04 | 
        Когда регистр продаж есть, только так и нужно делать. Только одно непонятно, зачем эти все продажи было перетаскивать в тз клиента, если оно было на сервере     | |||
| 34
    
        Drac0 18.03.15✎ 19:13 | 
        (33) Чтобы сохранить в эксель, логично же :)     | |||
| 35
    
        mistеr 18.03.15✎ 19:15 | 
        (34) Или загрузить из Экселя :)     | |||
| 36
    
        Маленький Вопросик 18.03.15✎ 19:29 | 
        (33) для сложных обработок - выделения цветом определенных позиций по опредленным внешним файлам...     | |||
| 37
    
        DexterMorgan 18.03.15✎ 19:32 | 
        (36) ЛицоРука, пойду напьюсь     | |||
| 38
    
        Фрэнки 18.03.15✎ 19:32 | 
        (36) ну тогда "за что боролись, на то и напоролись"
 есть функция для ТЗ НайтиСтроки. В ней ставишь отбор. Будет работать быстро, т.к. ТЗ уже сидит в оперативе. | |||
| 39
    
        Drac0 18.03.15✎ 19:33 | 
        (36) и какому же эстету х*енову понадобилось раскрашивать польора ляиа строк? Не, тебя вообще посещала мысль, что ты делаешь что-то неправильное?     | |||
| 40
    
        Провинциальный 1сник 18.03.15✎ 19:37 | 
        (38) Главное индекс создать по полям отбора     | |||
| 41
    
        GreyK 18.03.15✎ 19:41 | 
        (38) + 100500
 (40) Ну давай рассказывай как создатюся индексы ТЗ в 1С. | |||
| 42
    
        Провинциальный 1сник 18.03.15✎ 19:52 | 
        (41) ТЗ.Индексы.Добавить(<список колонок через запятую>)     | |||
| 43
    
        mishgan75 18.03.15✎ 21:10 | 
        Проблема твой решается с помощью Построителя примерно так:
 ИД = Новый описаниеИсточникаДанных(ИД); ИД.Колонки.Магазины.Измерения = истина; Построитель = новый ПостроительОтчета; Построитель.ИсточникДанных=ИД; Построитель.ЗаполнитьНастройки(); Отбор = Построитель.Отбор.Добавить("Номенклатура"); Отбор.ВидСравнения = ВидыСравнения.ВСписке; СписокНоменклатуры=НовыйСписокЗначений(); СписокНоменклатуры.Добавить(Товар1); СписокНоменклатуры.Добавить(Товар2); отбор.Значение = СписокНоменклатуры; отбор.Использование = истина; Построитель.ВЫполнить(); выборкаПоМагазинам = Построитель.результат.выбрать(ОбъодРезультатаЗапроса.ПоГруппировкам); ВЫборкаПоМагазинам.Количество();//Возвращает количество Магазинов | |||
| 44
    
        Drac0 18.03.15✎ 22:30 | 
        (42) У него ТЧ. Т.е. там данные формы коллекция. Или ты предлагаешь выгрузить полтора ляма строк в ТЗ, а потом эти полтора ляма индексировать? :)     | |||
| 45
    
        PR 18.03.15✎ 22:35 | 
        Не дотянула ветка до пятницы, жаль. На целый день бы хватило.     | |||
| 46
    
        Garykom гуру 18.03.15✎ 22:36 | 
        (0) отсортируй по "номенклатура"
 далее через найти находится первая (нужная номенклатура), цикл далее по строчкам пока номенклатура еще та же, потом эти строчки (не забыть их выкинуть в отдельну тз) свернуть по магазин (кол-во магазинов проставить предварительно) | |||
| 47
    
        PR 18.03.15✎ 22:39 | 
        Пришел к выводу, что, думаю, если бы это было возможно, пользовалась бы определенным спросом возможность почитать фразы кандидатов на работу на профессиональных форумах.
 Многие бы отсеялись :)) | |||
| 48
    
        Garykom гуру 18.03.15✎ 22:45 | 
        (47) эта не свети...основной способ отсева кандидатов в HR     | |||
| 49
    
        hhhh 18.03.15✎ 22:51 | 
        (44) у тч тоже индексы есть.     | |||
| 50
    
        vde69 19.03.15✎ 00:02 | 
        >>>>У меня тз на форме, в ней 1млн 800 тыс строк
 банально не верю | |||
| 51
    
        Simod 19.03.15✎ 06:22 | 
        (0) Откуда берутся данные для заполнения ТЗ?
 (50) +1 | |||
| 52
    
        Фрэнки 19.03.15✎ 10:20 | 
        (50) Ну я как-то видел у клиента в форме для выбора записи около миллиона записей из регистра сведений. Но там отбор стоял. А когда отбор отключился нечаянно, то приложение с сообщением вылетело. Пришлось переделывать форму, чтоб она не умела отображать данные без установленного отбора.
 Это я к тому, что "дурное дело не хитрое" | |||
| 53
    
        Drac0 19.03.15✎ 12:12 | 
        (52) 0_о     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |