Сохранение части настроек СКД (структуры) в файл

25.08.15

Разработка - СКД

Это микростатья про частичное сохранение/восстановление настроек СКД в файл.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
СохраненияСтруктуры.epf
.epf 14,79Kb
6 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • Поиск от одного разработчика до ИТ-команд под проект.
  • Обмен любыми контактами разрешён.
  • 0% комиссии, допускаются расчёты напрямую.

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

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

Прочитав в справке, что ГруппировкаКомпоновкиДанных может быть сериализован в/из XDTO. я обрадовался, но ненадолго, т.к. загрузить отдельно настройки группировок невозможно (если для настройек есть метод ЗагрузитьНастройки() то для частей настроек таких методов нет, а как было бы удобно ЗагрузитьНастройкиГруппировок() например )

Осталось два варианта

1) Прочитать из XDTO группировки и отборы, перебрать их и создать

Тут нет ничего сложного. делается это примерно так

КоллекцияСтруктуры=Настройки.Структура;
ГруппировкаКомпоновкиДанных=КоллекцияСтруктуры.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ПоляГруппировки=ГруппировкаКомпоновкиДанных.ПоляГруппировки;
КоллекцияПолей=ПоляГруппировки.Элементы;
ПолеГруппировки=КоллекцияПолей.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Поле=Новый ПолеКомпоновкиДанных("Номенклатура");
ПолеГруппировки.ТипГруппировки=ТипГруппировкиКомпоновкиДанных.Иерархия;

и если бы мне нужно было сохранять только группировки или только отборы, то я бы так и поступил.

Но раз мне по сути нужно оставить "как есть" только параметры, а загружать "всё остальное"

то пришла идея:

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

&НаКлиенте
Процедура СохранитьНастройкиВФайл(Команда)
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	ДиалогВыбораФайла.Заголовок  = "Сохранить в файл (Относительный путь)";
	ДиалогВыбораФайла.Фильтр ="Файл настроек(*.xml)|*.xml";
	ДиалогВыбораФайла.ПредварительныйПросмотр    = Ложь;
	Если ДиалогВыбораФайла.Выбрать() Тогда
		ФайлНастроек=ДиалогВыбораФайла.ПолноеИмяФайла;
	Иначе
		Возврат;
	КонецЕсли;
	Текстxml=ПолучитьТекстXML( Объект.КомпоновщикНастроек.настройки);
	Док=Новый ТекстовыйДокумент;
	Док.УстановитьТекст(Текстxml); 
	Док.Записать(ФайлНастроек); 
КонецПроцедуры

&НаКлиенте
Процедура ВосстановитьНастройкиИзФайла(Команда)
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогВыбораФайла.Заголовок  = "Выберите Файл";
	ДиалогВыбораФайла.Фильтр ="Файл настроек(*.xml)|*.xml";
	ДиалогВыбораФайла.ПредварительныйПросмотр    = Ложь;
	Если ДиалогВыбораФайла.Выбрать() Тогда
		ФайлНастроек=ДиалогВыбораФайла.ПолноеИмяФайла;
	Иначе
		Возврат;
	КонецЕсли;
	Док=Новый ТекстовыйДокумент;
	Док.Прочитать(ФайлНастроек); 
	Текстxml=Док.ПолучитьТекст();
	ПолучитьНастройкуИзXML(Текстxml,Объект.КомпоновщикНастроек.настройки);
КонецПроцедуры

&НаСервере
Функция ПолучитьТекстXML (Знач Настройки) Экспорт
	Текст = "";
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();
	СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Настройки, "settingsComposition", "http://v8.1c.ru/8.1/data-composition-system/settings");
	Текст = ЗаписьXML.Закрыть();
	Возврат Текст;
КонецФункции
&НаСервере
Процедура ПолучитьНастройкуИзXML (ТекстXML,Знач Настройки) Экспорт
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(ТекстXML);
	Настр=СериализаторXDTO.ПрочитатьXML(ЧтениеXML,Тип("НастройкиКомпоновкиДанных"));
	Для Каждого ЭлементСтруктуры Из Настр.ПараметрыДанных.Элементы Цикл
		ЭлНастройки=Настройки.ПараметрыДанных.Элементы.Найти(ЭлементСтруктуры.Параметр);
		Если ЭлНастройки=Неопределено Тогда
			Сообщить("Не верные параметры настроек");
			Продолжить;
		КонецЕсли;
		ЭлементСтруктуры.Значение= ЭлНастройки.Значение;
		ЭлементСтруктуры.Использование=ЭлНастройки.Использование;
	КонецЦикла;
	Объект.КомпоновщикНастроек.ЗагрузитьНастройки(Настр);	
КонецПроцедуры

 

P.S. Я буду рад, если мне подскажут менее "велосипедное решение"


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

Вступайте в нашу телеграмм-группу Инфостарт

СКД Структура Группировки Сохранить Частично

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    255063    1407    421    

1153

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    6315    329    shapa_pro    25    

69

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    18594    ovetgana    112    

111

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    10800    krasnoshchekovpavel    5    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    10334    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    16428    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    14082    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    10854    AlexeyPROSTO_1C    1    

32
Для отправки сообщения требуется регистрация/авторизация