![]() |
![]() |
![]() |
|
Вывод формы констант в управляемом приложении | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
04.11.20
✎
04:53
|
Создал константу, создал форму констант. Как сейчас ее вывести в интерфейсе?
Конфигурация самостоятельно разрабатываемая. |
|||
1
NIGHTHUNTER
04.11.20
✎
08:07
|
||||
2
Chameleon1980
04.11.20
✎
08:16
|
ну ты же пишешь про форму, так и создай форму
|
|||
3
NIGHTHUNTER
04.11.20
✎
08:17
|
(1) Это поправил. Видимо было из за того что в интерфейс делал вывод и константы и формы констант.
Подскажите сейчас по такому вопросу. Открываю форму констант. Выбираю каталог, устанавливаю выбранное значение в значение константы. И так же хочу обновлять значение в форме константы. Но там выдает ошибку, или не обновляется. Подскажите что я не так делаю ? // &НаКлиенте Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Режим = РежимДиалогаВыбораФайла.ВыборКаталога; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.Каталог = ""; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите каталог"; Если ДиалогОткрытия.Выбрать() Тогда КаталогМакетов = ДиалогОткрытия.Каталог; Элементы.КаталогМакетов = КаталогМакетов; ЗадатьКаталогМакетовНаСервере(КаталогМакетов); КонецЕсли; КонецПроцедуры // Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов); Константы.КаталогМакетов.Установить(КаталогМакетов); КонецПроцедуры // &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КаталогМакетов = Константы.КаталогМакетов.Получить(); КонецПроцедуры // |
|||
4
youalex
04.11.20
✎
08:22
|
(3) >> Но там выдает ошибку
Главное - никогда и не при каких условиях не писать какую ошибку выдает. И про ошибку лучше тоже не писать, лучше писать просто и понятно - "не работает". |
|||
5
NIGHTHUNTER
04.11.20
✎
08:22
|
Подскажите пожалуйста, что нужно сделать, когда проходит вот этот код, что бы обновлялось значение на форме
КаталогМакетов. А то меняешь разные каталоги, но значение остается на форме без изменения. http://joxi.ru/82QJW7EH9wXkkA Если ДиалогОткрытия.Выбрать() Тогда КаталогМакетов = ДиалогОткрытия.Каталог; //Элементы.КаталогМакетов = КаталогМакетов; ЗадатьКаталогМакетовНаСервере(КаталогМакетов); КонецЕсли; |
|||
6
NIGHTHUNTER
04.11.20
✎
08:23
|
(4) Ошибка потому что так нельзя делать, я это закомментировал.
//Элементы.КаталогМакетов = КаталогМакетов; Как там задавать значение на форме??? |
|||
7
youalex
04.11.20
✎
08:26
|
Элементы.КаталогМакетов - это элемент формы, а тебе нужно поменять значение в этом элементе. Подозреваю, что это НаборКонстант.КаталогМакетов.
|
|||
8
NIGHTHUNTER
04.11.20
✎
08:33
|
(7) Пробую так, тоже ничего не меняется на форме.
// &НаКлиенте Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Режим = РежимДиалогаВыбораФайла.ВыборКаталога; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.Каталог = ""; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите каталог"; Если ДиалогОткрытия.Выбрать() Тогда КаталогМакетов = ДиалогОткрытия.Каталог; //Элементы.КаталогМакетов = КаталогМакетов; //НаборКонстант = Константы.СоздатьНабор("КаталогМакетов"); //НаборКонстант.Прочитать(); //НаборКонстант.КаталогМакетов = КаталогМакетов; // ЗадатьКаталогМакетовНаСервере(КаталогМакетов); КонецЕсли; КонецПроцедуры // Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов); //Константы.КаталогМакетов.Установить(КаталогМакетов); _НаборКонстант = Константы.СоздатьНабор("КаталогМакетов"); _НаборКонстант.Прочитать(); _НаборКонстант.КаталогМакетов = КаталогМакетов; КонецПроцедуры // &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КаталогМакетов = Константы.КаталогМакетов.Получить(); КонецПроцедуры // |
|||
9
NIGHTHUNTER
04.11.20
✎
08:35
|
(7) Добавил записать, тоже ничего не получилось
Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов); //Константы.КаталогМакетов.Установить(КаталогМакетов); _НаборКонстант = Константы.СоздатьНабор("КаталогМакетов"); _НаборКонстант.Прочитать(); _НаборКонстант.КаталогМакетов = КаталогМакетов; _НаборКонстант.Записать(); КонецПроцедуры |
|||
10
NIGHTHUNTER
04.11.20
✎
08:39
|
При редактировании константы на форме констант, выходит такое окно, как с этим быть? От чего оно?
http://joxi.ru/gmvMjezu1qlazr |
|||
11
NIGHTHUNTER
04.11.20
✎
08:41
|
Похоже вот так работает
// &НаКлиенте Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Режим = РежимДиалогаВыбораФайла.ВыборКаталога; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.Каталог = ""; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите каталог"; Если ДиалогОткрытия.Выбрать() Тогда КаталогМакетов = ДиалогОткрытия.Каталог; // НаборКонстант.КаталогМакетов = КаталогМакетов; //ЗадатьКаталогМакетовНаСервере(КаталогМакетов); КонецЕсли; КонецПроцедуры // &НаСервере Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов); Константы.КаталогМакетов.Установить(КаталогМакетов); КонецПроцедуры // &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КаталогМакетов = Константы.КаталогМакетов.Получить(); КонецПроцедуры // И даже не нужно задавать серверный вызов установки константы //ЗадатьКаталогМакетовНаСервере(КаталогМакетов); Правильно ли я понимаю, что достаточно кода на клиенте???? |
|||
12
youalex
04.11.20
✎
08:43
|
(8) Да не КаталогМакетов, а НаборКонстант.КаталогМакетов
(10) о, знакомое окошко. Подозреваю, что у тебя >1 сеанса открыто |
|||
13
NIGHTHUNTER
04.11.20
✎
08:45
|
(12) Да потом увидел, это окно. Но не понял, как быть если такое пользователю выйдет
Вот этот код работает, и не нужны получается серверные процедуры. Действительно ли достаточно того что выполняется на клиенте? В процедуре НачалоВыбора? // &НаКлиенте Процедура КаталогМакетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Режим = РежимДиалогаВыбораФайла.ВыборКаталога; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.Каталог = ""; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите каталог"; Если ДиалогОткрытия.Выбрать() Тогда КаталогМакетов = ДиалогОткрытия.Каталог; // НаборКонстант.КаталогМакетов = КаталогМакетов; //ЗадатьКаталогМакетовНаСервере(КаталогМакетов); КонецЕсли; КонецПроцедуры // //&НаСервере //Процедура ЗадатьКаталогМакетовНаСервере(КаталогМакетов); // Константы.КаталогМакетов.Установить(КаталогМакетов); //КонецПроцедуры // //&НаСервере //Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // КаталогМакетов = Константы.КаталогМакетов.Получить(); //КонецПроцедуры // |
|||
14
youalex
04.11.20
✎
08:50
|
(13) ну у тебя же НаборКонстант - основной реквизит формы (галка в свойствах), а элемент (поле) формы привязан к данным этого реквизита через ПутьКДанным = "НаборКонстант.КаталогМакетов" (свойство элемента формы). Короче, нет, не надо этих дополнительных манипуляция, оно само.
|
|||
15
NIGHTHUNTER
04.11.20
✎
09:01
|
(14) Ясно. Спасибо. А то тут думал все как правильнее сделать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |