![]() |
![]() |
![]() |
|
Как меняют содержимое константы ПараметрыСлужебныхСобытий? | ☑ | ||
---|---|---|---|---|
0
camojiet
12.11.15
✎
03:20
|
Началось всё с того, что захотел использовать стандартную подсистему печати, для добавления внешних ПФ для созданных мной документах (поверх БП3).
Выяснилось что, документы, для которых можно вставить внешнюю ПФ перечисляются в определённом модуле, и можно добавить свои, если добавить свой обработчик события в ПараметрыСлужебныхСобытий (это хранилище значения, где за несколькими фиксированными массивами и структурами, прячутся обработчики событий). То есть если действовать не как белый человек, то я могу разобрать фиксированные массивы - добавить своё, и собрать обратно. Или повлиять на формирование этих структур. Первый вариант - не факт, что не будет переодически слетать. Копал второй - упёрся в функцию ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем, где прямо в модуле вшиты модули подсистем. Можно ли не меняя стандартных объектов конфигурации вставить свой обработчик? Есть по этой системе (БСП) хорошая литература? |
|||
1
camojiet
12.11.15
✎
04:31
|
Пока сделал по-нигретянски (работает!):
ПараметрыСлужебныхСобытий = Константы.ПараметрыСлужебныхСобытий.Получить().Получить(); ОбработчикиСлужебныхСобытий = ПараметрыСлужебныхСобытий.ОбработчикиСобытий.НаСервере.ОбработчикиСлужебныхСобытий; ОбработчикиСлужебныхСобытийИзм = Новый Соответствие(ОбработчикиСлужебныхСобытий); ОбработчикиИзм = Новый Массив(ОбработчикиСлужебныхСобытийИзм.Получить("СтандартныеПодсистемы.Печать\ПриОпределенииОбъектовСКомандамиПечати")); //-----------------------Проверка на существование этого обработчика ----------------- Для каждого Обработчик ИЗ ОбработчикиИзм Цикл Если Обработчик.Модуль = "ITSP_Серверный" Тогда Возврат; КонецЕсли; КонецЦикла; //-----------------------Проверка на существование этого обработчика ----------------- ОбработчикиИзм.Добавить(Новый ФиксированнаяСтруктура("Модуль, Версия, Подсистема", "ITSP_Серверный","","Стандартные подсистемы")); Обработчики = Новый ФиксированныйМассив(ОбработчикиИзм); ОбработчикиСлужебныхСобытийИзм.Вставить("СтандартныеПодсистемы.Печать\ПриОпределенииОбъектовСКомандамиПечати",Обработчики); ОбработчикиСлужебныхСобытий = Новый ФиксированноеСоответствие(ОбработчикиСлужебныхСобытийИзм); ПараметрыСлужебныхСобытий.ОбработчикиСобытий.НаСервере.ОбработчикиСлужебныхСобытий = ОбработчикиСлужебныхСобытий; Константы.ПараметрыСлужебныхСобытий.Установить(Новый ХранилищеЗначения(ПараметрыСлужебныхСобытий)); В модуле ITSP_Серверный (галка вызов сервера должна быть выключена) Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт СписокОбъектов.Добавить(Документы.ITSP_Отгрузка); КонецПроцедуры Вставил внешнюю ПФ, для своего дока. Встала правильно, в форме стандартные механизмы отрабатывают правильно. Короч всё работает. Перезаходил в базу, константа пока не слетела. Есть подозрение, что может слететь каким-нибудь регламентным заданием, или при обновлении. Пока работаю так, но интересно мнение, людей, которые разбираются в БСП. |
|||
2
ЧеловекДуши
12.11.15
✎
06:13
|
Молодец. Чего сказать то хотел?
>>> Есть по этой системе (БСП) хорошая литература? Смешно, 1С особо не заморачивается на описании своих поделок. Ведь код открыт, бери пофигуратор и вперед :) |
|||
3
camojiet
12.11.15
✎
07:21
|
Надеялся, что может кто-нибудь подскажет вариант получше. Когда делал топик ещё не знал получится или нет. Ну а второй пост - может кому пригодится.
А по части увлекательных путешествий в кунгфугураторе, понятно, что всё описывать не будут. Но должны быть какие-то верхушки айсберга, которые с течением времени не меняются. Например те же "СтандартныеПодсистемы". |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |