Имя: Пароль:
1C
 
флажок при изменении
0 amadeus2010
 
18.12.14
19:21
добрый вечер в УТ 10.3, в форме справочника контрагенты создал флажки дни недели и поле график посещений. Пользователь должен выбирать флажок дня недели например Пон,Вт и в поле график посещений должно отображаться 1х, если день недели не выбран тогда 2о. Я поместил код в процедуру флажок при изменении
/////////////////////////////////////////////////////////////////
Процедура ПонПриИзменении(Элемент)
Если Пон Тогда
     ГрафикПосещений = "с1х";
        Иначе
     ГрафикПосещений = "с1о";
КонецЕсли;

КонецПроцедуры
//////////////////////////////////////////////////////////////////
Но если я выбираю флажок Вт или Ср то вместо такой записи 1х2о3х, получаю 1х или 2о например. Т.е вопрос в том как прописать в строке действия над флажками?
1 фобка
 
18.12.14
19:26
ИначеЕсли
2 amadeus2010
 
18.12.14
19:30
делал ИначеЕсли все равно выводит или с1х или с1о например
3 фобка
 
18.12.14
19:31
Если нужна запись 1х2о3х4х и тд тогда график посещений не затирай а обновляй каждый раз
4 фобка
 
18.12.14
19:32
отдельным реквизитами или переменными держишь с1о, потом при изменении флажка все кусочки соединяешь
5 amadeus2010
 
18.12.14
19:34
(3) нужна именно такая запись. Можно какой-нибудь пример привести
6 фобка
 
18.12.14
19:38
Какой пример? При изменении флажка ты должен менять графикПосещенийПон, графикПосещенийВт и тд. И там же обновляешь общую строку то есть ГрафикПосещений.
Это вариант только. Дальше сам. Можно массивом делать или еще как
7 amadeus2010
 
18.12.14
19:39
Реквизитами не очень удобно, можно как переменные. т.е я могу завести переменные с1х, с2о, с3х и т.д. потом прописать как проверка действия над флажком и присвоить графикпосещений =с1х и т.д.
8 фобка
 
18.12.14
19:40
Хозяин - барин.
Но графикпосещений = графикпосещенийпон+графикпосещенийвт+....
Если это не так - не уловил ход твоих мыслей, тебе виднее
9 User_Agronom
 
18.12.14
19:41
В списке 7 полей с флажками?
И может быть выбрано одновременно любое количество флажков?
10 amadeus2010
 
18.12.14
19:44
(9) есть только 7 флажков и поле график в которое надо передавать действия над флажками как в (3)
11 User_Agronom
 
18.12.14
19:48
Семь "Если ... тогда ... иначе... КонецЕсли"

Результат = "";
Если Пон тогда
  Результат = Результат + "1x"
Иначе
  Результат = Результат + "1о"
КонецЕсли;
Если Вто тогда
  Результат = Результат + "2x"
Иначе
  Результат = Результат + "2о"
КонецЕсли;
Если Сре тогда
  Результат = Результат + "3x"
Иначе
  Результат = Результат + "3о"
КонецЕсли;
...
12 amadeus2010
 
18.12.14
19:59
(11) насчет Семь "Если ... тогда ... иначе... КонецЕсли" не совсем понял
13 kosts
 
18.12.14
20:03
(0) Какой интересный вопрос. Если к нам придет еще прог, то надо будет ему на собеседовании подкинуть такую задачку...
14 kosts
 
18.12.14
20:05
(12) Как в базе хранить будешь?
15 amadeus2010
 
18.12.14
20:09
Хранить намереваюсь в поле ГрафикПосещений
16 kosts
 
18.12.14
20:15
(15) Не очень понятно.
17 kosts
 
18.12.14
20:16
А что день недели числом не хранишь, 1 понедельник, 2 вторник и т.д.
18 kosts
 
18.12.14
20:21
Я к чему клоню, как будешь запрос к такой записи делать "1х2о3х"?
19 Крошка Ру
 
18.12.14
20:25
(18) Ну вот тебе и ещё одна интересная задача
20 Крошка Ру
 
18.12.14
20:27
(0)А по теме: не думаю, что тут можно обойтись семью условиями. А если пользователь проставит флажки, а потом ещё раз какой-нибудь включит-выключит? Тебе нужен график или лог действий пользователя?
21 User_Agronom
 
18.12.14
20:53
(12) Три ветвления написал. Допиши ещё четыре
22 amadeus2010
 
18.12.14
21:49
Такая система записи была определена заказчиком. Потом  он эти данные выгружает в  МТ Чикаго, а эта программа воспринимает дни посещений только как 1х2о3х и т.д.
Сделал таким образом согласно примеру
//////////////////////////////////////////////////////
ГрафикПосещений = "";

    
Если Пон Тогда
     ГрафикПосещений = ГрафикПосещений+ "с1х";
        Иначе
     ГрафикПосещений = ГрафикПосещений+ "с1о";
КонецЕсли;

Если Вт Тогда
     ГрафикПосещений =  ГрафикПосещений+"с2х";
Иначе    
     ГрафикПосещений = "с2о";
КонецЕсли;

Если Ср Тогда
     ГрафикПосещений = ГрафикПосещений+"с3х";
Иначе
     ГрафикПосещений = ГрафикПосещений+"с3о";
КонецЕсли;

Если Чт Тогда
     ГрафикПосещений = ГрафикПосещений+"с4х";
Иначе
     ГрафикПосещений = ГрафикПосещений+"с4о";
КонецЕсли;

Если Пт Тогда
     ГрафикПосещений = ГрафикПосещений+"с5х";
        Иначе
     ГрафикПосещений =ГрафикПосещений+ "с5о";
КонецЕсли;

Если Сб Тогда
     ГрафикПосещений = ГрафикПосещений+"с6х";
Иначе     
     ГрафикПосещений = ГрафикПосещений+"с6о";
КонецЕсли;

КонецПроцедуры
/////////////////////////////////////////////////////////
При этом значение Пон остается пустым
23 User_Agronom
 
18.12.14
21:57
(22) А переменная "ГрафикПосещений"?
Мы говорим не о именах переменных, а о способе сформировать строку зависящую от 7 флажков.
24 User_Agronom
 
18.12.14
22:01
На всякий пожарный:
Условие нужно писать так
Если ЭлементыФормы.Флажок1.Значение тогда
Где Флажок1 - флажок пон, вт, ср и т.д. соответственно.
25 amadeus2010
 
18.12.14
22:55
Чтобы в поле график посещений отображалось значение Пон я немного изменил код на
//////////////////////////////////////////////
Если Пон Тогда
     ГрафикПосещений = ГрафикПосещений+ "с1х";
         Иначе
     ГрафикПосещений = ГрафикПосещений+ "с1о";
КонецЕсли;
///////////////////////////////////////////////////
26 User_Agronom
 
18.12.14
23:04
(25) Даже боюсь что-то добавить...
27 фобка
 
19.12.14
08:09
(25) заработало? Ну и отлично!