|
Помогите, пожалуйста, с кодом для переключателей. | ☑ | ||
|---|---|---|---|---|
|
0
Niakris_ka
06.01.09
✎
14:18
|
В документе на форме есть два переключателя. Надо прописать модуль, чтобы при выборе одного из переключателей число в поле "А" делилось либо на число в поле "В" и ответ прописывался в "С", либо "А" делилось на поле "D" и ответ в "Е". Вот! Огромная просьба - помогите новичку!
|
|||
|
1
ТелепатБот
гуру
06.01.09
✎
14:18
|
||||
|
3
Niakris_ka
06.01.09
✎
14:21
|
(2) ???
|
|||
|
4
ДенисЧ
06.01.09
✎
14:22
|
В формулу переключателя функцию ПриВыбореПереключателя()
в модуле формы Функция ПриВыбореПереключателя() Если флПерекл = 1 Тогда //выбран первый С = А / Б; ИначеЕсли флПерекл = 2 Тогда //выбран второй Е = А / Д; КонецЕсли; КонецФункции |
|||
|
5
Niakris_ka
06.01.09
✎
14:37
|
(4) Попробовала, пишет для строк
Если флПерекл = 1 Тогда //выбран первый (и второй аналогично) что переменная не определена. Надо как то флажки определить, какой первый какой второй? |
|||
|
6
ДенисЧ
06.01.09
✎
14:38
|
(5) флажки выстраиваешь по порядку в диалоге порядка обхода. Первому из них даёшь идентификатор флПерекл и "Первый в группе"
|
|||
|
15
ДенисЧ
06.01.09
✎
14:57
|
(11)
Б = 1; С = А / Б; ИначеЕсли флПерекл = 2 Тогда //выбран второй Д = 1; Е = А / Д; На строку ты не разделишь... |
|||
|
16
Niakris_ka
06.01.09
✎
14:58
|
(13) (15) У меня у всех полей числовой тип
|
|||
|
17
ДенисЧ
06.01.09
✎
14:59
|
С = А / ?(Б=0,1,Б);
Е = А / ?(Д=0,1,б); |
|||
|
18
Niakris_ka
06.01.09
✎
15:08
|
(17) Так даже лучше, спасибо. А для второго переключателя точно не надо идентификатора? Что он у меня все равно не делит ((
Автоматом значение "А" прописывает в "С" и "Е", но вводимые в "Б" и "Д" значения он не делит :( |
|||
|
19
ДенисЧ
06.01.09
✎
15:10
|
(18) Отладчиком посмотри, что происходит.
|
|||
|
20
Niakris_ka
06.01.09
✎
15:16
|
(19) Хнык ( Я не умею им пользоваться. Так вроде синтаксических ошбок не видит
|
|||
|
21
ДенисЧ
06.01.09
✎
15:19
|
(20) Встаешь в своём коде на первый Если, нажимаешь Действия - Открыть в отладжчике, там не сходя с места - отладка - установить точку прерывания, в предприятии запускаешь выполнение (выбираешь переключатель) - отладчик должен актифизироваться на нужной строке. Там уже смотри значение переменных (Shift-F9) и пошагово смотри, куда пойдёт выполнение (F10)
|
|||
|
22
Niakris_ka
06.01.09
✎
15:25
|
Ну пошагово сделала все, что написали, про первую "если" пишет "ошибка в выражении", а вторую вообще пропускает.
Может все таки во втором переключателе тоже идентификатор нужен? |
|||
|
23
ДенисЧ
06.01.09
✎
15:25
|
(22) Не нужен. Чему равен сам флПерекл?
|
|||
|
24
Niakris_ka
06.01.09
✎
15:26
|
(23) В смысле чему?
|
|||
|
25
Дядя Васька
06.01.09
✎
15:32
|
(24) В смысле Shift-F9
|
|||
|
26
Дядя Васька
06.01.09
✎
15:34
|
+(25) И код покажь, последнюю версию, а то безпредметный разговор..
|
|||
|
27
Niakris_ka
06.01.09
✎
15:43
|
(23) флПерекл = 2
|
|||
|
28
Niakris_ka
06.01.09
✎
15:45
|
Последняя версия кода:
Функция ПриВыбореПереключателя() Если флПерекл = 1 Тогда //выбран первый С= А/ ?(Б=0,1,Б); ИначеЕсли флПерекл = 2 Тогда //выбран второй Е= А / ? (Д=0,1,Д); КонецЕсли; КонецФункции |
|||
|
29
Дядя Васька
06.01.09
✎
15:52
|
(28) В "Е= А / ? (Д=0,1,Д);" после вопроса пробел убери
|
|||
|
30
Злопчинский
06.01.09
✎
15:54
|
елена, вы различаете переменные с типом "строка" и с типом "число"...? или вам - по барабану?
|
|||
|
31
Злопчинский
06.01.09
✎
15:54
|
елена, вы различаете переменные с типом "строка" и с типом "число"...? или вам - по барабану?
Что значит "считать не хочет"? раскройте тайну поподробнее |
|||
|
32
Niakris_ka
06.01.09
✎
15:56
|
(29) Убрала,все равно не считает.
(30) Различаю, все числовые у меня |
|||
|
33
Niakris_ka
06.01.09
✎
15:57
|
(31) В самом начале описано, что должно считаться
|
|||
|
34
Niakris_ka
06.01.09
✎
15:57
|
+ (33)
при выборе одного из переключателей число в поле "А" делилось либо на число в поле "В" и ответ прописывался в "С", либо "А" делилось на поле "D" и ответ в "Е" |
|||
|
35
Дядя Васька
06.01.09
✎
15:59
|
(32) Значит где-то пустое значение затесалось. Это не то же самое что ноль. Задай начальные значения всем переменным.
|
|||
|
36
Niakris_ka
06.01.09
✎
16:05
|
В общем потестила, в принципе он считает. Только так: в поле А вводится число, выбирается один из переключателей и если водить данные в остальные поля, то ответ не считается. Надо переключатели "пощелкать", тогда только. ((
Это можно исправить? |
|||
|
37
Злопчинский
06.01.09
✎
16:03
|
(12) эксель - не зависает, он думает...
решений несколько, выбирай на вкус - патч от Ромикса: один из вариантов можно взять здесь: http://www.infostart.ru/projects/323/ - проект Йоксель: http://infostart.ru/projects/1753 // на мой взгляд - через Йоксель - гламурнее! |
|||
|
38
Дядя Васька
06.01.09
✎
16:09
|
(36) В ПриОткрытии() флПереключатель=1; Там-то у тебя пустое значение и сидит.
|
|||
|
39
Niakris_ka
06.01.09
✎
16:14
|
(38) А поподробнее? Что с ним сделать?
|
|||
|
40
Злопчинский
06.01.09
✎
16:15
|
39) да ничего! когда ворма открывается - в каком положении переключатель должен быть?
|
|||
|
41
Niakris_ka
06.01.09
✎
16:19
|
(40) он не активирован, то есть ни каком положении его нет
|
|||
|
42
Злопчинский
06.01.09
✎
16:31
|
(41) ну так в (38) и написано - при открытии активизировать переключатель "умолчальным" значением.
..настоятельно рекомендуется почитать что-либо по основам программирования вообще (а не по 1С) |
|||
|
43
Niakris_ka
06.01.09
✎
16:40
|
(42) активировала первый переключатель при открытии. Он все равно считает только если переключатели пощелкать. А ихмо это сильно неудобно
|
|||
|
44
Гефест
06.01.09
✎
16:55
|
(43)Так ты напиши ПриОткрытии чтобы не только активировался переключатель, но и считалось
|
|||
|
45
Злопчинский
06.01.09
✎
16:59
|
(43) программа, блин, не телепат! у тебя задано выполнениепроцедуры ПРИ РУЧНОМ ЩЕЛКАНИИ ЮЗЕРОМ! поэтому как в (43) написано сделай:
Процедура ПриОткрытии() флПереключатель=1; МояПроцедураПриИзмененииПереключателя(); //читать каждый день ЖКК |
|||
|
46
Niakris_ka
11.01.09
✎
00:50
|
(45) А надо всю функцию туда писать? Или только название?
|
|||
|
47
lals2
11.01.09
✎
02:42
|
Станислав Митичкин (основатель этого форума) написал замечательный самоучитель скачай его и там очень даже хорошо прописано.
http://mista.ru/tutor_1c Скачай или смотри прямо на сайте |
|||
|
48
lals2
12.01.09
✎
01:23
|
А вообщето процедурку запускать надо после ввода цифирок в А, Б, С И так далее
и вней проверять состояние переключателя и проводить вычисления, если я правильно понял автора в (36), а у нее она запускается только после переключения (пощелкать) |
|||
|
49
Aswed
12.01.09
✎
02:43
|
(47), (48) А Ето как??????
(47) в 2.42 а (48) в 1.23:)))))))))))))))))))))))) |
|||
|
50
lals2
12.01.09
✎
21:39
|
(49) Ну там еще дата есть, конечно просто 11-го небыло охота разбираться а 12-го заглянул и понял что суть вопроса немножко не та на которую отвечают.
а вообще то прикольно? да? а по сути вопроса вот такой код должен быть- Перем Стр; //*************************************** Процедура ПриОткрытии() флПерекл = 1; // устанавливаем зараннее флаг в первую позицию КонецПроцедуры //**************************************** Процедура Обр() Если флПерекл = 1 Тогда //выбран первый Если Б <> 0 Тогда //проверяем чтобы не было ошибки деления на ноль С = А / Б; Е = 0 ; Стр = ""; иначе Стр = " Ничего не делаю Б = 0"; КонецЕсли; ИначеЕсли флПерекл = 2 Тогда //выбран второй Если Д <> 0 Тогда Е = А / Д; С = 0; Стр = ""; иначе Стр = " Ничего не делаю Д = 0"; КонецЕсли; КонецЕсли; КонецПроцедуры //************************* Функция ПриВыбореПереключателя() Обр(); КонецФункции процедура Обр() запускается после введения любого из чисел А,Б,Д или изменения статуса переключателя |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |