Имя: Пароль:
1C
1С v8
График по заданной математической функции у(х) в управляемом приложении
0 Reraru
 
14.01.20
19:01
Здравствуйте, друзья и все люди. Я хочу понять каким кодом, объектами и элементами можно задать график. График должен задаваться исходя из той  математической функции которую задаст пользователь. Например, пользователь задаст функцию y=х^2+1 и по заданной этой функции построиться график.
Также мне интересно через что лучше и как лучше это реализовывать: макет, поле html. В графике должны быть пределы по осям х и у. Если пользователь нашёл нужную точку но не видит конкретных значений то должно быть небольшое окошко которое подсказывает пользователю координаты по той или иной точке. Например, пользователь задал х=5, он видит в окошке что х=5 и полученный результат у=26
1 Krendel
 
14.01.20
19:02
Расчет мощности тяги от размера сопла делаешь?
2 Reraru
 
14.01.20
19:06
3 Garykom
 
гуру
14.01.20
19:06
(0)
http://1clenta.ru/pattern/162

Через HTML имхо не осилишь из 1С.
Функцию вводить в готовом виде для Вычислить(), делаешь цикл, в нем подставляешь вместо x значение и получаешь y.
Результаты засовываешь в диаграмму типа график.
4 Reraru
 
14.01.20
19:07
(1) график по математической функции, вначале хочу разобраться на самом простом
5 Reraru
 
14.01.20
19:09
(3) да, спасибо, я смотрел этот пример, но я его не понял. В нём просто приравняли у к х
6 Garykom
 
гуру
14.01.20
19:11
(5) Может тебе еще и готовое решение дать с кодом?
7 Reraru
 
14.01.20
19:15
(6) да, пожалуйста
8 ДенисЧ
 
14.01.20
19:19
(4) А зачем это делать на 1с?
9 Reraru
 
14.01.20
19:20
(8) развиваюсь по будующей профессии
10 ДенисЧ
 
14.01.20
19:25
(9) Ты лучше по русскамц языка поучись сначало. А графики рисовать в 1с - это не професия
11 NorthWind
 
14.01.20
19:30
(9) так чтоб развиваться, надо самому делать. Кстати, если точек планируется не сильно много, то может помочь обычная диаграмма... только правильную серию подобрать... тот же тичарт в дельфи позволял рисовать графики.
12 NorthWind
 
14.01.20
19:31
то что изображено в (2), с десятком точек - как раз диаграммой и нарисовано имхо в каком-нть экселе
13 Reraru
 
14.01.20
19:35
(12) это готовый код внешней обработки, который работает только в обычном приложении
14 Йохохо
 
14.01.20
19:37
(13) но это УФ, в обычном не было иконки гамбургер
15 Reraru
 
14.01.20
19:38
&НаСервере
Процедура ПостроитьГрафикНаСервере()
    
    Серия = Диаграмма.Серии.Добавить("АБВГД");    
        
    Для Значение = 1 По 10 Цикл
    
        Точка = Диаграмма.УстановитьТочку(Значение);
        Диаграмма.УстановитьЗначение(Точка, Серия, Значение);
            
    КонецЦикла;
    
КонецПроцедуры

И кто здесь поймёт заданную функцию?
Цикл в идеале использовать нужно для масштаба графика, например х от 0 до 10, а у от 0 до 20
16 Reraru
 
14.01.20
19:39
(14) http://www.professional-1c.ru/ news /otobrazhenie_grafikov_s_rasshirennymi_funkcionalnymi_vozmozhnostjami /2013-10-03-1
17 NorthWind
 
14.01.20
19:41
(15) что значит "кто поймет"? Рассчитайте и передайте значение, в чем проблема? Рассчитайте на клиенте и передайте массив точек или наоборот. На то голова и дадена.
18 Reraru
 
14.01.20
19:43
(17) я не понимаю и любой не прошаренный человек тоже
19 Reraru
 
14.01.20
19:44
(18) ещё загадочнее, пример дан на сервере. А делай шишь знаешь как на клиенте, да и ещё и с массивом
20 Reraru
 
14.01.20
19:49
Я так полагаю тут никто не знает как задать график через математическую функцию
21 NorthWind
 
14.01.20
19:54
(20) вас в поисковиках забанили? Сказали же - использовать диаграмму. Далее https://yandex.ru/search/?text=диаграмма%20на%20управляемой%20форме%201с%208.3&clid=2186620&lr=9&redircnt=1579020791.1 и видим кучу ссылок
22 Reraru
 
14.01.20
20:00
(17) (21) эта не та диаграмма
23 NorthWind
 
14.01.20
20:02
диаграмма одна и та же. Серии разные. Вам нужна будет серия, которая нарисует точки и график.
24 Reraru
 
14.01.20
20:03
(23) и как это лучше сделать? объясните мне пожалуйста
25 NorthWind
 
14.01.20
20:06
Почитайте статьи. Добавьте реквизит формы Диаграмма и поработайте с сериями как там рекомендуют. С учетом того что вам не нужно собирать данные из БД, возможно, удастся обойтись вычислениями только на клиенте.
26 Reraru
 
14.01.20
20:07
(25) как это происходит? как с сериями поработать? какие вычисления должны выйти?
27 Reraru
 
14.01.20
20:10
(21) я использую диаграмму с настройкой график
28 NorthWind
 
14.01.20
20:15
(26) когда вы добавляете точку на серию, у вас есть две координаты. Одна х, вторая значение вашей функции от х. В цикле считаете значение и добавляете. Работа с сериями описана в примерах и в синтакс-поиощнике. Можно для начала тупо подобавлять точки 1,1... 2,2... И посмотреть что будет получаться
29 Reraru
 
14.01.20
20:20
(28) Серия = Диаграмма.Серии.Добавить("АБВГД");    
точки? тут параметр для того чтобы назвать серию
30 Garykom
 
гуру
14.01.20
20:23
(29) Если вы впервые открыли конфигуратор то не уверен что сможете справиться с этой простейшей задачкой.
31 Reraru
 
14.01.20
20:47
Точка = Диаграмма.УстановитьТочку(Значение);
но здесь одно значение
32 NorthWind
 
14.01.20
21:18
(31) у вас еще есть ОсьТочек, которой вы можете задать минимальное и максимальное значение из выбранного вами диапазона, скажем, минимальное -10, максимальное 10. Далее добавляете точки в цикле от -10 до 10 с шагом 1, значение точки высчитываете по функции, и получаете график. По-моему, это сработает.
33 Reraru
 
14.01.20
21:59
я не понимаю вас без кода и скриншотов (32) (6)
34 NorthWind
 
14.01.20
22:19
код за вас вряд ли кто-то будет писать. Еще раз повторюсь - добавьте в серию несколько точек с произвольными значениями вроде 1,2,3. Без функции. И посмотрите какой график получится. Может, тогда дойдет.
35 H A D G E H O G s
 
14.01.20
22:51
(0) Держи.
https://yadi.sk/d/0spwQw4hrC7K4Q

Не это не поможет тебе писать код
36 H A D G E H O G s
 
14.01.20
22:51
Серия = Диаграмма.Серии.Добавить("АБВГД");    
        
    Для x = 1 По 10 Цикл
    
        Точка = Диаграмма.УстановитьТочку(x);
        y=pow(x,2)+1;
        Диаграмма.УстановитьЗначение(Точка, Серия, y);
            
    КонецЦикла
37 Reraru
 
15.01.20
09:31
(36) (34) спасибо вам, я быстрее орентируюсь на шаблоне.
38 Bigbro
 
15.01.20
09:37
(20) в институте не учился?
это не тривиальная задача на самом деле если не ограничиваться функциями вида y = k*x+c
области определения, значений функции, граничные значения, интервалы возрастания убывания гладкость разрывы, многозначность.
все это игнорируем?
39 NorthWind
 
15.01.20
09:43
(38) уровень специалиста такой, что в дебри лучше не лезть. Похоже, что тут просто разместить диаграмму на форме уже будет за счастье.
40 Reraru
 
15.01.20
18:31
(38) Не учился, но с радостью выслушаю и посмотрю как их возможно реализовать.
41 Irbis
 
15.01.20
18:49
(40) Y=Х^X как будешь реализовывать? Может в институт лучше, ну хотя бы на пару лет.
42 Михаил Козлов
 
15.01.20
18:53
(41) А в 1С y=pow(x,x) не сработает?
43 Irbis
 
15.01.20
19:00
(42) Неужели сделали? Мне когда-то разложение в ряд пришлось писать.
44 NorthWind
 
15.01.20
19:03
(43) любители Паскаля еще могут вспомнить, что была формула через логарифм. Правда, я не знаю как у 1С с логарифмами...
45 NorthWind
 
15.01.20
19:05
Впрочем, в восьмерке можно не мучаться. Глобальный контекст (Global context)
Pow (Pow)
Синтаксис:

Pow(<Основание>, <Показатель>)
Параметры:

<Основание> (обязательный)

Тип: Число.
Основание операции возведения в степень.
<Показатель> (обязательный)

Тип: Число.
Показатель степени.
Возвращаемое значение:

Тип: Число.
Результат возведения в степень.
Описание:

Возводит число <X> в степень <Y>.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
46 Irbis
 
15.01.20
19:06
(44) Ещё в клюшках были логарифмы, а вот возведения в дробную степень не было
47 NorthWind
 
15.01.20
19:12
(46) там помимо натурального логарифма еще экспонента нужна была. Дробная степень не проблема.
48 Провинциальный 1сник
 
15.01.20
19:18
(47) Экспоненту считать через ряд Маклорена. Долго, а что делать) Альтернативный вариант - таблицы Брадиса в памяти, с поиском и выдачей. Может быстрее будет)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс