1с динамический список сохранение настроек

Обновлено: 07.07.2024

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

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

выдает ошибку
: Переменная не определена (ХранилищеНастроекДанныхФорм)
<<?>>ХранилищеНастроекДанныхФорм.Сохранить( пФорма.ИмяФормы,, Настройки ); (Проверка: Тонкий клиент)
: Переменная не определена (ХранилищеНастроекДанныхФорм)
Настройки = <<?>>ХранилищеНастроекДанныхФорм.Загрузить( пФорма.ИмяФормы ); (Проверка: Тонкий клиент)
(1) Модуль ксНастройкаСервер должен быть только серверным, а у тебя он еще и клиентский Надо делать универсальнее. Для каждого пользователя свои настройки. Судя по коду у всех пользователей одни настройки. (4) 1) у каждого пользователя для каждой формы свои настройки, можешь глянуть в СП метод Сохранить для ХранилищаНастроекДанныхФормы
2) я против универсализации, мне нравятся простые изолированные механизмы, которые решают конкретную задачу
3) Механизм изначально был создан под собственное хранилище данных со своим справочником, где хранились настройки с возможностью поделится и своими формами сохранения/восстановления. В таком виде никто не стал пользоваться сохранением из за необходимости чего то там настраивать и меньшей прозрачности Привет! Помоги решить обратную задачу: есть табличная часть в 30 колонок. пользователь сдуру сдвинул колонку. Закрыл, открыл документ колонка не вернулась в нормальное положение.
Установка Ширины колонки при создании на сервере не помогает.
Очистка хеша --- не вариант. Поможет, но сие считаю неправильным подходом. (6) если упр. форма, то там в настройках формы есть кнопка для сброса настроек формы в по-умолчание, если обычная, то у табличного поля в настройках списка тоже есть такая кнопка Хотел внедрить в фирме, но когда начал объянснять бухам, энтузиазма не последовало, хотя до этого часто сетовали на забывчивость 8,2 в списках- перескоку на первый элемент в таблицах документов, справочников и т.п. ))) (8) "Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь." (с) Генри Форд Я так понимаю, что сохраняются текущие настройки. А как бы сделать чтоб была возможность выбора вариантов, в идеале конечно на подобие отчетов "выбрать/сохранить вариант." А как бы сделать чтоб была возможность выбора вариантов, в идеале конечно на подобие отчетов "выбрать/сохранить вариант."

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

Уточните пожалуйста, что за список задач, не вижу в конфигурации такого. Где можно посмотреть оба варианта реализации? Спасибо. (12) в конфигурации на объекте Задача.упЗадача.ФормаСписка. Там есть сохранения через платформенное сохранение в списке и самописное через механизм статистик (на левой панели они) (13) Автоматом восстанавливается, а вот с вариантами не получается почему-то.
Из вашей конфы я понял, что вызывается "ПриЗагрузкеДанныхИзНастроек". Но вы там используете Хранилище настроек, без него Варианты настроек не реализовать? Чтоб использовались типовые формы и механизмы сохранения/восстановления!! (14) на хранилище настроек собственно и хранятся настройки формы. Можно и без него, но тогда придется весь этот механизм самому писать Сваял свой вариант:
Общий модуль "глНастройкиСписковСервер" (сервер, вызов сервера)

Форма списка (АвтоматическоеСохранениеДанныхФормыВНастройках = Использовать, СохранениеДанныхФормыВНастройках = Использовать список)

(17) в 8.3 стало еще проще.

1) Настройки теперь сохраняются и восстанавливаются самостоятельно

2) аналогичный код теперь выглядит так:


Пытался вставить в Бух. 3.0 - ругается на упКэш.Это8_3() . (19) а я чот на автомате. завтра посмотрю как работает без сериализации (19) Действительно работает и без сериализации. Теперь стало вообще не интересно Внимательно код не изучал. Есть ли проверка, на случай удаления реквизита, который был сохранен в настройках ранее? В версии 8.3 сохраняются настройки типа "режим просмотра", а есть ли возможность в версии 8.2 задать настройки так, чтобы программа сохраняла "режим просмотра" последний установленный (или хотя бы при открытии объекта, например "номенклатура" режим просмотра устанавливался на "дерево")?

почерпнул информацию о данных формы, хоть этим пригодилось.

А я лично делаю так для сохранения табличных частей отчета:
:

Антон, добрый день!

Спасибо огромное!
Для УПП, в которой управляемые формы как что-то неестественное и потустороннее, твой метод самый действенный и боевой.

Отлично кроме момента. Платформа 1С:Предприятие 8.3 (8.3.9.1850) в управляемой форме с несколькими динамическими списками
вышла ошибка (см прикл файл) в функции ДесериализоватьУсловноеОформление:


Нужно добавить пропускать заполнение параметра ДоступныеЗначения

(28) 8.3 умеет штатно сохранять/восстанавливать настройки списков. Этот костыль там не нужен (29) у меня не работает штатное. Скорее всего потому что конфигурация "Управление торговлей", редакция 10.3" и там совместимость стоит с 8,2. Отборы сохраняются кроме например галки использовать да /нет И еще момент на форме три динамических списка (форма регистра сведений). Так вот настройки Динам. списка который основной реквизит сохраняет, других нет, а именно не сохраняются флажки использовать например в отборе

Всем привет.
Мне недавно понадобилось сделать динамический список в документе. Отборы динамического списка должны сохраняться прямо в документе (реквизит ОтборЗатратыРаспределенные с типом хранилище значения), т.к. в каждом документе отборы уникальны. И, соответственно, они должны подгружаться при открытии документа, что бы пользователь видел, что он там отбирал, и на основании каких данных динамического списка были заполнены табличные части документа.

Сперва о сохранении настроек, тут всё элементарно. Используем процедуру ПослеЗаписиНаСервере. Пытался сделать перед записью через РеквизитФормыВЗначение, но, почему-то, не получалось.

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

  • Вариант 1. На форме есть динамический список с отбором. Необходимо при открытии этой формы восстанавливать отборы, настроенные пользователем ранее.
  • Вариант 2. Необходимо полностью или частично перенести настройки между схемами компоновки, компоновщиками настроек, динамическими списками.

Пример сохранения отборов для динамического списка.
- Создадим на форме динамический список СписокКонтрагенты.
- Выведем отбор списка в виде поля
- Создадим реквизит формы СписокКонтрагентыОтборСохранение с типом Произвольный


- При изменении отбора будем записывать новый отбор в реквизит СписокКонтрагентыОтборСохранение
- При восстановлении настроек будем заполнять отбор из сохраненного реквизита


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

2. Предопределенные отборы динамических списков

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

Пример решения.
- Все предопределенные условия помещаем в группу "И".
- У этой группы задаем некое предопределенное представление
- Перед установкой отбора ищем предопределенную группу и удаляем ее
- Затем создааем ее снова и помещаем в нее все необходимые условия


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

Заключение

Тестировалось на платформе 8.3.8+, режим совместимости 8.2.13+. Но описанные приемы должны работать и на более ранних версиях 1С 8.

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

.
А в настройках совсем другие значения (нужные значения)
.
Так вот, как получить нужные значения? или где копать хотя бы? __________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как связать звено элемента динамического списка с выбранным элементом из списка?
как связать звено элемента динамического списка с выбранным элементом из списка в коде? .


Отбор записей динамического списка по выбранному значению отбора в виде выпадающего списка
Здравствуйте, имеется справочник с реквизитами: ДатаНачала, Продолжительность, Стоимость.

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

или может есть какой-то другой способ сохранять отборы?

ЛюбознательнаяЯ, Что-то код непонятный. Не разбирался конкретно, но в СП заглянул - абсолютно не то.

СтандартноеХранилищеНастроекМенеджер (StandardSettingsStorageManager)
ПолучитьСписок (GetList)
Синтаксис:

ПолучитьСписок(<КлючОбъекта>, <ИмяПользователя>)
Параметры:

Тип: Строка.
Ключ объекта настройки.
Подробнее см. в Настройки, автоматически сохраняемые в системном хранилище.
<ИмяПользователя> (необязательный)

Тип: Строка.
Имя пользователя, настройки которого получаются.
Если не указан, то получаются настройки текущего пользователя.
Если указан пользователь, не являющийся текущим пользователем, т.е. делается попытка обратиться к настройкам, не принадлежащим текущему пользователю, то требуется наличие у текущего пользователя права АдминистрированиеДанных .
Возвращаемое значение:

Получает список настроек из хранилища.
Значениями элементов списка являются ключи настроек.

Сервер, толстый клиент, внешнее соединение.

А дальше смотрим куда предлагает СП - !см. в Настройки, автоматически сохраняемые в системном хранилище"

Настройки динамического списка:

Хранилище Пользовательских настроек динамического списка
<Имя формы>
+ "." + <Имя реквизита>

Как это сделать ?

Заранее огромное спасибо .

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Не открываются ранее сохраненные проекты
Первая попытка открыть ранее сохраненный проект(даже пустое консольное приложение) вызывает ошибку.

Mozilla Firefox: сохраненные ранее логин и пароль
Добрый день всем. У меня такой вопрос: а возможно ли и как (где)это сделать, чтобы найти в этом.

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


Как удалить сохраненные значения в окне Выполнить
Как удалить этот список?

Решение

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

Ну и зачем? Если такая настройка помогает пользователю, то зачем он будет ее менять?

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

Ну и вариант решения - это настройки дин. списка задавать программно при создании формы.

Решение

Можно же отключить отображение этого. Клацнуть на дин. список (слева сверху в дереве элементов формы) в конструкторе формы и найти в свойствах "Состав команд", нажать открыть и там убрать галочку с Настроить список.

Про очистку. Варианты следующие:
1. ОчиститьНастройкиПользователя(. ) - в помощнике в разделе Глобальный контекст
2. C:\Users\ИмяКомпа\AppData\Roaming\1C\1cv8\ - там тьма папок. В каждой папке есть файлик logui.txt - там лежит название конфигурации. Можно их пробовать удалять, там часть настроек должна лежать. Ну это для файловых баз.
3. Ещё бабка нашептала (яндекс), что возможно, для серверных баз, часть настроек пользователей лежит именно там.


Эх, как хорошо было в обычных формах: что поставил - то и есть. Пользователю вообще вредно давать свободу, как по мне. Мне вот приходилось убирать отображение кнопки открыть у реквизитов на форме, ибо они открывали текущий элемент и меняли в нем значение на нужное =))))

Читайте также: