Имя: Пароль:
1C
 
Помогите создать быструю функцию выборки из таблицы
,
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_о
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший