Вход | Регистрация
 

Вывод формы констант в управляемом приложении

Вывод формы констант в управляемом приложении
Я
   NIGHTHUNTER
 
04.11.20 - 04:53
Создал константу, создал форму констант. Как сейчас ее вывести в интерфейсе?
Конфигурация самостоятельно разрабатываемая.
   NIGHTHUNTER
 
1 - 04.11.20 - 08:07
Сделал константу, КаталогМакетов http://joxi.ru/LmGO73GslwW8xm

Почему, выводится 2 раза?
   Chameleon1980
 
2 - 04.11.20 - 08:16
ну ты же пишешь про форму, так и создай форму
   NIGHTHUNTER
 
3 - 04.11.20 - 08:17
(1) Это поправил. Видимо было из за того что в интерфейс делал вывод и константы и формы констант.

Подскажите сейчас по такому вопросу. Открываю форму констант. Выбираю каталог, устанавливаю выбранное значение в значение константы.
И так же хочу обновлять значение в форме константы. Но там выдает ошибку, или не обновляется.

Подскажите что я не так делаю ?


//

&НаКлиенте
Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытия.Каталог = ""; 
    ДиалогОткрытия.МножественныйВыбор = Ложь; 
    ДиалогОткрытия.Заголовок = "Выберите каталог"; 
    Если ДиалогОткрытия.Выбрать() Тогда 
        КаталогМакетов         = ДиалогОткрытия.Каталог; 
        Элементы.КаталогМакетов = КаталогМакетов;
        ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    КонецЕсли; 
КонецПроцедуры
//

Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    Константы.КаталогМакетов.Установить(КаталогМакетов);
КонецПроцедуры
//

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    КаталогМакетов = Константы.КаталогМакетов.Получить();
КонецПроцедуры
//
   youalex
 
4 - 04.11.20 - 08:22
(3) >> Но там выдает ошибку
Главное - никогда и не при каких условиях не писать какую ошибку выдает. И про ошибку лучше тоже не писать, лучше писать просто и понятно - "не работает".
   NIGHTHUNTER
 
5 - 04.11.20 - 08:22
Подскажите пожалуйста, что нужно сделать, когда проходит вот этот код, что бы обновлялось значение на форме
КаталогМакетов. А то меняешь разные каталоги, но значение остается на форме без изменения. http://joxi.ru/82QJW7EH9wXkkA
    Если ДиалогОткрытия.Выбрать() Тогда 
        КаталогМакетов         = ДиалогОткрытия.Каталог; 
        //Элементы.КаталогМакетов = КаталогМакетов;

        ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    КонецЕсли;
   NIGHTHUNTER
 
6 - 04.11.20 - 08:23
(4) Ошибка потому что так нельзя делать, я это закомментировал.

  //Элементы.КаталогМакетов = КаталогМакетов;


Как там задавать значение на форме???
   youalex
 
7 - 04.11.20 - 08:26
Элементы.КаталогМакетов - это элемент формы, а тебе нужно поменять значение в этом элементе. Подозреваю, что это НаборКонстант.КаталогМакетов.
   NIGHTHUNTER
 
8 - 04.11.20 - 08:33
(7) Пробую так, тоже ничего не меняется на форме.

//

&НаКлиенте
Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытия.Каталог = ""; 
    ДиалогОткрытия.МножественныйВыбор = Ложь; 
    ДиалогОткрытия.Заголовок = "Выберите каталог"; 
    Если ДиалогОткрытия.Выбрать() Тогда 
        КаталогМакетов = ДиалогОткрытия.Каталог; 
        //Элементы.КаталогМакетов = КаталогМакетов;

        //НаборКонстант = Константы.СоздатьНабор("КаталогМакетов");

        //НаборКонстант.Прочитать();

        //НаборКонстант.КаталогМакетов = КаталогМакетов;        

        //

        ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    КонецЕсли; 
КонецПроцедуры
//

Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    //Константы.КаталогМакетов.Установить(КаталогМакетов);

    _НаборКонстант = Константы.СоздатьНабор("КаталогМакетов");
    _НаборКонстант.Прочитать();
    _НаборКонстант.КаталогМакетов = КаталогМакетов;        
КонецПроцедуры
//

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    КаталогМакетов = Константы.КаталогМакетов.Получить();
КонецПроцедуры
//
   NIGHTHUNTER
 
9 - 04.11.20 - 08:35
(7) Добавил записать, тоже ничего не получилось

Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    //Константы.КаталогМакетов.Установить(КаталогМакетов);

    _НаборКонстант = Константы.СоздатьНабор("КаталогМакетов");
    _НаборКонстант.Прочитать();
    _НаборКонстант.КаталогМакетов = КаталогМакетов;        
    _НаборКонстант.Записать();
КонецПроцедуры
   NIGHTHUNTER
 
10 - 04.11.20 - 08:39
При редактировании константы на форме констант, выходит такое окно, как с этим быть? От чего оно?

http://joxi.ru/gmvMjezu1qlazr
   NIGHTHUNTER
 
11 - 04.11.20 - 08:41
Похоже вот так работает


//

&НаКлиенте
Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытия.Каталог = ""; 
    ДиалогОткрытия.МножественныйВыбор = Ложь; 
    ДиалогОткрытия.Заголовок = "Выберите каталог"; 
    Если ДиалогОткрытия.Выбрать() Тогда 
        КаталогМакетов = ДиалогОткрытия.Каталог; 
        //

        НаборКонстант.КаталогМакетов = КаталогМакетов;
        //ЗадатьКаталогМакетовНаСервере(КаталогМакетов);

    КонецЕсли; 
КонецПроцедуры
//

&НаСервере
Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов);
    Константы.КаталогМакетов.Установить(КаталогМакетов);
КонецПроцедуры
//

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    КаталогМакетов = Константы.КаталогМакетов.Получить();
КонецПроцедуры
//


И даже не нужно задавать серверный вызов установки константы//ЗадатьКаталогМакетовНаСервере(КаталогМакетов);

Правильно ли я понимаю, что достаточно кода на клиенте????
   youalex
 
12 - 04.11.20 - 08:43
(8) Да не КаталогМакетов, а НаборКонстант.КаталогМакетов
(10) о, знакомое окошко. Подозреваю, что у тебя >1 сеанса открыто
   NIGHTHUNTER
 
13 - 04.11.20 - 08:45
(12) Да потом увидел, это окно. Но не понял, как быть если такое пользователю выйдет

Вот этот код работает, и не нужны получается серверные процедуры. Действительно ли достаточно того что выполняется на клиенте?
В процедуре НачалоВыбора?


//

&НаКлиенте
Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытия.Каталог = ""; 
    ДиалогОткрытия.МножественныйВыбор = Ложь; 
    ДиалогОткрытия.Заголовок = "Выберите каталог"; 
    Если ДиалогОткрытия.Выбрать() Тогда 
        КаталогМакетов = ДиалогОткрытия.Каталог; 
        //

        НаборКонстант.КаталогМакетов = КаталогМакетов;
        //ЗадатьКаталогМакетовНаСервере(КаталогМакетов);

    КонецЕсли; 
КонецПроцедуры
//

//&НаСервере
//Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов);

//    Константы.КаталогМакетов.Установить(КаталогМакетов);
//КонецПроцедуры

//
//&НаСервере

//Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//    КаталогМакетов = Константы.КаталогМакетов.Получить();

//КонецПроцедуры
//
   youalex
 
14 - 04.11.20 - 08:50
(13) ну у тебя же НаборКонстант - основной реквизит формы (галка в свойствах), а элемент (поле) формы привязан к данным этого реквизита через ПутьКДанным = "НаборКонстант.КаталогМакетов" (свойство элемента формы). Короче, нет, не надо этих дополнительных манипуляция, оно само.
   NIGHTHUNTER
 
15 - 04.11.20 - 09:01
(14) Ясно. Спасибо. А то тут думал все как правильнее сделать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.