1С 8.2 Управляемое приложение. Сохранение реквизитов объектов формы.
За основу примера была взята обработка с конкурса БиТа отсюда Результаты конкурса для участников INFOSTART EVENT 2012 от Первого Бита. за что им кстати огромное спасибо.
Итак, обо всем по порядку:
I. Было создано две процедуры:
&НаСервере
Процедура СохранитьНастройки ()
КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Настройки = Новый Соответствие ;
&НаСервере
Процедура ВосстановитьНастройки ()
Если ТипЗнч ( ЗначениеНастроек ) = Тип ( «Соответствие» ) Тогда
II. Затем эти процедуры были прописаны в соответствующих процедурах, выполняющихся при открытии и закрытии формы
&НаКлиенте
Процедура ПриЗакрытии ()
Если же по каким то причинам планируется использовать не типовую или не основанную на БСП конфигурацию, то можно заменить текст процедур ВосстановитьНастройки () и СохранитьНастройки () так :
&НаСервере
Процедура ВосстановитьНастройки ()
КлючОбъекта = «Обработка.ЗадачаПоУТ_11_шаблон» ;
КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
ОписаниеНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Значение = «» ;
ИмяПользователя = «» ;
Если ТипЗнч ( ЗначениеНастроек ) = Тип ( «Соответствие» ) Тогда
&НаСервере
Процедура СохранитьНастройки ()
КлючОбъекта = «Обработка.ЗадачаПоУТ_11_шаблон» ;
КлючНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
ОписаниеНастроек = «Обработка.ЗадачаПоУТ_11_шаблон» ;
Значение = «» ;
ИмяПользователя = «» ;
Настройки = Новый Соответствие ;
Как это все работает, можно посмотреть скачав приложенную к статье обработку.
Программирование в 1С для всех
В этой статье разберем, как работать с сохранением данных на форме в 1С 8.3.
Сохраняемые данные формы 1С
У любой управляемой формы можно настроить сохранение данных реквизитов формы. Это значит, что форма сохранит данные введенные в поля, которые соответствуют реквизитам, при закрытии формы, а при последующем открытии формы информация в этих полях восстановятся автоматически.
Например, у меня на форме обработки имеются поля, данные в которых сохраняются при закрытии формы и восстанавливаются при последующем открытии.
Это поля Контрагент и Цена.
Для того, чтобы на управляемой форме данные из соответствующих реквизитов сохранялись, необходимо выполнить следующие действия.
Первое. У свойства формы «Автоматическое сохранение данных в настройках» установить значение «Использовать».
Второе. После того, как будет установлено значение в свойство, которое упоминали выше, у реквизитов формы появится колонка «Сохранение». Именно в этой колонке и нужно поставить флажки рядом с теми реквизитами, значения которых мы хотим сохранять при закрытии формы.
После этих действий, данные у отмеченных реквизитов будут сохраняться.
Хранилище настроек в 1С
Вышеприведенный способ позволяет сохранять последние данные, с которыми работали на форме. Но, могут возникнуть ситуации, когда нужно будет сохранять какую-то произвольную комбинацию значений реквизитов, а потом восстановить её. Если рассматривать ситуацию выше, то это может быть комбинация контрагента и цены: для одного контрагента одна цена, для другого другая и т.д.
Для того, чтобы такая возможность имелась, необходимо в свойстве «Хранилище данных настроек» управляемой формы установить значение «Использовать список».
А потом, у нужных реквизитов формы следует установить флаг у свойства «Сохраняемые данные».
После таких изменений, у формы в группе Ещё появятся команды «Сохранить параметры» и «Восстановить параметры».
Теперь мы можем сохранить любую комбинацию реквизитов Контрагент – Цена.
И можем восстановить нужную комбинацию в любой момент работы с формой, а не только при открытии.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Сохранение настроек интерфейса управляемой формы
Здравствуйте, уважаемые гуру!
Возник вопрос следующего характера, касательно управляемых форм: имеется ли возможность сохранять настройку интерфейса управляемой формы для дальнейшего выбора, например, из двух сохраненных настроек? Приведу пример: На управляемой форме 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С:Предприятие поддерживает сохранение различных настроек пользователя между сеансами запуска 1С:Предприятия. К таким настройкам относятся, например, размеры и положение окон, настройки колонок табличных полей, настройки отчетов и т.д. Разработчик конфигурации также может выполнять сохранение средствами встроенного языка значений, являющихся, по своей сути, параметрами настройки пользователя.
Следует отметить, что к параметрам настройки пользователя относятся значения не являющиеся существенными для логики работы системы. Они предназначены для повышения удобства работы пользователей, но не для обеспечения решения самих задач прикладного решения. Соответственно эти значения не хранятся непосредственно в информационной базе. Они не сохраняются при создании резервной копии.
Параметры настройки сохраняются 1С:Предприятием по-разному в зависимости от назначения параметра. Например, параметры, связанные с экранными характеристиками компьютера, хранятся так, чтобы действовать только в пределах данного компьютера, а параметры связанные только с данными и не имеющими отношение к компьютеру хранятся таким образом, чтобы быть доступными при запуске пользователем системы с любого компьютера. Параметры, связанные с конфигурированием сохраняются независимо от информационной базы, так как считается, что разработчик может работать с несколькими информационными базами и несколькими конфигурациями. Параметры работы пользователя в режиме 1С:Предприятия сохраняются для конкретной информационной базы и конкретного пользователя.
Далее описывается расположение файлов, в которых сохраняются различные параметры настройки. Эта информация приводится только в качестве описания работы системы. Не следует осуществлять доступ к данным файлам какими-либо средствами. Механизм сохранения параметров настройки поддерживается системой автоматически и не управляется разработчиком или администратором.
Параметры работы пользователей, сохраняемые между сеансами, хранятся в следующих разрезах:
Для различных параметров используются различные разрезы хранения.
Примеры каталогов приведены для операционных систем Windows2000/XP.
Общее для файлового и клиент-серверного вариантов
Каталоги информационных баз:
Каталоги пользователей информационных баз:
Для файлового варианта
Каталоги информационных баз
Для клиент-серверного варианта
Компьютер, работающий в качестве сервера 1С:Предприятия
Каталоги информационных баз
Решение задач по управляемым формам – тема № 12:
Как при помощи программного кода организовать сохранение настроек обработки
В платформе существуют штатные механизмы сохранения данных формы. Но не всю информацию, размещенную на форме, можно сохранить при помощи этих механизмов. Иногда приходится разрабатывать программный код со своей логикой сохранения значений.
На аттестации может встретиться подобная задача:
В конфигурации создана обработка ВыгрузкаТоваров. В ней добавлена табличная часть Товары с одним реквизитом Номенклатура.
При закрытии формы обработки необходимо обеспечить сохранение в базе строк, введенных в табличную часть Товары. При открытии формы обработки необходимо восстанавливать сохраненные строки.
В каркасной конфигурации создадим обработку ВыгрузкаТоваров. В окне редактирования обработки на закладке Данные создадим табличную часть Товары с реквизитом Номенклатура (тип – СправочникСсылка.Номенклатура):
Рисунок 1 – Структура обработки «ВыгрузкаТоваров»
Как выбрать оптимальный способ сохранения настроек обработки
Рассмотрим, какими способами можно сохранить настройки обработки.
В свойствах формы обработки установим значение свойства СохранениеДанныхВНастройках в значение «Использовать список». Таким образом включается штатный механизм сохранения данных формы:
Рисунок 2 – Свойство формы обработки «Сохранение данных в настройках»
В конструкторе управляемой формы в списке реквизитов в колонке Сохранение можно галочкой отметить, какой реквизит будет сохраняться:
Рисунок 3 – Сохранение значений реквизитов формы
Но табличную часть Товары сохранить при помощи такого механизма нельзя, галочки напротив нее не выставляются. Значит, штатный механизм в данном случае использовать не получится, придется создавать свой механизм сохранения данных.
Требуется выбрать, какой именно механизм использовать для сохранения настроек.
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.