Меню сайта
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 1
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Март 2013  »
Пн Вт Ср Чт Пт Сб Вс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Суббота, 11.04.2026, 05:24ГлавнаяРегистрацияВход
    Мой сайт
    Приветствую Вас Гость | RSS
    Главная » 2013 » Март » 19 » V8: Сохранение настроек интерфейса управляемой фо
    02:52
     

    V8: Сохранение настроек интерфейса управляемой фо

    Итак, путем "мозге хох залупирт", потратив кучу времени, я все-таки допер, каким образом работает сей механизм. Итак, проведем экспериментос.
    1. Создаем управляемую форму. (я делал это именно внутри конфигуратора, а не внутри внешней обработки.
    2. В форме создаем элементы, которые будем двигать/изменять.
    3. В форме создаем 3 кнопки. Тексты их обработчиков ниже:

    &НаКлиенте Процедура УправлениеНастройкамиФормы_ЗагрузитьНастройкиФормы(Команда) СписокНастроек = ХранилищеСистемныхНастроек.ПолучитьСписок(ЭтаФорма.ИмяФормы+"/НастройкиФормы"); ИмяНастройки = СписокНастроек.ВыбратьЭлемент(); Если Не ИмяНастройки = Неопределено Тогда НастройкиФормы = ХранилищеСистемныхНастроек.Загрузить(ЭтаФорма.ИмяФормы+"/НастройкиФормы",ИмяНастройки); ХранилищеСистемныхНастроек.Сохранить(ЭтаФорма.ИмяФормы+"/НастройкиФормы","",НастройкиФормы ); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура УправлениеНастройкамиФормы_СохранитьНастройкиФормы(Команда) ИмяНастройки = ""; Подсказка = "Введите название настройки"; Если ВвестиСтроку(ИмяНастройки, Подсказка, 0, Истина) Тогда НастройкиФормы = ХранилищеСистемныхНастроек.Загрузить(ЭтаФорма.ИмяФормы+"/НастройкиФормы",""); ХранилищеСистемныхНастроек.Сохранить(ЭтаФорма.ИмяФормы+"/НастройкиФормы",ИмяНастройки,НастройкиФормы); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура УправлениеНастройкамиФормы_УдалитьНастройкуФормы(Команда) СписокНастроек = ХранилищеСистемныхНастроек.ПолучитьСписок(ЭтаФорма.ИмяФормы+"/НастройкиФормы"); ИмяНастройки = СписокНастроек.ВыбратьЭлемент(); Если Не ИмяНастройки = Неопределено Тогда ХранилищеСистемныхНастроек.Удалить(ЭтаФорма.ИмяФормы+"/НастройкиФормы", ИмяНастройки, глЗначениеПеременной("глТекущийПользователь").Наименование) КонецЕсли; КонецПроцедуры В этом коде глЗначениеПеременной("глТекущийПользователь") замените на имя пользователя.
    4. Тестируем то, что у нас получилось. Открываем нашу форму. Хреновертим с ее видом и нажимаем кнопку сохранения настройки. Вводим красивое имя "Один". Настройка сохранилась.
    5. Теперь хреновертим еще и снова нажимаем кнопку сохранения настройки. Вводим красивое имя "Два".
    6. Перезапускаем 1С для верности.
    7. Открываем нашу форму, кнопаем пимпу загрузки настроек и выбираем настройку с красивым названием "Один".
    8. Перезапускаем один эс и снова открываем форму. Что же мы видим?... Ничего не изменилось. Настроечка с красивым названием "Один" не применилась!
    9. Перезапускаем 1С для верности.
    10. Открываем нашу форму, кнопаем пимпу загрузки настроек и выбираем настройку с красивым названием "Один".
    11. Закрываем один эс.
    12. Открываем конфигуратор, открываем любой модуль, встаем в любое незначимое место и добавляем туда символ пробела, например. То есть суть модуля не изменится, но изменится конфигурация.
    13. Обновляем конфигурацию.
    14. Запускаем один эс и открываем нашу красивую формы.
    15. Вуаля! Настроечка с красивым названием "Один" применилась!

    Выводы: хотя механизм и работает, но фунциклирует но почему-то исключительно с помощью обновления конфиги, хотя настройки действительно можно сохранять. Непонятно, почему же все-таки он работает правильно, если делать все это платформенными методами.
    PS: Уж не знаю, баг ли это, или нет, но в 1С по этому поводу не писал.

    Просмотров: 911 | Добавил: ittewhe | Рейтинг: 0.0/0
    Всего комментариев: 0

    Бесплатный конструктор сайтовuCozCopyright MyCorp © 2026