Имя: Пароль:
1C
1C 7.7
v7: Как в черном запросе пройтись по проводкам?
0 Shved_72
 
16.11.12
09:03
ТекстЗапроса =
   "//{{ЗАПРОС(трахтибидох)
   |Период с НачДата по КонДата;
   |Счет = Операция.Счет;
   |КорСчет = Операция.КорСчет;
   |ДебСчет = Операция.Дебет.Счет;
   |КредСчет = Операция.Кредит.Счет;
   |Сумма = Операция.Сумма;
   |ТекДокумент = Операция.ТекущийДокумент;    
   |Функция ДО_ = ДО(Сумма);
   |Функция КО_ = КО(Сумма);
   |Группировка ТекДокумент;
   |Группировка ДебСчет без групп;
   |Группировка КредСчет без групп;
   |Условие(Счет в Сч);
   |"//}}ЗАПРОС
   ;
1 zak555
 
16.11.12
09:05
1. где тут чёрный запрос ?
2. используй бухЗапрос
2 dedmoroz777
 
16.11.12
09:05
Переписать на нормальный бухзапрос
3 Shved_72
 
16.11.12
09:05
никак не могу выйти на группировку Операция.НомерПроводки. как обойти? надо именно по проводкам! какую группировку присунуть?
4 пипец
 
16.11.12
09:05
Оо
ЗЫ о ,  месье знает толк в извращениях
5 Shved_72
 
16.11.12
09:06
(1) черный назывался в детстве запрос по бух
БухИтоги не канают, т.к. есть куча условие по реквизитам субконто
6 Shved_72
 
16.11.12
09:07
это работает в разы быстрей чем БИ
7 zak555
 
16.11.12
09:07
> куча условие по реквизитам субконто

пример приведи
8 zak555
 
16.11.12
09:08
(6) ты сначала покажи свой запрос на бухЗапросе -- потом посомтри, что быстрее
9 Shved_72
 
16.11.12
09:12
есть субконто Договоры.
у договоров есть Договор.НачДата, Договор.КонДата, Договор.ДосрочнаяДата, Договор.Агент, Договор.Брокер,...
в черном запросе это все хорошо описывается уловиями.
в БИ тока перебором и сравнением...
10 Shved_72
 
16.11.12
09:14
черный запрос сразу выдаст 10 договор действующих на седня, по выбранному агенту и брокеру, а в БИ надо перебирать 45644 штук
11 Popkorm
 
16.11.12
09:18
(0) ПолучитьДвижение тебе в помощь
12 Shved_72
 
16.11.12
09:20
(11) у меня не регистра а Бух
ПолучитьДвижение - Выбрать очередное движение регистра.
или это на бух тоже работает,
но в любом случае это метод и группировкой ему не быть
13 welwel
 
16.11.12
09:22
(10) список значений с нужными договорами можно отобрать черным запросом, а по ним уже бухзапрос
14 Shved_72
 
16.11.12
09:27
(13) ну этоже два запроса... хочеться за раз кончить
15 ЧашкаЧая
 
16.11.12
09:29
(14) Хочется быстро и одним запросом? Используйте прямые запросы.
16 Shved_72
 
16.11.12
09:32
(15) это как? я думал прямые это черные
17 Popkorm
 
16.11.12
09:37
(16)вот черные:
Функция СписокДоговор(ТекДокумент)

Если ТекДокумент.Договор = "НужныйДоговор" Тогда
Возврат 1;
КонецЕсли4
Возврат 0;

КонецФункции

|Функция ДО_ = ДО(Сумма) когда(СписокДоговор(ТекДокумент)=1);
18 Shved_72
 
16.11.12
09:39
(17) это понятно. как по сабжу? как сделать группировку по строкам проводок операции?
19 Shved_72
 
16.11.12
09:41
почему то проводка не такая же сущность как документ, операция, почему на нее нельзя явно спозиционироваться типа Операция.Проводка
20 zak555
 
16.11.12
09:42
(9) делаешь запрос к справочнику договоры со своими условиями -- выгржаешь в СЗ
далее

использоватьСубконто(видыДоговоры, СЗ, 2)
21 ЧеловекДуши
 
16.11.12
09:43
(19)Пиши через Бух запрос :)
22 пипец
 
16.11.12
09:45
(19) НомерСтрокиДокумента()
23 Shved_72
 
16.11.12
09:46
пока не убедили. помозолю еще руки в черном запросе чтоб за раз
24 zak555
 
16.11.12
09:46
(23) сделай как я предлагю
25 Shved_72
 
16.11.12
09:47
(22) в запросе не канает
26 пипец
 
16.11.12
09:47
КоличествоПроводок()
ПолучитьПроводкуПоНомеру(<?>,)
(25) после запроса теже сказали уже
27 Popkorm
 
16.11.12
09:48
(19)почему на нее нельзя явно спозиционироваться типа Операция.Проводка


то есть получить просто проводку по Буху?!
28 пипец
 
16.11.12
09:48
(24) он считает БИ - апокрифом ;))
29 Shved_72
 
16.11.12
09:48
(24) ну ведь так ДВА запроса, вместо одного, а и первый по справочнику будет страшно долгим, в справочнике 5646546654645 договоров, а надо 10 из них
30 zak555
 
16.11.12
09:49
(29) запрос по справочнику быстро отработает, т.к. это одна талица
31 zak555
 
16.11.12
09:49
+ бухЗапрос тоже, т.к. максимальные условия переданы
32 Shved_72
 
16.11.12
09:52
(26) обход после запроса уже не будет по проводкам, т.к. их нет в результатах запроса, они там СВЕРНУТЫ по д/к счетам
33 Shved_72
 
16.11.12
09:53
(30, 31) но если по привычному не кончу, то буду по вашему
34 zak555
 
16.11.12
09:53
(32) ещё раз

огласи задачу
35 Джордж1
 
16.11.12
09:56
Сделать бухзапрос с детализацией до проводки не вариант?
36 ЧашкаЧая
 
16.11.12
09:56
(16) Вряд ли это сейчас вам поможет, т. к. предполагаю что нужно будет время чтобы в это въехать. 1с запросы - это курсор по базе, они априори быстрыми не могут быть. Под прямыми обычно подразумевают запросы к СУБД минуя 1С посредством ВК, например 1С++. На форуме  http://www.1cpp.ru/forum/YaBB.pl?board=query есть FAQ, кое какие статьи. Добрыми людьми даже класс готовый написан http://www.1cpp.ru/forum/YaBB.pl?num=1285352210 который позволяет на 7.7 писать запросы почти 1 в 1 с восьмерочными. Быстродействие запросов вырастает на порядок, а то и несколько.
37 Shved_72
 
16.11.12
09:59
(36) спасибо. почитаю
38 Shved_72
 
16.11.12
10:01
(34) был отчет с черным запросом. работал ок 200 лет, пока не появилась бух.справка в которой с одинаковой корреспонденцией есть разные по суммам и по аналитике проводки, и теперь ДО и КО в запросе перестало правильно считать
39 zak555
 
16.11.12
10:04
(38) ты отчёт сам покажи
какие там выходные данные
40 Shved_72
 
16.11.12
10:06
отчет большой, этот запрос заполняет 2 колонки из 48. запрос тупо сразу выгружается в ТЗ, и потом из нее вставляется в итоговую
41 Сияющий Асинхраль
 
16.11.12
10:06
Раньше сравнивал скорость работы бух запросов и черных от 1с, оказалось, что бух запросы с кучей условий в переборе все равно работают быстрее. Пример лежит в личке - ссылка на мою страничку, там на скачку осв с возможностью использования черных запросов для получения оборотов между субконто и кор субконто. То же но бух запросом с полной выборкой и сравнением в переборе работает сильно быстрее
42 zak555
 
16.11.12
10:07
(40) макет показать слабо ?
43 Shved_72
 
16.11.12
10:11
(41) может если из 100 выбирается 99. то да. а если из 100 надо 10 по куче условий. то черный быстрей
44 Shved_72
 
16.11.12
10:12
(42) что даст макет? ссуть выяснили: проводки выгрузить запросом нельзя, остается либо два запроса, либо 1с++
45 Сияющий Асинхраль
 
16.11.12
10:15
(43) печально, но даже в этом случае бух запросы быстрее. Не веришь - скачай, проверь
46 zak555
 
16.11.12
10:16
(44) суть в том, что я не знаю какие выходные данные => не могу предложить вариант
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший