Имя: Пароль:
1C
1C 7.7
v7: ПриПереносеЭлементаВДругуюГруппу
0 Shved_72
 
03.11.12
11:10
надо в момент переноса элемента в группу записать кое что в сам элемент. перехватчик нашел, но в ней не дает ничо делать - объект заблокирован. как красиво обойти?
1 Shved_72
 
03.11.12
11:19
простые реквизиты победил:
Реквизит = Группа.Реквизит
а с периодическими пока не встает
2 zak555
 
03.11.12
11:23
Перем Записать ;

Процедура ПриПереносеЭлементаВДругуюГруппу()

//...
Записать = 1;

КонецПроцедуры


Процедура ПриЗакрытии()

Если Записать = 1 Тогда
//...

КонецПроцедуры

Записать = 0;
3 Shved_72
 
03.11.12
11:26
фи. сложно
с периодическими получилось через ""Периодический""
4 zak555
 
03.11.12
11:27
какой реквизит ?
5 Shved_72
 
03.11.12
11:27
(2) и при закрытии чего? формы списка? а если надо сразу видеть изменения.
6 Shved_72
 
03.11.12
11:28
часть реквизитов общие для группы и для элемента, когда переносим Васю в группу сантехников, ему надо присвоить общие реквизиты группы
7 Shved_72
 
03.11.12
11:35
Процедура ПриПереносеЭлементаВДругуюГруппу(Элемент,Группа)  
   
   ТекДата        = ИспользоватьДату();
   sh_ВидСпорта    = Группа.sh_ВидСпорта;
   ТренерГруппы    = Группа.sh_Тренер.Получить(ТекДата);  
   
   Тренер = СоздатьОбъект ("Периодический");    
   Тренер.ИспользоватьОбъект("sh_Тренер",Элемент);    
   Тренер.Значение    = ТренерГруппы;  
   Тренер.ДатаЗнач    = ТекДата;
   Тренер.Записать();
   
   Сообщить("Сотруднику """+СокрЛП(Элемент)+""" с "+ФД(ТекДата)+" назначен вид спорта: """+СокрЛП(sh_ВидСпорта)+""" и тренер: """+СокрЛП(ТренерГруппы)+""" ","i");
   
КонецПроцедуры
8 Ork
 
03.11.12
11:43
(8) ДляНафига так сложно?


тек_sh_Тренер = ...;
Спр = СоздатьОбъект("Справочник."+Вид());
Спр.НайтиЭлемент(Элемент);
Спр.sh_Тренер.Установить(ТекущаяДата(), тек_sh_Тренер);
9 Shved_72
 
03.11.12
11:44
(8) тоже нак начал, но на "Спр.Записать()" - барада
10 Ork
 
03.11.12
11:45
(9) Где вы увидели в (8) Спр.Записать()?
11 zak555
 
03.11.12
11:45
Спр = СоздатьОбъект("Справочник."+Вид());
Спр.НайтиЭлемент(Элемент);

Тренер = СоздатьОбъект ("Периодический");    
   Тренер.ИспользоватьОбъект("sh_Тренер",Спр);    
   Тренер.Значение    = ТренерГруппы;  
   Тренер.ДатаЗнач    = ТекДата;
   Тренер.Записать();
12 Ork
 
03.11.12
11:46
+(10) На момент переноса элемент уже записан. Нужно всего лишь установить значение периодического реквизита.
13 Shved_72
 
03.11.12
11:54
(12) т.е.
Спр.sh_Тренер.Установить(ТекущаяДата(), тек_sh_Тренер);
сработает без Спр.записать() ?
(11) у вас на 2 строки больше чем у меня. на
Спр = СоздатьОбъект("Справочник."+Вид());
Спр.НайтиЭлемент(Элемент);
14 zak555
 
03.11.12
12:02
(13) там пишется объект через СоздатьОбъект
15 1Сергей
 
05.11.12
07:01
(14) а смысл?
там у тебя ошибка в (11), есичо

//Тренер.ИспользоватьОбъект("sh_Тренер",Спр);
Тренер.ИспользоватьОбъект("sh_Тренер",Спр.ТекущийЭлемент());
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn