![]() |
![]() |
![]() |
|
Арифметическая прогрессия | ☑ | ||
---|---|---|---|---|
0
Tolya1223
13.02.14
✎
18:47
|
Доброго времени суток, столкнулся с проблемой.
Прошу совета и помощи у всех форумчаней. Вообщем, нужно сделать программу(в объекте Обработка) которая при вводе значений(в поля: A1, n, d) вычисляла арифметическую прогрессию и выводила в отдельную таблицу(n, An). Построить форму не проблема, но с кодом полная печаль, пробовал уже разные варианты и ничего не выходит...( Кто, что подскажет? |
|||
1
Wobland
13.02.14
✎
18:48
|
накорябай свою версию алгоритма на любом языке
|
|||
2
Tolya1223
13.02.14
✎
18:49
|
&НаКлиенте
Перем A1; &НаКлиенте Перем d; &НаКлиенте Перем n; &НаКлиенте Процедура АПриИзменении(Элемент) // Вставить содержимое обработчика. А1=Элемент; Сообщить("Эбать!"); КонецПроцедуры &НаКлиенте Процедура dПриИзменении(Элемент) d=Элемент; Сообщить("Эбать!"); КонецПроцедуры &НаКлиенте Процедура nПриИзменении(Элемент) n=Элемент; КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) i = Новый ОписаниеТипов("Число"); Сообщить("Эбать!"); МояТЗ = Новый ТаблицаЗначений; // создаем новую таблицу значений, хранящуюся в переменной "МояТЗ" МояТЗ.Колонки.Добавить("n"); // создаем колонку "Фамилия" МояТЗ.Колонки.Добавить("An"); Для i = 1 По n Цикл НоваяСтрока = МояТЗ.Добавить(); НоваяСтрока.n = i; НоваяСтрока.An = A1+(i-1)*d;; i=i+1; КонецЦикла; Сообщить(МояТЗ); КонецПроцедуры |
|||
3
Tolya1223
13.02.14
✎
18:50
|
(2)
извините за маты, просто уже не выдерживал проверяя отладчиком =D |
|||
4
Wobland
13.02.14
✎
18:50
|
Сообщить("Эбать!");
крававец, блин |
|||
5
Wobland
13.02.14
✎
18:51
|
i = Новый ОписаниеТипов("Число");
это типа int i? мне нравится |
|||
6
Tolya1223
13.02.14
✎
18:53
|
(5)
мне кажется ему можно вначале просто присвоить значение 0 и все, верно? |
|||
7
Wobland
13.02.14
✎
18:53
|
ПриИзменении идут лесом, схематично вроде нормально. покури РеквизитФормыВЗначение и наоборот
|
|||
8
Wobland
13.02.14
✎
18:53
|
(6) мне кажется, инициализация делается тут: Для i = 1 По n Цикл
|
|||
9
Wobland
13.02.14
✎
18:57
|
что-то типа
об=РеквизитФормыВЗначение("Объект"); заполняешь об.ТЗ ЗначениеВРеквизит(об) и усё |
|||
10
Tolya1223
13.02.14
✎
18:57
|
Получился такой код, но критует на "Новый ТаблицаЗначений", мол "Тип не определен"
&НаКлиенте Перем A1; &НаКлиенте Перем d; &НаКлиенте Перем n; &НаКлиенте Процедура Команда1(Команда) i = 0; МояТЗ = Новый ТаблицаЗначений; МояТЗ.Колонки.Добавить("n"); МояТЗ.Колонки.Добавить("An"); Для i = 1 По n Цикл НоваяСтрока = МояТЗ.Добавить(); НоваяСтрока.n = i; НоваяСтрока.An = A1+(i-1)*d;; i=i+1; КонецЦикла; Сообщить(МояТЗ); КонецПроцедуры |
|||
11
Wobland
13.02.14
✎
18:58
|
нужные тебе "переменные" - это реквизиты формы. на сервере добываешь их с клиента, производишь манипуляции, отдаёшь клиенту обратно
|
|||
12
Wobland
13.02.14
✎
18:59
|
и объявление переменных в началевыкинь к русалкам
|
|||
13
Tolya1223
13.02.14
✎
19:43
|
(12)
Покрутил код как ты и говорил, но что то туговато вот такая у меня форма http://pixs.ru/showimage/Bezimyanni_6288273_10862367.png вот код который типа получился, походу где то, что то провтыкал &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) А1=РеквизитФормыВЗначение("А1"); d=РеквизитФормыВЗначение("d"); n=РеквизитФормыВЗначение("n"); КонецПроцедуры &НаСервере Процедура Команда1(Команда) i = 0; Для i = 1 По n Цикл НоваяСтрока = Результат.Добавить(); НоваяСтрока.n = i; НоваяСтрока.An = А1+(i-1)*d; i=i+1; КонецЦикла; Сообщить(Результат); КонецПроцедуры |
|||
14
Wobland
13.02.14
✎
19:45
|
мда. тут намёки уже не помогут, похоже. терпи до утра или жди кого-то ещё
|
|||
15
Tolya1223
13.02.14
✎
20:02
|
(14)
Так лучше? &НаСервере Процедура Команда1(Команда) А1=РеквизитФормыВЗначение("А1"); d=РеквизитФормыВЗначение("d"); n=РеквизитФормыВЗначение("n"); i = 0; Для i = 1 По n Цикл N = i; Ан = А1+(i-1)*d; i=i+1; КонецЦикла; КонецПроцедуры |
|||
16
Wobland
13.02.14
✎
20:04
|
(15) &НаКлиенте. и тогда уже без РеквизитФормыВЗначение, пускай клиент всё считает ;)
|
|||
17
Tolya1223
13.02.14
✎
20:07
|
(16)
Так не выйдет, он выдает ошибку о том что переменная не определена =( |
|||
18
Tolya1223
13.02.14
✎
20:08
|
Просто не видит их...
|
|||
19
Tolya1223
13.02.14
✎
22:04
|
Можно ли, что бы сообщение "Сообщить" вылетело на клиенте?
&НаСервере Процедура Команда1(Команда) А1=РеквизитФормыВЗначение("А1"); d=РеквизитФормыВЗначение("d"); n=РеквизитФормыВЗначение("n"); i = 0; Для i = 1 По n Цикл An = А1+(i-1)*d; Сообщить(An); КонецЦикла; КонецПроцедуры |
|||
20
Принт
13.02.14
✎
22:09
|
(3) матофильтр тоже не выдержал
|
|||
21
Wobland
14.02.14
✎
06:00
|
(0) наслаждайся
Пакет доступен по ссылке: http://disk.tom.ru/rxgyfwy |
|||
22
Ислам
14.02.14
✎
06:26
|
(2) >> МояТЗ.Колонки.Добавить("n"); // создаем колонку "Фамилия"
Похоже тут ошибка. n - это не фамилия |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |