1с сохранить настройку списка

Обновлено: 03.07.2024

Настройки пользователей не сохраняются. 1С: Бухгалтерия 8.1<br><br>Настройки списков в журналах документов (размер колонок), количество копий при печати доверенности, флажок "Спрашивать количество при подборе" в форме подбора номенклатуры и т.п.<br><br>Отчего это?<br>Где хранятся настройки, в общей базе 1Cv8.1CD?<br><br>Как "победить"?<br><br>Спасибо!

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

Татьяна, спасибо за ответ!<br>Да, я понимаю это. Но дело в том, что не сохраняются настройки.<br>Например, настроили ширину колонки номер в журнале счетов.<br>Или не показывать рекламу при запуске.<br>Или "При подборе запрашивать количество".<br>Или печать по умолчанию "Торг-12".<br>Так вот, часто все эти настройки при следующем запуске сбрасываются в настройки по умолчанию, и приходится их настраивать опять.<br><br>В этом суть вопроса: почему настройки перестали сохраняться, и как их сохранить?

Все настройки сохраняются в локальном кэше, там и ищите!

Спасибо! А где находится этот локальный кэш настроек 1с и чем он может портиться?

Запустил тестирование (без исправления) ИБ, по окончани пока все сохраняется.<br>Попробую перезагрузиться.

У меня проблема та-же была, но на 8.0. Все дело было в изменении профилей пользоветелей на диске С. По твоей ссылке даже это объясняется, там говорится, что БОЛЬШИНСТВО НАСТРОЕК хранится в базе, но некоторые хранятся в C:\Documents and Settings\<Имя пользователя>\Application Data\1C\1Cv8\ . <br><br>МИХО с администрированием сервера какие-то проблемы, попробуйте на время нечего с диском С не делать из разряда - архивирование, шифрование. Возможно с правами пользователей на вышеуказанный каталог какая-то муть. В этом направленнии копать нужно!<br>

Идея не моя, я ее только докрутил под себя. Вычитал основу тут.

Основные моменты и предпосылки:

1) Преобразуем настройки списков так, чтобы их можно было сохранять

2) в 95% случаев при открытии формы нам нужно, чтобы восстановилось последнее состояние формы, а не по умолчанию или список выбора сохраненной настройки(которую еще и сохранить до этого нужно было)

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

После небольшой работы мозгами получилось следующее:

в форме пишем такой код:

&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )

ксНастройкиСервер . ВосстановитьНастройкиСписка ( ЭтаФорма );


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

ксНастройкиСервер . СохранитьНастройкиСписка ( ЭтаФорма );

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

Внедряем в конфигурацию общий модуль ксНастройкаСервер с таким содержанием:


//ПРИМЕР ВЫЗОВА ИЗ ФОРМЫ ДЛЯ АВТОНАСТРОЕК
//
//&НаСервере
//Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//
// ксНастройкиСервер.ВосстановитьНастройкиСписка( ЭтаФорма );
//
//КонецПроцедуры
//
//&НаКлиенте
//Процедура ПриЗакрытии()
//
// СохранитьНастройкиСписка();
//
//КонецПроцедуры
//
//Процедура СохранитьНастройкиСписка()
//
// ксНастройкиСервер.СохранитьНастройкиСписка( ЭтаФорма );
//
//КонецПроцедуры

Процедура СохранитьНастройкиСписка ( пФорма , пИмяСписка = "" ) Экспорт

Настройки = Новый Соответствие ;
ПриСохраненииДанныхВНастройках ( Настройки , пФорма , пИмяСписка );

ХранилищеНастроекДанныхФорм . Сохранить ( пФорма . ИмяФормы ,, Настройки );

Процедура ВосстановитьНастройкиСписка ( пФорма , пИмяСписка = "" ) Экспорт

Настройки = ХранилищеНастроекДанныхФорм . Загрузить ( пФорма . ИмяФормы );

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

ПриЗагрузкеДанныхИзНастроек ( Настройки , пФорма , пИмяСписка );


Процедура ПриСохраненииДанныхВНастройках ( Настройки , пФорма , пИмяСписка = "" ) Экспорт

Если ЗначениеЗаполнено ( пИмяСписка ) Тогда

УстановитьНастройкиДинСпискаВСоответствиие ( Настройки , пФорма [ имяСписка ], пИмяСписка );

Процедура УстановитьНастройкиДинСпискаВСоответствиие ( пСоответствие , пСписок , пИмяСписка = "" )

префиксКлюча = ПрефиксКлючаНастроекСписка ( пИмяСписка );

пСоответствие . Вставить ( префиксКлюча + "Группировка" , СериализоватьГруппировки ( пСписок . Группировка ) );
пСоответствие . Вставить ( префиксКлюча + "Отбор" , СериализоватьОтбор ( пСписок . Отбор ) );
пСоответствие . Вставить ( префиксКлюча + "Порядок" , СериализоватьПорядок ( пСписок . Порядок ) );
пСоответствие . Вставить ( префиксКлюча + "УсловноеОформление" , СериализоватьУсловноеОформление ( пСписок . УсловноеОформление ) );

Функция ПрефиксКлючаНастроекСписка ( пИмяСписка )

Если ЗначениеЗаполнено ( пИмяСписка ) Тогда

префиксКлюча = пИмяСписка + "_" ;


Процедура ПриЗагрузкеДанныхИзНастроек ( Настройки , пФорма , пИмяСписка = "" ) Экспорт

Если ЗначениеЗаполнено ( пИмяСписка ) Тогда

УстановитьНастройкиИзСоответствияВДинСписок ( Настройки , пФорма [ имяСписка ], пИмяСписка );

Процедура УстановитьНастройкиИзСоответствияВДинСписок ( пСоответствие , пСписок , пИмяСписка = "" )

префиксКлюча = ПрефиксКлючаНастроекСписка ( пИмяСписка );

ДесериализоватьГруппировки ( пСоответствие [ префиксКлюча + "Группировка" ] , пСписок . Группировка );
ДесериализоватьОтбор ( пСоответствие [ префиксКлюча + "Отбор" ] , пСписок . Отбор );
ДесериализоватьПорядок ( пСоответствие [ префиксКлюча + "Порядок" ] , пСписок . Порядок );
ДесериализоватьУсловноеОформление ( пСоответствие [ префиксКлюча + "УсловноеОформление" ] , пСписок . УсловноеОформление );


// Группировки
Функция СериализоватьГруппировки ( пГруппировки )

ЗаписьXML = Новый ЗаписьXML ();
ЗаписьXML . УстановитьСтроку ();
ЗаписьXML . ЗаписатьНачалоЭлемента ( "Группировки" );
Для Каждого цЭлементГруппировки Из пГруппировки . Элементы Цикл
СериализаторXDTO . ЗаписатьXML ( ЗаписьXML , цЭлементГруппировки );
КонецЦикла;
ЗаписьXML . ЗаписатьКонецЭлемента ();
Возврат ЗаписьXML . Закрыть ();

Процедура ДесериализоватьГруппировки ( пНастройки_Группировка , пГруппировка )

пГруппировка . Элементы . Очистить ();
Если пНастройки_Группировка <> Неопределено Тогда
ЧтениеXML = Новый ЧтениеXML ();
ЧтениеXML . УстановитьСтроку ( пНастройки_Группировка );
ЧтениеXML . ПерейтиКСодержимому ();
Если ЧтениеXML . ТипУзла = ТипУзлаXML . НачалоЭлемента И ЧтениеXML . Имя = "Группировки" Тогда
ЧтениеXML . Прочитать ();
Пока ЧтениеXML . ТипУзла <> ТипУзлаXML . КонецЭлемента И ЧтениеXML . Имя <> "Группировки" Цикл
ПолеГруппировкиXML = СериализаторXDTO . ПрочитатьXML ( ЧтениеXML );
ПолеГруппировки = пГруппировка . Элементы . Добавить ( Тип ( "ПолеГруппировкиКомпоновкиДанных" ));
ЗаполнитьЗначенияСвойств ( ПолеГруппировки , ПолеГруппировкиXML );
КонецЦикла;
КонецЕсли;
КонецЕсли;

Функция СериализоватьПорядок ( пПорядок )

ЗаписьXML = Новый ЗаписьXML ();
ЗаписьXML . УстановитьСтроку ();
ЗаписьXML . ЗаписатьНачалоЭлемента ( "Порядок" );
Для Каждого цЭлементПорядка Из пПорядок . Элементы Цикл
СериализаторXDTO . ЗаписатьXML ( ЗаписьXML , цЭлементПорядка );
КонецЦикла;
ЗаписьXML . ЗаписатьКонецЭлемента ();
Возврат ЗаписьXML . Закрыть ();

