Имя: Пароль:
1C
1C 7.7
v7: Инверсия флажков.
, ,
0 avcherkasov
 
09.12.16
09:53
Снова здрасте, уважаемые! Просветите, как сделать на форме, чтобы при установке одного флага, другой автоматом убирался и наоборот.
1 MiniMuk
 
09.12.16
09:54
флажок1 = не флажок2
2 Мимохожий Однако
 
09.12.16
09:54
Возьми переключатель
3 1dvd
 
09.12.16
09:56
(2) +1
Там танцы с порядком обхода
4 avcherkasov
 
09.12.16
09:56
(1) 1с 7.7
5 1dvd
 
09.12.16
09:58
(4)
Если флажок1 = 1 Тогда
    флажок2 = 0;
Иначе
    флажок2 = 1;
КонецЕсли;
6 avcherkasov
 
09.12.16
09:59
Пока так вымудрился, но это 2 клика, а хотелось бы в один:
Если флАвто = флАвтоТП Тогда
         флАвто = 0;
         флАвтоТП = 0;
     КонецЕсли;
7 ADirks
 
09.12.16
10:01
флажок2 = 1 - флажок1;
8 Масянька
 
09.12.16
10:01
(2) +100.
(3) Никаких там танцев нет.
(6) Переключатель - религия не позволяет?
9 avcherkasov
 
09.12.16
10:02
(5) Этот метод пробовал, он не работает.
(8) Просветите, что за переключатель.
10 VladZ
 
09.12.16
10:02
В идеале - переключатель. Если по каким-то причинам этот вариант не подходит - делать как (7).
11 avcherkasov
 
09.12.16
10:04
(7) Тоже работает 1 раз.
12 Масянька
 
09.12.16
10:05
13 1dvd
 
09.12.16
10:05
(11) на каждый флажок надо свой обработчик вешать
14 avcherkasov
 
09.12.16
10:06
(12) Спасибо. Никогда ними не пользовался. Сейчас вникну.
15 Масянька
 
09.12.16
10:06
+ (12) Добавляешь друг за другом (чтобы порядок обхода не трогать потом).
Имя задаешь только первому (по времени добавления). Ему же в свойствах выставляешь "Первый в группе".
16 ADirks
 
09.12.16
10:57
(9, 11) я всего лишь продемонстрировал принцип инверсии числового флага
как морду делать, это автору решать
17 avcherkasov
 
09.12.16
11:14
(16) Я так как вы советовали пробовал. Инверсия работает один раз, второй раз обратно не срабатывает. Попробуйте у себя. Решил заморачиваться с флажками вместо переключателей, т.к. переключатели корректно срабатывают лишь, когда между ними на форме ничего нет + ещё есть нюансы.
18 Масянька
 
09.12.16
11:17
(17) Не "между ними ничего нет", а порядок обхода друг за другом.
19 Это_mike
 
09.12.16
11:17
(17) нет никаких "нюансов" - есть прстое соблюдение порядка обхода.
20 Это_mike
 
09.12.16
11:18
(17) у всех-срабатывает. может, проблема там, где всегда?
21 catena
 
09.12.16
11:20
(17)Что-то и флажки у вас не работают, и переключатели не работают. Если третий муж бьет по роже, может, дело не в муже, а в роже?
22 Масянька
 
09.12.16
11:24
(21) Как говорит наш дорогой шеф: если человек идиот, то это надолго (С) :)))
23 avcherkasov
 
09.12.16
11:27
(19) нюансы не в 1с, а именно в моей обработке имел ввиду. (21) всё работает, спасибо.
(22) а вот этого не надо.
24 Масянька
 
09.12.16
11:29
(23) Да, шучу я... Шучу...
Флажки - это не переключатели. А в твоем случае - нужны переключатели. Может "Один раз день потерять, зато потом за 5 минут долететь"(С)?
25 Это_mike
 
09.12.16
11:29
(23) шеф всегда прав.... :-)))
26 Это_mike
 
09.12.16
11:29
(24) так ошибка там, где всегда...
27 avcherkasov
 
09.12.16
11:33
(24) Можно выключить на форме оба переключателя? Мне надо, чтобы и инверсия работала и была возможность их оба отключить, поэтому использовал флажки.
28 Это_mike
 
09.12.16
11:35
(27) нажать двумя мышками...
29 Масянька
 
09.12.16
11:43
(27) Сделай третий "Отключить фсё".
30 Это_mike
 
09.12.16
11:44
(29) ему толко два флажка выдали...
31 avcherkasov
 
09.12.16
11:49
(30) Давайте не будем петросяничать. Был вопрос по существу, возможно ли отключить оба переключателя? 3-й лепить не вариант, пользователи забудут их отключить и получат иной макет, который висит на одном из этих переключателей.
32 Масянька
 
