Содержание:
Иногда возникает необходимость сохранить какие-то данные во внешней обработке. В моем случаи необходимо было хранить сотрудника, на чей e-mail будет отправляться письмо сформированное в обработке.
Данная задача была реализована через “ХранилищеНастроек“. Более подробно можно почитать на ИТС, например для БСП 3.1.7 тут. Ниже приведен листинг кода с примером. Так же, в конце статьи доступен пример обработки для скачивания.
1. Получение данных из “ХранилищеНастроек”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Параметр ДополнительнаяОбработкаСсылка будет уже заполнен, если внешняя обработка добавлена в базу // Параметры.ДополнительнаяОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Наименование внешней обработки"); Если НЕ ЗначениеЗаполнено(Параметры.ДополнительнаяОбработкаСсылка) Тогда Сообщить("Не найдена внешняя обработка"); Возврат; КонецЕсли; ХранилищеНастроек = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ДополнительнаяОбработкаСсылка, "ХранилищеНастроек"); Настройки = ХранилищеНастроек.Получить(); Если Настройки <> Неопределено И Настройки.Свойство("Сотрудник") Тогда Объект.Сотрудник = Настройки.Сотрудник; КонецЕсли; |
2. Сохранение данных в “ХранилищеНастроек”
1 2 3 4 5 6 7 8 9 10 11 12 |
Если НЕ ЗначениеЗаполнено(Параметры.ДополнительнаяОбработкаСсылка) Тогда Сообщить("Не найдена внешняя обработка"); Возврат; КонецЕсли; СохраняемоеЗначение = Новый Структура; СохраняемоеЗначение.Вставить("Сотрудник", Объект.Сотрудник); ДополнительнаяОбработкаОбъект = Параметры.ДополнительнаяОбработкаСсылка.ПолучитьОбъект(); ДополнительнаяОбработкаОбъект.ХранилищеНастроек = Новый ХранилищеЗначения(СохраняемоеЗначение); ДополнительнаяОбработкаОбъект.Записать(); |
Данные настройки будут доступны для всех пользователей.
Файлы материала
Для проверки необходимо добавить обработку, как внешнюю, в разделе “Дополнительные отчеты и обработки”, иначе параметр “ДополнительнаяОбработкаСсылка” с типом “СправочникСсылка.ДополнительныеОтчетыИОбработки” будет пустым.