Функция ДесериализоватьПорядок ( пНастройки_Порядок , пПорядок )

пПорядок . Элементы . Очистить ();
Если пНастройки_Порядок <> Неопределено Тогда
ЧтениеXML = Новый ЧтениеXML ();
ЧтениеXML . УстановитьСтроку ( пНастройки_Порядок );
ЧтениеXML . ПерейтиКСодержимому ();
Если ЧтениеXML . ТипУзла = ТипУзлаXML . НачалоЭлемента И ЧтениеXML . Имя = "Порядок" Тогда
ЧтениеXML . Прочитать ();
Пока ЧтениеXML . ТипУзла <> ТипУзлаXML . КонецЭлемента И ЧтениеXML . Имя <> "Порядок" Цикл
ПолеПорядкаXML = СериализаторXDTO . ПрочитатьXML ( ЧтениеXML );
ПолеПорядка = пПорядок . Элементы . Добавить ( ТипЗнч ( ПолеПорядкаXML ));
ЗаполнитьЗначенияСвойств ( ПолеПорядка , ПолеПорядкаXML );
КонецЦикла;
КонецЕсли;
КонецЕсли;

Функция СериализоватьОтбор ( пОтбор )

ЗаписьXML = Новый ЗаписьXML ();
ЗаписьXML . УстановитьСтроку ();
ЗаписьXML . ЗаписатьНачалоЭлемента ( "Отборы" );
Для Каждого цЭлементОтбора Из пОтбор . Элементы Цикл
СериализаторXDTO . ЗаписатьXML ( ЗаписьXML , цЭлементОтбора );
КонецЦикла;
ЗаписьXML . ЗаписатьКонецЭлемента ();
Возврат ЗаписьXML . Закрыть ();

Процедура ДесериализоватьОтбор ( пНастройки_Отбор , пОтбор )

пОтбор . Элементы . Очистить ();
Если пНастройки_Отбор <> Неопределено Тогда
ЧтениеXML = Новый ЧтениеXML ();
ЧтениеXML . УстановитьСтроку ( пНастройки_Отбор );
ЧтениеXML . ПерейтиКСодержимому ();
Если ЧтениеXML . ТипУзла = ТипУзлаXML . НачалоЭлемента И ЧтениеXML . Имя = "Отборы" Тогда
ЧтениеXML . Прочитать ();
Пока ЧтениеXML . ТипУзла <> ТипУзлаXML . КонецЭлемента И ЧтениеXML . Имя <> "Отборы" Цикл
ПолеОтбораXML = СериализаторXDTO . ПрочитатьXML ( ЧтениеXML );
ПолеОтбора = пОтбор . Элементы . Добавить ( ТипЗнч ( ПолеОтбораXML ));
СкопироватьЭлементыОтбораРекурсивно ( ПолеОтбораXML , ПолеОтбора );
//ПолеОтбора.Поле = ПолеОтбораXML.Поле;
КонецЦикла;
КонецЕсли;
КонецЕсли;

Процедура СкопироватьЭлементыОтбораРекурсивно ( пОтборОткуда , пОтборКуда );

ЗаполнитьЗначенияСвойств ( пОтборКуда , пОтборОткуда );
Если ТипЗнч ( пОтборОткуда ) = Тип ( "ГруппаЭлементовОтбораКомпоновкиДанных" ) Тогда
Для Каждого ЭлементОтбора Из пОтборОткуда . Элементы Цикл
НовыйЭлементОтбора = пОтборКуда . Элементы . Добавить ( ТипЗнч ( ЭлементОтбора ));
СкопироватьЭлементыОтбораРекурсивно ( ЭлементОтбора , НовыйЭлементОтбора );
КонецЦикла;
КонецЕсли;

Функция СериализоватьУсловноеОформление ( пУсловноеОформление )

ЗаписьXML = Новый ЗаписьXML ();
ЗаписьXML . УстановитьСтроку ();
ЗаписьXML . ЗаписатьНачалоЭлемента ( "УсловноеОформление" );
Для Каждого цЭлементУсловногоОформления Из пУсловноеОформление . Элементы Цикл
СериализаторXDTO . ЗаписатьXML ( ЗаписьXML , цЭлементУсловногоОформления );
КонецЦикла;
ЗаписьXML . ЗаписатьКонецЭлемента ();
Возврат ЗаписьXML . Закрыть ();

Функция ДесериализоватьУсловноеОформление ( пНастройки_УсловноеОформление , пУсловноеОформление )

пУсловноеОформление . Элементы . Очистить ();
Если пНастройки_УсловноеОформление <> Неопределено Тогда
ЧтениеXML = Новый ЧтениеXML ();
ЧтениеXML . УстановитьСтроку ( пНастройки_УсловноеОформление );
ЧтениеXML . ПерейтиКСодержимому ();
Если ЧтениеXML . ТипУзла = ТипУзлаXML . НачалоЭлемента И ЧтениеXML . Имя = "УсловноеОформление" Тогда
ЧтениеXML . Прочитать ();
Пока ЧтениеXML . ТипУзла <> ТипУзлаXML . КонецЭлемента И ЧтениеXML . Имя <> "УсловноеОформление" Цикл
ПолеУсловногоОформленияXML = СериализаторXDTO . ПрочитатьXML ( ЧтениеXML );
ПолеУсловногоОформления = пУсловноеОформление . Элементы . Добавить ();
ЗаполнитьЗначенияСвойств ( ПолеУсловногоОформления , ПолеУсловногоОформленияXML );
Для Индекс = 0 по ПолеУсловногоОформленияXML . Оформление . ДоступныеПараметры . Элементы . Количество ()- 1 Цикл
ЗаполнитьЗначенияСвойств ( ПолеУсловногоОформления . Оформление . ДоступныеПараметры . Элементы [ Индекс ],
ПолеУсловногоОформленияXML . Оформление . ДоступныеПараметры . Элементы [ Индекс ]);
КонецЦикла;
Для Индекс = 0 по ПолеУсловногоОформленияXML . Оформление . Элементы . Количество ()- 1 Цикл
ЗаполнитьЗначенияСвойств ( ПолеУсловногоОформления . Оформление . Элементы [ Индекс ],
ПолеУсловногоОформленияXML . Оформление . Элементы [ Индекс ]);
КонецЦикла;
Для каждого ЭлементОтбораXML ИЗ ПолеУсловногоОформленияXML . Отбор . Элементы Цикл
ЭлементОтбора = ПолеУсловногоОформления . Отбор . Элементы . Добавить ( ТипЗнч ( ЭлементОтбораXML ));
СкопироватьЭлементыОтбораРекурсивно ( ЭлементОтбораXML , ЭлементОтбора );
КонецЦикла;
Для каждого ПолеXML ИЗ ПолеУсловногоОформленияXML . Поля . Элементы Цикл
Поле = ПолеУсловногоОформления . Поля . Элементы . Добавить ();
ЗаполнитьЗначенияСвойств ( Поле , ПолеXML );
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;

Видеоролик выполнен в программе «1С:Бухгалтерия 8» версия 3.0.91.36.

Настройка списка документов (например, списка документов реализации или документов поступления) выполняется по команде Еще – Настроить список.

В открывшейся форме Настройка списка можно настроить:

  • отбор данных в списке;
  • поля, по которым необходимо отсортировать документы;
  • условное оформление списка;
  • поля, по которым необходимо группировать данные;
  • другие настройки.

Выполненные настройки автоматически сохраняются при закрытии формы списка и автоматически загружаются при открытии формы в новом сеансе работы.

Сохранение настроек списка выполняется по команде Еще – Сохранить настройки…

В открывшемся диалоге следует ввести название настройки и нажать на кнопку Сохранить.

Вернуть настройки списка по умолчанию можно командой Еще – Установить стандартные настройки.

Для выбора сохраненных настроек служит команда Еще – Выбрать настройки. В открывшемся диалоге следует найти требуемую настройку среди ранее сохраненных настроек и нажать на кнопку Выбрать.

Примеры настроек списка см. здесь и здесь.

Чтобы ускорить выбор ранее сохраненных настроек списка документов можно вывести в командную панель кнопку выбора настроек. Для этого следует воспользоваться командой Еще - Изменить форму.

В окне Настройка формы необходимо проделать следующие действия:

  • открыть последовательно элементы формы: Командная панель – Кнопки командной панели – Настройки – Выбрать настройки;
  • в свойствах элемента формы в поле Отображение выбрать значение Картинка;
  • установить флаг Активизировать при открытии;
  • в поле Положение кнопки в командной панели выбрать значение В командной панели;
  • сохранить настройки кнопкой ОК.

В командной панели появляется кнопка Выбрать настройки, с помощью которой можно выбирать ранее сохраненные настройки быстрее.

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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