Имя: Пароль:
1C
 
Как "сохранить" положение переключателя формы 1с
0 gabd_marat
 
22.05.17
18:15
Создал переключатель ФИФО,ЛИФО. При записи значения сохраняются в конст ФИФО,ЛИФО. Нужно что бы после закрытия формы состояние переключателя было актуальным(измененным)  

&НаКлиенте
Процедура ПриОткрытии(Отказ)    
    МСписание = МСписание();
    Если МСписание = 1 Тогда
        МетодСписания = 0;
    Иначе
        МетодСписания = 1;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Функция МСписание()    
    ФИФО = Константы.МТ_ФИФО.Получить();
    ЛИФО = Константы.МТ_ЛИФО.Получить();
    Если ФИФО = Истина Тогда
        Возврат 1;
    Иначе
        Возврат 0;
    КонецЕсли;     
КонецФункции

Конст записываются, но переключатель всегда ФИФО.
1 gabd_marat
 
22.05.17
18:16
МетодСписания это переключатель ФИФО(0),ЛИФО(1)
2 Fragster
 
гуру
22.05.17
18:18
интересно, что переключатель один, а константы две...
3 gabd_marat
 
22.05.17
18:19
(2) Списка выбора в 1 преключателе 2
4 gabd_marat
 
22.05.17
18:21
(2)Список выбора состоит из 2  элементов, переключатель 1
5 gabd_marat
 
22.05.17
18:22
Запустил отладчик, не запускается функции ПриОткрытии?
6 gabd_marat
 
22.05.17
18:24
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
    МетодСписаниПриИзменении(ЭтаФорма.Элементы);
    ЭтаФорма.Закрыть();
КонецПроцедуры

&НаКлиенте
Процедура МетодСписаниПриИзменении(Элемент)
    
    Если МетодСписания = 1 Тогда
        ЛИФО = Истина;
        ФИФО = Ложь;
        МетодСписаниПриИзмененииНаСервере(ЛИФО, ФИФО);
    Иначе
        ЛИФО = Ложь;
        ФИФО = Истина;
        МетодСписаниПриИзмененииНаСервере(ЛИФО, ФИФО);
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура МетодСписаниПриИзмененииНаСервере(ЛИФО, ФИФО)    
    Константы.МТ_ФИФО.Установить(ФИФО);
    Константы.МТ_ЛИФО.Установить(ЛИФО);
    //МОбъект = Ложь;
    //МТ_ОперативныйУчетВСкладах.ПерепроведениеДокументов(МОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)    
    МСписание = МСписание();
    Если МСписание = 1 Тогда
        МетодСписания = 0;
    Иначе
        МетодСписания = 1;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Функция МСписание()    
    ФИФО = Константы.МТ_ФИФО.Получить();
    ЛИФО = Константы.МТ_ЛИФО.Получить();
    Если ФИФО = Истина Тогда
        Возврат 1;
    Иначе
        Возврат 0;
    КонецЕсли;     
КонецФункции
7 Волшебник
 
модератор
22.05.17
18:25
херня какая-то
8 Волшебник
 
модератор
22.05.17
18:25
сделайте константу МетодСписания (тип Перечисление.МетодыСписания значения ФИФО и ЛИФО). Создайте общую форму констант, включите её в состав формы, добавьте на форму поле выбора
9 Волшебник
 
модератор
22.05.17
18:26
Программировать вообще не надо. Ноль строчек кода
10 gabd_marat
 
22.05.17
18:26
(8)Ок
11 Tatitutu
 
22.05.17
18:29
(10) просто интересно
у тебя

&НаСервере
Функция МСписание()    
    ФИФО = Константы.МТ_ФИФО.Получить();
    ЛИФО = Константы.МТ_ЛИФО.Получить();
    Если ФИФО = Истина Тогда
        Возврат 1;
    Иначе
        Возврат 0;
    КонецЕсли;    
КонецФункции

на кой ЛИФО = Константы.МТ_ЛИФО.Получить(); вообще

//дал бы тот же результат

&НаСервере
Функция МСписание()    
    Возврат Константы.МТ_ФИФО.Получить();      
КонецФункции
12 gabd_marat
 
22.05.17
18:35
(7) согласен)
13 gabd_marat
 
22.05.17
18:56
(8) не понятно как это сделать, где можно посмотреть ка это делать?
14 Мимохожий Однако
 
22.05.17
20:41
(13) РТФМ. Документация по-русски
15 gabd_marat
 
22.05.17
21:13
(14) чего?
16 gabd_marat
 
23.05.17
00:22
(9) А можно через перечисление сделать ввиде переключателя а не выбора?
17 gabd_marat
 
23.05.17
00:26
Разобрался