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

1. GennadyOstanin 20.04.17 10:46 Сейчас в теме
Добрый день!

1.Имеется внешний отчет, который встроен как дополнительный в базу стандартной конфигурации 1С:БП 3.0 КОРП.
2.У этого отчета есть целый набор параметров, которые задаются один раз при установке отчета в организации.

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

Желательно задавать/изменять параметры по кнопке в форме отчета, т.к. встраивать эти параметры внутрь отчета нежелательно из-за большого количества организаций и изменения данных (добавление нового склада, например).
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Plash 5 20.04.17 14:02 Сейчас в теме
(1)
Держите
&НаСервере
Процедура СохранитьНастройкиСоединения()
	УстановитьПривилегированныйРежим(Истина);
	СохрНастройки = Новый Структура("ИмяСервера,НазваниеБазыДанных,ИмяПользователя,ПарольПользователя",СокрЛП(Объект.ИмяСервера),СокрЛП(Объект.НазваниеБазыДанных),СокрЛП(Объект.ИмяПользователя),СокрЛП(Объект.ПарольПользователя));
	ХранилищеСистемныхНастроек.Сохранить("текНастройки","текВнешнееХранилище",СохрНастройки,,ПользовательСНастройками());	
КонецПроцедуры


Функция ПолучитьНастройкиСоединения() Экспорт 
	
	УстановитьПривилегированныйРежим(Истина);
	
	Настройки = Новый Структура("ИмяСервера,НазваниеБазыДанных,ИмяПользователя,ПарольПользователя","","","","");
	СохрНастройки   = ХранилищеСистемныхНастроек.Загрузить("текНастройки","текВнешнееХранилище",,ПользовательСНастройками());
	Если СохрНастройки <> Неопределено 
		 И ТипЗнч(СохрНастройки) = Тип("Структура") Тогда
		 
		 ЗаполнитьЗначенияСвойств(Настройки,СохрНастройки);
		 
	КонецЕсли;
	
	Возврат Настройки;
	
КонецФункции

Показать



 ПользовательСНастройками() 
- Или текущий пользователь или общий
2. user633533_encantado 12 20.04.17 10:49 Сейчас в теме
У внешнего отчета есть реквизит "ХранилищеНастроек". Это хранилище значений. Храни все там.
3. GennadyOstanin 20.04.17 13:21 Сейчас в теме
Спасибо! А не подскажете как начать?
Я не нашел как работать с этим хранилищем.
4. user633533_encantado 12 20.04.17 13:31 Сейчас в теме
(3) Нужно написать код, который будет туда сохранять настройки когда надо, и брать их от-туда когда надо.
6. Lord_Kingovich 6 20.04.17 14:20 Сейчас в теме
Добрый день!!!

А может подскажите как сделать следующее. Конфигурация БП 3.0 Типовая, дорабатывать ее не очень хочется. На форме внешнего отчета есть реквизиты настроек и реквизит организация. Надо сделать сохранение настроек привязанных к реквизиту организация, т.е. если выбрать орг1 , то должны подставятся в настройки сохраненные для этой организации, если выбрать орг2,то настройки для нее свои. Можно к пользователю не привязываться, т.к. пользователь может работать с разным набором организаций
12. Plash 5 20.04.17 15:34 Сейчас в теме
(6)
Вообще СП в помощь

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

Используйте ключ настроек типа строкового, в который можно поместить наименование организации.
Имя пользователя тоже строковое, поэтому можно писать все что угодно. Никто не мешает написать "1С" и у вас для всех пользователей будет применяться эти настройки.

Поле для творчества неограничено.
7. Lord_Kingovich 6 20.04.17 14:23 Сейчас в теме
Хотел сделать через хранилеще настроек,но там привязка настроек к пользователям только получается. А надо сделать привязку не только к пользователю или вообще без него, но и к организации.
8. user633533_encantado 12 20.04.17 14:34 Сейчас в теме
Без доработок конфы:

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


Также и записывать туда настройки.
9. Lord_Kingovich 6 20.04.17 14:43 Сейчас в теме
(8) Т.е. если я выберу в реквизите формы нужную мне организацию, то остальные реквизиты формы ( исполнитель, должность доверенность) заполняться настройками в соответствии с этой организации? А если мне надо выбрать вторую организацию, то остальные реквизиты перезаполняться настройками от второй организации? Не вижу в коде привязку к организации.
10. user633533_encantado 12 20.04.17 14:52 Сейчас в теме
(9) Ну тебе прямо все надо разжевать: главное что ты можешь хранить и менять эти настройки. Создай себе любую структура или две или три и обрабатывай и сохраняй как хочешь.

Я если у тебя не хватает фантазии как в структуре хранить разные настройки для разных организаций, то бросай это дело.
11. Lord_Kingovich 6 20.04.17 15:03 Сейчас в теме
Ясно, спасибо и за это, не хочу утруждать.
13. Lord_Kingovich 6 20.04.17 15:53 Сейчас в теме
Спасибо , уже пробую второй день и инфы нормальной нет. Жаль что ключ настроек это строка, а не ссылка. Если поменяется наименование, то сохранение работать не будет. Получается не универсально как то.
14. Plash 5 20.04.17 16:33 Сейчас в теме
(13) Уникальный идентификатор - в эту сторону посмотрите.

Ссылка.УникальныйИдентификатор()
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот