1с управляемые формы сохранение настроек формы

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

Здравствуйте, уважаемые гуру!

Возник вопрос следующего характера, касательно управляемых форм: имеется ли возможность сохранять настройку интерфейса управляемой формы для дальнейшего выбора, например, из двух сохраненных настроек? Приведу пример: На управляемой форме 2 группы кнопок по 1 кнопке в каждой. Хотелось бы сохранить 2 настройки таким образом, что бы в первой настройке в первой группе была кнопка №1, а во второй №2. Соответственно, вторая настройка должна содержать в первой группе уже кнопку №2, а во второй группе кнопку №1. Графически можно описать это вот так: http://s49.radikal.ru/i125/1101/1b/c976efffed16.jpg

Я знаю, что при изменении управляемой формы, у пользователя сохраняются настройки, и что при повторном открытии они восстанавливаются. Но хотелось бы сохранять РАЗЛИЧНЫЕ настройки формы для возможности быстрого между ними переключения.

Содержит настройки состава, взаимного расположения и свойств элементов управляемой формы.

Сервер, толстый клиент.
Сериализуется.

по моим экспериментам по умолчанию загружается именно настройка с пустой строкой «»
если перед открытием формы заменить «МояНастройка» на «» методом Сохранить то она и должна применится.

Но в результате экспериментов мне так и не удалось повлять на поведение формы

ну и еще на всякий случай может найдешь чего полезного

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

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

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

Источник

Сохранение значений реквизитов управляемых форм

Для сохранения значений реквизитов управляемой формы в 1С нужно включить свойство управляемой формы СохранениеДанныхВНастройках. После этого в окне реквизитов формы появится дополнительная колонка Сохранять данные в настройках. В этой колонке нужно поставить флаг у тех реквизитов, значения которых нужно сохранять.

%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5 %D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA %D0%A3%D0%A41 1

После этого на форме появятся стандартные кнопки Сохранить параметры и Восстановить параметры (возможно, они будут скрыты под кнопкой Еще).

Однако, автоматическое сохранение значений доступно только для реквизитов формы. Для табличных частей флаг Сохранять данные в настройках не предусмотрен. Однако, табличные части можно преобразовать, например, в массивы и уже их сохранить в настройках формы.

Рассмотрим эту процедуру на примере формы с двумя табличными частями: ТипыЦен и ГруппыНоменклатуры. В каждой табличной части по одной колонке.

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

Процедура ПриСохраненииДанныхВНастройкахНаСервере ( Настройки )

Теперь осталось восстановить табличные части из массивов при загрузке настроек управляемой формы. Для этого нам потребуется процедура для события ПриЗагрузкеДанныхИзНастроекНаСервере.

Процедура ПриЗагрузкеДанныхИзНастроекНаСервере ( Настройки )

Источник

Программирование в 1С для всех

В этой статье разберем, как работать с сохранением данных на форме в 1С 8.3.

Сохраняемые данные формы 1С

У любой управляемой формы можно настроить сохранение данных реквизитов формы. Это значит, что форма сохранит данные введенные в поля, которые соответствуют реквизитам, при закрытии формы, а при последующем открытии формы информация в этих полях восстановятся автоматически.

Например, у меня на форме обработки имеются поля, данные в которых сохраняются при закрытии формы и восстанавливаются при последующем открытии.

1

Это поля Контрагент и Цена.

Для того, чтобы на управляемой форме данные из соответствующих реквизитов сохранялись, необходимо выполнить следующие действия.

Первое. У свойства формы «Автоматическое сохранение данных в настройках» установить значение «Использовать».

2

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

3

После этих действий, данные у отмеченных реквизитов будут сохраняться.

Хранилище настроек в 1С

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

Для того, чтобы такая возможность имелась, необходимо в свойстве «Хранилище данных настроек» управляемой формы установить значение «Использовать список».

4

А потом, у нужных реквизитов формы следует установить флаг у свойства «Сохраняемые данные».

5

После таких изменений, у формы в группе Ещё появятся команды «Сохранить параметры» и «Восстановить параметры».

6

Теперь мы можем сохранить любую комбинацию реквизитов Контрагент – Цена.

7

8

И можем восстановить нужную комбинацию в любой момент работы с формой, а не только при открытии.

9

10

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

1C %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D

Книга написана понятным и простым языком — для новичка.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

1C taxi blog

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Сохранение (чтение) настроек внешней обработки в файл (управляемые формы)

Однако, очень часто обработку нужно проверять на тестовой базе или другом сервере и т.п., поэтому требуется сохранить все значения реквизитов формы (в том числе табличной части) в файл, а потом загрузить из файла уже в другой конфигурации.

То, что это возможно легко понять по намёкам на форумах, однако ни одного законченного решения найти не удалось. Что ж, к этому нам не привыкать, начинаем придумывать велосипед.

Пробуем сначала сохранить значения всех реквизитов формы в файл. Поиски в интернете приводят нас к процедуре ЗначениеВФайл и функции ЗначениеВСтрокуВнутр, приём последней пользоваться как бы не рекомендуется, якобы она предназначена для обмена с 7.7. Обе конструкции языка доступны только на сервере и толстом клиенте, поэтому возникает вопрос, как бы обойти значения всех реквизитов формы &НаСервере.

выдаст вполне ожидаемую не для всех ошибку: Итератор для значения не определен.

Казалось бы, теперь всё просто, однако не совсем. Табличная часть, как и таблица значений имеют не совсем ожидаемый тип значений, их тип ДанныеФормыКоллекция. А ведь они должны быть обязательно выгружены для сохранения, иначе в файле получим только их уникальные индификаторы.

В результате этого знания получаем:

Поэтому переписываем код, сохраняем файл теперь на клиенте, правда придётся воспользоваться не очень рекомендуемой функцией ЗначениеВСтрокуВнутр:

Теперь перейдём к загрузке из файла. Мы не будем использовать, как мы уже выяснили, следующий неправильный код с передачей только имени файла на сервер:

А напишем другой вариант, например, используя временное хранилище:

Если внимательно посмотреть код, то легко заметить, что после получения данных из временного хранилища (с типом ДвоичныеДанные) мы вынуждены записать их во временный файл. Другого нормального способа получить данные с типом Строка из временного хранилища попросту нет.

Как видно, вариантов сохранения настроек в файл и чтения настроек из файла очень много, даже в этой статье мы рассмотрели далеко не все, однако эти варианты рабочие и должны сэкономить вам время, когда у вас возникнет такая необходимость.

В прикрепленной ниже внешней обработке используется последний вариант сохранения и чтения настроек через файл из этой статьи, ну и, конечно, автосохранение штатными средствами в информационной базе.

Источник

1С 8.2 Управляемое приложение. Сохранение реквизитов объектов формы.

За основу примера была взята обработка с конкурса БиТа отсюда Результаты конкурса для участников INFOSTART EVENT 2012 от Первого Бита. за что им кстати огромное спасибо.

Итак, обо всем по порядку:

I. Было создано две процедуры:

&НаСервере
Процедура СохранитьНастройки ()

КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Настройки = Новый Соответствие ;

&НаСервере
Процедура ВосстановитьНастройки ()

Если ТипЗнч ( ЗначениеНастроек ) = Тип ( «Соответствие» ) Тогда

II. Затем эти процедуры были прописаны в соответствующих процедурах, выполняющихся при открытии и закрытии формы

&НаКлиенте
Процедура ПриЗакрытии ()

Если же по каким то причинам планируется использовать не типовую или не основанную на БСП конфигурацию, то можно заменить текст процедур ВосстановитьНастройки () и СохранитьНастройки () так :

&НаСервере
Процедура ВосстановитьНастройки ()

КлючОбъекта = «Обработка.ЗадачаПоУТ_11_шаблон» ;
КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
ОписаниеНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Значение = «» ;
ИмяПользователя = «» ;

Если ТипЗнч ( ЗначениеНастроек ) = Тип ( «Соответствие» ) Тогда

&НаСервере
Процедура СохранитьНастройки ()

КлючОбъекта = «Обработка.ЗадачаПоУТ_11_шаблон» ;
КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
ОписаниеНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Значение = «» ;
ИмяПользователя = «» ;

Настройки = Новый Соответствие ;

Как это все работает, можно посмотреть скачав приложенную к статье обработку.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с управляемые формы сообщить
  • 1с управляемые формы редактирование в списке