09.12.16
11:49
(30) Пусть возьмет третий. Бесплатно. Я разрешаю.
:)))
33 Масянька
 
09.12.16
11:50
(31) Слушай, ты - программист или где?
Делай по умолчанию (при открытии) включенным третий.
PS Детский сад...
34 avcherkasov
 
09.12.16
11:56
(33) Это да. Рассказываю ситуацию. На форме 1 флаг и 2 переключателя. Каждый из ник в итоге выдаёт 3 разных печ. формы. Юзверь пользует их все. Ему что обработку закрывать, чтобы с 1-го макета на 3-й переключится?
35 Fish
 
09.12.16
11:57
(34) А переключатель из трёх позиций чем не устраивает?
36 Fish
 
09.12.16
11:58
+(35) Три формы = три положения переключателя. Казалось бы, что проще?
37 Масянька
 
09.12.16
12:01
Джентльмены! Я - пас.
38 Ёпрст
 
09.12.16
12:03
(34)
два флажка Флажой1 и Флажок2, формулу первого флажок2=0, в формулу второго флажок1=0.
Усё, наслаждайся, кушай печенки.
39 ADirks
 
09.12.16
12:08
(38) фи, какой примитив ...
40 big
 
09.12.16
12:19
Выпадающий список никто не предлагал?
41 trdm
 
09.12.16
12:22
(14) > Спасибо. Никогда ними не пользовался. Сейчас вникну.

Ага, щаз.
Для переключателей важен порядок обхода элементов. Они должны следовать попорядку за элементом "Первый в группе".
Это важно.
42 Это_mike
 
09.12.16
12:23
(37) (38) (40) - см. (26)
43 Ёпрст
 
09.12.16
12:25
(39) норм, это именно то, что нужно автору.
44 Ёпрст
 
09.12.16
12:26
+43 включен только один из двух или оба выключены
45 trdm
 
09.12.16
12:26
(38) Флаг можно как поставить, так и снять.
Правильный алгоритм:
//============================================================
Процедура ПриИзмененииЗначения(псАктивныйЭлемент="")
    Если псАктивныйЭлемент = "" Тогда
        псАктивныйЭлемент=Форма.АктивныйЭлемент();
    КонецЕсли;
    Если псАктивныйЭлемент = "флФлаг1" Тогда
        Если флФлаг1 = 1 Тогда
            флФлаг2 = 0;
        КонецЕсли;
    ИначеЕсли псАктивныйЭлемент = "флФлаг2" Тогда
        Если флФлаг2 = 1 Тогда
            флФлаг1 = 0;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры // ПриИзмененииЗначения

//============================================================
Процедура ПриОткрытии()
    Если (флФлаг1 + флФлаг2) = 2 Тогда
        ПриИзмененииЗначения("флФлаг1");
    КонецЕсли;
КонецПроцедуры // ПриОткрытии
46 trdm
 
09.12.16
12:27
(45) Соответственно формулу "ПриИзмененииЗначения()" прописываем в оба флага.
47 avcherkasov
 
09.12.16
12:27
(38) Большое спасибо за самый адекватный и дельный совет. Именно это и нужно было.
48 avcherkasov
 
09.12.16
12:27
(46) Уже сделал, кмк проще (38)
49 Ёпрст
 
09.12.16
12:29
(45)  и ?
50 trdm
 
09.12.16
12:30
(48) ну мало ли, лишний скил не помешает.
51 trdm
 
09.12.16
12:31
(49) я к тому, что надо еще обрабатывать источник действия.
52 Ёпрст
 
09.12.16
12:41
(51) зачем ? как в (38) усё работает как и надо автору.
53 trdm
 
09.12.16
12:41
да кто спорит. У всех разное представление о мере.
54 aka AMIGO
 
09.12.16
12:48
Только вчера делал.
http://i.paste.pics/dade917ad0e1c069f3eba40d3c96d66c.png
номера в скобках в процедуре - от 1 до 5 (прием в параметре НФ)
Имена марок - как в процедуре.

Процедура ПриВыбореФилиала(НФ)
    
    МСК = ?(НФ=1,1,0);
    СПБ = ?(НФ=2,1,0);
    НСБ = ?(НФ=3,1,0);
    РНД = ?(НФ=4,1,0);
    ВЛЖ = ?(НФ=5,1,0);
    Представление="";
    ПечФил = Филиал.ПолучитьЗначение(НФ, Представление);
    
КонецПроцедуры

Прыгает галка.. А больше мне ничего и не надо :)
55 trdm
 
09.12.16
12:56
что только люди не придумывают, абы комбобоксом и переключателями не пользоваться.
56 Это_mike
 
09.12.16
13:06
+(55) лавров.жпг®
57 uno-group
 
09.12.16
13:32
Таблицу значений с пиктограммой еще не предлагали?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший