Имя: Пароль:
1C
1С v8
Подписка на событие перед записью справочников.
,
0 Assena
 
03.12.12
15:00
Доброго времени, уважаемые!
Есть подписка на событие перед записью всех справочников. Хочется мне при определенных условиях менять родителя элемента. Подскажите, как обратиться к справочнику, имея в переменной Источник объект этого справочника? Можно получить объект метаданных
Справочник=Источник.Метаданные();    
а дальше как быть с этим объектом
Источник.Родитель=?
1 shuhard
 
03.12.12
15:02
(0) объект метаданных для этого нафиг не нужен
2 Assena
 
03.12.12
15:04
(1) хорошо, не нужен, как быть тогда? посоветуйте
3 Лефмихалыч
 
03.12.12
15:04
Если ТипЗнч(Источник) = Тип("СправочникОбъект.Номенклатура") Тогда

или


Если Источник.Метаданные().Имя = "Номенклатура" Тогда
4 Лефмихалыч
 
03.12.12
15:06
Но лучше руками источник поставить такой, в котором надо менять родителя. Иначе горя хапнешь года-нибдуь, когда забудешь про эту подписку
5 Assena
 
03.12.12
15:06
(3) хмм... и так про каждый справочник?... а более универсального способа обращения к любому справочнику нет?
6 Лефмихалыч
 
03.12.12
15:07
(5) руками в поле "Источник" при создании подписки проставь галочки на нужных тебе типах
7 Maxus43
 
03.12.12
15:07
Источник.Родитель - заменит родителя, как к чему обращатся и надо ли - нам отсюда не видно, нет данных
8 Лефмихалыч
 
03.12.12
15:08
Или иди учи русский язык и "как правильно задавать вопросы"
9 Assena
 
03.12.12
15:10
во всех иерархических справочниках хочу менять родителя при пометке удаления, таких справочников много, описывать все случаи типа
Если ТипЗнч(Источник) = Тип(...)
не хочется

(8) извините, что не так с моим русским и что не так с моим вопросом
10 Maxus43
 
03.12.12
15:12
(9) а на какого родителя хочешь менять? в каждом справочнике свои элементы
11 acsent
 
03.12.12
15:13
+100500 за новую подписку
12 Assena
 
03.12.12
15:13
(10) ну например, поискать группу "Удаленные", и если не нашел, то создать таковую здесь же
13 Assena
 
03.12.12
15:14
(11) не моя идея - клиент так хочет
14 Maxus43
 
03.12.12
15:15
(12) тогда можно без анализа (9). в подписку только иерархические пропиши, там исходя из метаданных ищи по наименованию "Удаленные" и т.д. и т.п.
15 kosts
 
03.12.12
15:15
Если делают много пометок на удаление, то лишить премии...
16 palpetrovich
 
03.12.12
15:16
(13) так ищи "родителя" по имени в []
17 Assena
 
03.12.12
15:17
(14) вот-вот.. с этого места поподробнее)) как бы мне обратиться к справочнику и поискать по наименованию
18 Лефмихалыч
 
03.12.12
15:17
(12) закрой конфигуратор пожалуйста
19 Assena
 
03.12.12
15:18
(14) про иерархию я через метаданные проверяю, поэтому думаю не обязательно галками отмечать все иерархические справочники в подписке
20 Maxus43
 
03.12.12
15:18
ИщемПапку = Справочники[Источник.Метаданные().Имя].НайтиПоНаименованию("Удаленные");

дальше понятно?
21 Assena
 
03.12.12
15:20
(20) Отлично!)) спасибо огромное, Максус43
22 palpetrovich
 
03.12.12
15:23
(21) не забудь :)
Если = ИщемПапку.ПустаяСсылка() Тогда
23 Assena
 
03.12.12
15:26
(22) непременно проверю, спасибо))