Имя: Пароль:
1C
1С v8
Как в запросе (динамический список) извлечь квадратный корень?
, ,
0 Alexion124
 
25.12.13
21:55
Нашел решение http://infostart.ru/public/204916/ , но проблема в том что динамические списки не поддерживают пакетные запросы, подскажите как можно выкрутиться? выгрузка в таблицу значений не подходит(в контексте решаемой мной задачи).
1 Лефмихалыч
 
25.12.13
21:58
нуно перестать этого хотеть
2 Лефмихалыч
 
25.12.13
22:00
программизды, млин, динамический список - это не волшебная палка, он стоит ресурсов сервера, не надо везде его тулить, где можно и нельзя и выводить им все подряд, включая бессмысленное и беспощадное. Динамический список - это НЕ отчет
3 dj_serega
 
25.12.13
22:12
(0) Поддерживаю (2) ДС только для вывода данных, которые часто обновляются. Не более.

А это точно нужно делать?
4 dj_serega
 
25.12.13
22:12
(3) имею ввиду через ДС.
5 Ranger_83
 
25.12.13
22:13
(2) А если за это хорошо платят?
6 МихаилМ
 
25.12.13
22:14
Разложите в ряд Тейлора
7 dj_serega
 
25.12.13
22:14
(5) Ломать могз за почти нереализуемое?
8 Ranger_83
 
25.12.13
22:15
(6) Ты это счас с кем только что разговаривал?
9 Alexion124
 
25.12.13
22:15
(2) (3) Вы как считаете тут http://s2.ipicture.ru/uploads/20131225/Mbqb6Rq2.png не часто обновляемые данные??
10 raykom
 
25.12.13
22:16
Не вникая в нюансы эффективности, а отвечая на вопрос -
Вызови функцию в которой вычисли.

Вто пример из семерки

//
Функция КвaдpaтныйКopeнь(Apгумeнт)
     // Oгpaничимcя oблacтью oпpeдeлeния функции
     Если Apгумeнт<0 Тогда
          // cooбщeниe oб oшибкe
          Сообщить("...","!");
          Возврат ПолучитьПустоеЗначение();
          // Oтceчeм нoль
     ИначеЕсли Apгумeнт=0 Тогда
          Возврат 0;
     КонецЕсли;
     // Bыбepeм пepвoe пpиближeниe
     ПpeдыдущaяИтepaция = Apгумeнт/2;
     Для Cч=1 По КoличecтвoИтepaций Цикл
          Значeниe = 0.5*(ПpeдыдущaяИтepaция+
          Apгумeнт/ПpeдыдущaяИтepaция);
          Если Значeниe<ПpeдыдущaяИтepaция Тогда
               Paзницa = ПpeдыдущaяИтepaция-Значeниe;
          Иначе
               Paзницa = Значeниe-ПpeдыдущaяИтepaция;
          КонецЕсли;
          Если Paзницa<ДocтaтoчнaяToчнocть Тогда
               Прервать;
          КонецЕсли;
          ПpeдыдущaяИтepaция=Значeниe;
     КонецЦикла;
     Значeниe = Окр(Значeниe,Макс(КoличecтвoЗнaкoв-Лог10(Значeниe),0));
     Возврат Значeниe;
КонецФункции            // кoнeц функции КвaдpaтныйКopeнь
//******************************************************************

Где зворовал уже не помню
11 Alexion124
 
25.12.13
22:18
(10) клево, знаю, но к динамическим спискам не имеет отношения
12 1Сергей
 
25.12.13
22:20
(10) а что не к шестерке?
13 0xFFFFFF
 
25.12.13
22:21
(10) гы.. в восьмерке вообще то степенная функция появилась. Поэтому давайте без извращений.
14 raykom
 
25.12.13
22:21
))

Ну так  и ответь те парню, че вы тут титю мнете ))

З новим годом
15 Лефмихалыч
 
25.12.13
22:24
(9) с таким же успехом мог скрин дырки от задницы выложить и сказать, что это аргумент
16 Alexion124
 
