|
Как узнать кто вызвал подписку на событие ↓ (Волшебник 22.02.2024 09:54) |
☑ | ||
---|---|---|---|---|
0
UstyakAnd
21.02.24
✎
17:55
|
Задача. При выборе организаций в справочниках и документах, организации быть не должно, но в отчетах она должна выбираться. Сделали подписку на событие, в котором добавляется проверка на "Неиспользуемость" организации, возникла проблема - в отчетах при выборе организации также действует подписка. Нужно или узнать что вызов из отчета, или решить вопрос другим методом. Можно как-то узнать в подписке, кто инициировал событие?
|
|||
1
Волшебник
21.02.24
✎
18:17
|
чушь
|
|||
2
Волшебник
21.02.24
✎
19:02
|
какую подписку Вы сделали? На какое событие?
у подписки есть источник Запрет выбора неиспользуемой организации в элементах справочников и документов надо реализовать в подписке Запись для документов. Для организации установите пометку на удаление (свойство ПометкаНаУдаление, стандартный реквизит типа булево). Это и есть пометка на используемость элемента справочника в 1С, да будет вам известно. |
|||
3
steep1
22.02.24
✎
07:32
|
(0) Сделайте галочку в организация - активна и сделайте по ней отбор в тех. местах где вам нужно
|
|||
4
Valdis2007
22.02.24
✎
07:39
|
(0) в подписку приходит объект-источник
|
|||
5
Valdis2007
22.02.24
✎
07:40
|
(0) но эту проблему, как ты описал - подписками не решают
|
|||
6
YFedor
22.02.24
✎
09:07
|
Это отдельное умение так описать проблему, чтобы никто не понял.
Хорошим тоном будет прочитать свое сообщение прежде чем отправить и подумать: "а человек не знакомый с проблемой сможет понять ее из этого описания?" |
|||
7
UstyakAnd
22.02.24
✎
10:15
|
Подписка ОбработкаПолученияДанныхВыбора для справочника Организация. В ней устанавливался фильтр на доп. реквизит "Неиспользуемый", который позволял отфильтровать неиспользуемые организации, чтобы при выборе организации в документах, справочниках, отчетах.
Проблема решена умным человеком, (не мной) с помощью механизма, о котором я даже не подозревал. В параметры, передаваемые в подписку передавался дополнительный семафорный параметр, позволяющий понять, что выбор производится в отчете. |
|||
8
Волшебник
22.02.24
✎
10:34
|
тупизна...
|
|||
9
Valdis2007
22.02.24
✎
10:41
|
(7) "Проблема решена умным человеком, (не мной)"...Чатом гпт?))
|
|||
10
1Снеговик
22.02.24
✎
11:22
|
(7) ОбработкаПолученияДанныхВыбора - это событие поля ввода на форме.
|
|||
11
evorle145
22.02.24
✎
13:53
|
(0) " При выборе организаций в справочниках и документах, организации быть не должно, но в отчетах она должна выбираться" это решается с помощью наложения фильтров на значение ДанныеВыбора в процедуре:
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Сама процедура описывается в модуле менеджера справочника Организации. И будет работать как вам и нужно: в документах, в журналах, в списках - не используемые организации пропадут (даже если текстом их пытаться набрать). Но в типовых отчетах типа ОСВ - останутся, ибо там это событие не будет вызываться. |
|||
12
UstyakAnd
22.02.24
✎
14:10
|
Спасибо, сегодня проверю!
|
|||
13
evorle145
22.02.24
✎
14:23
|
(12) вот прям можете расширение сделать и там в модуле менеджера организации сделать:
&Вместо("ОбработкаПолученияДанныхВыбора") Процедура ITОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Организации.Ссылка КАК Ссылка, | Организации.Наименование КАК Наименование |ИЗ | Справочник.Организации КАК Организации | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ITОрганизацииСкрытыеИзСписка КАК ITОрганизацииСкрытыеИзСписка | ПО Организации.Ссылка = ITОрганизацииСкрытыеИзСписка.Организация |ГДЕ | ITОрганизацииСкрытыеИзСписка.Организация ЕСТЬ NULL | И Организации.Наименование ПОДОБНО &СтрокаПоиска | |УПОРЯДОЧИТЬ ПО | Наименование"; Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%"); Выборка = Запрос.Выполнить().Выбрать(); ОрганизацииСкрытыеИзСписка = Новый СписокЗначений; Пока Выборка.Следующий() Цикл ОрганизацииСкрытыеИзСписка.Добавить(Выборка.Ссылка, Выборка.Наименование); КонецЦикла; ДанныеВыбора = ОрганизацииСкрытыеИзСписка; Параметры.ПолнотекстовыйПоиск = ПолнотекстовыйПоискПриВводеПоСтроке.Использовать; КонецПроцедуры ну или через реквизит, тут уж как вам больше нравится. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |