Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Не получается получить значение константы (http://forums.kuban.ru/f1040/ne_poluchaetsya_poluchit-_znachenie_konstanty-8550675.html)

LivingStar 06.12.2017 15:55

Не получается получить значение константы
 
Что я не так делаю? Тип константы хранилище значения.
Так же если оно пустое не показывает что оно неопределено
и ЗначениеЗаполнено() показывает истина!



//
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВывестиЗначениеКонстанты();
КонецПроцедуры
//
&НаКлиенте
Процедура ВывестиЗначениеКонстанты()
//
ХранилищеИзКонстанты = ПрочитатьЗначениеКонстанты();
//
Если ХранилищеИзКонстанты = Неопределено Тогда
Сообщить("Ошибка получения значения из хранилища");
Иначе
Объект.Путь = ХранилищеИзКонстанты.Путь;
Объект.Порт = ХранилищеИзКонстанты.Порт;
Объект.Пользователь = ХранилищеИзКонстанты.Пользователь;
Объект.Пароль = ХранилищеИзКонстанты.Пароль;
Объект.ПассивноеСоединение = ХранилищеИзКонстанты.ПассивноеСоединение;
Объект.ИмяФайла = ХранилищеИзКонстанты.ИмяФайла;
Объект.ВидДК = ХранилищеИзКонстанты.ВидДК;
КонецЕсли;
//
КонецПроцедуры
//
&НаСервере
Функция ПрочитатьЗначениеКонстанты()
ХранилищеИзКонстанты = Константы.ПП_ПараметрыПодключенияКFTP.Получить();
//Возврат ХранилищеИзКонстанты.Прочитать();
Возврат ХранилищеИзКонстанты;
КонецФункции
//

user1C 06.12.2017 16:06

Возврат ХранилищеИзКонстанты.Получить();

LivingStar 06.12.2017 16:16

(1) Да спасибо, уже понял!!!!

LivingStar 06.12.2017 16:16

(1) Не подскажете как отключить окно которое всплывает в
левом нижнем углу, показывая разные значения? В 1с 8.2.
Жутко мешает работать!!!

LivingStar 06.12.2017 16:26

Вот код. Помещать в хранилище значений получается.
Но потом не получается от туда извлечь( Оно что пропадает там?


//
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВывестиЗначениеКонстанты();
КонецПроцедуры
//
&НаКлиенте
Процедура ВывестиЗначениеКонстанты()
//
ХранилищеИзКонстанты = ПрочитатьЗначениеКонстанты();
СтруктураИзХранилища = ХранилищеИзКонстанты.Получить();
//
Если СтруктураИзХранилища = Неопределено Тогда
Сообщить("Ошибка получения значения из хранилища");
Иначе
Объект.Путь = СтруктураИзХранилища.Путь;
Объект.Порт = СтруктураИзХранилища.Порт;
Объект.Пользователь = СтруктураИзХранилища.Пользователь;
Объект.Пароль = СтруктураИзХранилища.Пароль;
Объект.ПассивноеСоединение = СтруктураИзХранилища.ПассивноеСоединение;
Объект.ИмяФайла = СтруктураИзХранилища.ИмяФайла;
Объект.ВидДК = СтруктураИзХранилища.ВидДК;
КонецЕсли;
//
КонецПроцедуры
//
&НаСервере
Функция ПрочитатьЗначениеКонстанты()
ХранилищеИзКонстанты = Константы.ПП_ПараметрыПодключенияКFTP.Получить();
//Возврат ХранилищеИзКонстанты.Прочитать();
Возврат ХранилищеИзКонстанты;
КонецФункции
//

&НаКлиенте
Процедура ПриЗакрытии()
УстановитьЗначениеКонстанты();
КонецПроцедуры
//
&НаКлиенте
Процедура ОбновитьЗначениеКонстанты(Команда)
УстановитьЗначениеКонстанты();
КонецПроцедуры
//
&НаКлиенте
Процедура УстановитьЗначениеКонстанты()
//
Настройки = Новый Структура();
Настройки.Вставить("Путь", Объект.Путь);
Настройки.Вставить("Порт", Объект.Порт);
Настройки.Вставить("Пользователь", Объект.Пользователь);
Настройки.Вставить("Пароль", Объект.Пароль);
Настройки.Вставить("ПассивноеСоединение", Объект.ПассивноеСоединение);
Настройки.Вставить("ИмяФайла", Объект.ИмяФайла);
Настройки.Вставить("ВидДК", Объект.ВидДК);
УстановитьЗначениеКонстантыНаСервере(Настройки);
//
КонецПроцедуры
//
&НаСервере
Процедура УстановитьЗначениеКонстантыНаСервере(Настройки)
ХранилищеВКонстанту = Новый ХранилищеЗначения(Настройки, Новый СжатиеДанных(9));
//
Константы.ПП_ПараметрыПодключенияКFTP.Установить(ХранилищеВКонстанту);
КонецПроцедуры
//

user1C 06.12.2017 16:27

(3)
сервис - параметры - убрать галку отображать показатели производительности

roma n 14.12.2017 18:10

(4) оно и не должно работать: у типа КонстантаМенеджер не поддерживается метод "Получить".
Сначала нужно [b]прочитать[/b] значение константы (там тип ХранилищеЗначения), а потом извлечь из неё ранее впихнутую туда структуру.

PS в отладчике и табло типы значений неспроста выводятся, да


Текущее время: 07:31. Часовой пояс GMT +3.