25.12.13
22:28
(15) Не можешь помочь, не разводи флуд. Умник.
17 hhhh
 
25.12.13
23:18
(16) заканчивайте уже бухать. Решение же элементарное.

Заводите регистр сведений: измерение Аргумент, ресурс Корень.

Заполняете обработкой, ну миллион значений вам хватит за глаза, и в динамическом списке пишете ЛЕВОЕ СОЕДИНЕНИЕ с этим регистром
18 Лефмихалыч
 
25.12.13
23:20
это была лучшая шутка за всю неделю
19 dj_serega
 
25.12.13
23:21
(18) и в точку.

а (17) подходит?
20 nbIx
 
25.12.13
23:24
Что за задача? Зачем нужен квадратный корень??
21 vvp117
 
25.12.13
23:33
А, глядя на картинку в (9), есть сомнения и о необходимости динамического списка
22 Alexion124
 
26.12.13
00:04
(20) расчитываю в запросе среднеквадратичное отклонение недельного потребления.
(19) не подходит т.к. динамически считается, регламентными запускать вычисления не хочу, да и не нужны они.

короч кому интересно - сделал через ТЗ в итоге, обычным пакетным запросом.
23 Reaper_1c
 
26.12.13
00:23
Ну и какого художника статистика выводится в динамическом списке? Статистика имеет смысл только на статичных, сука, данных. На свершившемся, сука, факте! И не может недельное потребление крутить тазобедренным суставом как первокурсница на барной стойке. Специально для этого в компоновку данных добавлены статистические функции, в том числе и то самое отклонение. Чего вам еще надо? Это ж надо додуматься - давить F5 в надежде, что отклонение изменится...
24 Лефмихалыч
 
26.12.13
00:27
(23) а это плавно подводит нас к (2)
25 GANR
 
26.12.13
01:04
(0) Не надо делать на платформе 1С то, для она явно не предназначена. Если уж такая надобность вообще появилась - очень даже пора задуматься о перепроектировании конфигурации в целом.
26 WildSery
 
26.12.13
11:18
(3) То есть для вывода больших списков ДС определённо не подходит, да?
27 dj_serega
 
26.12.13
12:41
(26) Как раз для больших списков и подходит.
Но если в запросе  наложить левое соединение и установить динамическое считывание данных будет тупить отображение.
28 WildSery
 
26.12.13
12:49
(27) В (3) вы утверждали, что только для часто обновляемых данных.
О левом соединении вы опять-таки какой-то частный случай описываете, поскольку во многих ситуациях тупить отображение будет при нединамическом считывании.
29 Alexion124
 
26.12.13
12:52
(23) обновление там не ради того чтобы увидеть отклонение. а вот смена статусов и фильтрация списка происходит достаточно часто, собственно ради это и был в основу взят динамический список.
(25) да шо вы говорите?? ради одной обработки УТ предлагаете переписать? Можно вообще ничего не делать. Сторожем в зоопарк например устроится.
(26) ага)), лучше подождать на пару сек дольше пока ТЗ загрузит 30k записей... а с отборами и фильтрами вообще мечта бездельника))
30 ptiz
 
26.12.13
12:53
А потом будут жаловаться, что "1С тормозит!".
31 MSII
 
26.12.13
13:10
(29) И что должен немедленно сделать оператор, наблюдающий за вашим списком, при смене статуса? Подпрыгнуть и три раза обежать вокруг комнаты?
Если требуется немедленная реакция на событие в системе, это реализуется при помощи оповещений и бизнес-процессов. А если немедленной реакции не требуется, то постоянная перерисовка списка - это вредительство, так как бессмысленно отжирает ресурсы.
32 Лефмихалыч
 
26.12.13
13:23
+1 к бизнес процессам
33 Alexion124
 
26.12.13
13:37
(31) перезагрузка ТЗ занимает намного больше времени и ресурсов, чем отборы в динамическом списке, а событие отбора вызывает сам оператор.
34 Alexion124
 
26.12.13
13:42
вот и ищи потом ответы в таких темах, развели тут.
Программист всегда исправляет последнюю ошибку.