|
Помогите создать быструю функцию выборки из таблицы | ☑ | ||
---|---|---|---|---|
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_о
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |