Меню

1с сбросить настройки динамического списка

Как установить стандартные настройки динамического списка средствами встроенного языка?

Доброго времени суток.
Платформа 8.2\8.3 (управляемое приложение)
Есть форма выбора элементов справочника (динамический список). Нужно установить стандартные настройки списка. Интерактивно все просто: Все действия – Установить стандартные настройки.
Но как это сделать в коде? Например если требуется при открытии формы всегда устанавливать стандартные настройки.
Спасибо.

Если тебе совсем не важны пользовательские настройки, то при открытии формы добавь строчку:

, где список — твой динамический список

если важны, то копай Список.КомпоновщикНастроек.ПользовательскиеНастройки

Читают тему:

Мероприятия

  • Центры Сертифицированного Обучения
  • Интернет курсы обучения «1С»
  • Самоучители
  • Учебный центр № 1
  • Учебный центр № 3
  • Сертификация по «1С:Профессионал»
  • Организация обучения под заказ
  • Книги по 1С:Предприятию

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

  • WWW.1С.ru
  • 1С:Предприятие 8
  • 1С Отраслевые решения
  • Образовательные программы
  • 1С:Линк
  • 1С:Консалтинг
  • 1С:Дистрибьюция
  • 1С для торговли
  • 1С-Онлайн
  • 1С Интерес
  • 1С:Образование

При использовании материалов активная прямая гиперссылка на перепечатанный материал обязательна.

Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.

Редакция уважает мнение авторов, но не всегда разделяет его.

На указанный в форме e-mail придет запрос на подтверждение регистрации.

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

источник

Программное управление пользовательскими настройками динамического списка

Визуально то, что было, и то, как хотел заказчик, можно увидеть из скриншотов. Теперь распишем программную реализацию.

Сперва рассмотрим заполнение этого подменю пунктами с названиями настроек. В этом нам поможет событие динамического списка » ПриОбновленииСоставаПользовательскихНастроекНаСервере»:

Лис_Настройки — группа-подменю, добавленная на командную панель списка, в моем случае имеет заголовок «Фильтры».

Лис_ИдентификаторыКомандНастроек — таблица значений в реквизитах формы. Имеет в колонки:

1) Команда — тип «Строка». Содержит название команды.

2) Идентификатор — тип «Строка». Содержит идентификатор этой команды.

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

Далее идет процедура программного наполнения подменю командами:

Теперь рассмотрим код на исполнение через эти команды:

ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка описана в типовых модулях УТ11, у меня установлен релиз Управление торговлей, редакция 11.2 (11.2.2.100).

источник

Сохранение/восстановление настроек динамического списка

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

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

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 );
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;

источник

Читайте также:  как скинуть все настройки роутера dir 620