Имя: Пароль:
1C
1С v8
Копирование справочника вместе с подчиненными элементами ПриКопировании
0 Cherry-Berry
 
18.02.13
13:00
Добрый день.
Есть задача, чтобы пользователи при нажатии стандартной кнопки копирования справочника получали копию справочника вместе с подчиненными ему.
В модуль объекта справочника добавила обработчик события ПриКопировании.

Процедура ПриКопировании(ОбъектКопирования)
   ЭтотОбъект.Записать();
   Выборка = Справочники.ПереченьВидовРабот.Выбрать(, ОбъектКопирования.Ссылка);
   Пока Выборка.Следующий()  Цикл      
       ДобОбъект = Выборка.ПолучитьОбъект().Скопировать();
       ДобОбъект.Владелец = ЭтотОбъект.Ссылка;
       ДобОбъект.Записать();
   КонецЦикла;
КОнецПроцедуры

Все работает как положено.

Но при использовании стандартной команды копирования пользователю автоматически открывается форма создания справочника со скопированными значениями реквизитов, а получается, что в обработчике ПриКопировании этот элемент уже создан и записан.

Как можно обойти этот момент и отключить появление формы создания нового элемента справочника?
1 Cube
 
18.02.13
13:02
(0) Фотки нет...
2 butterbean
 
18.02.13
13:02
а если он захочет отказаться от создания?? типа случайно F9 нажал и т.п.??
3 Михей
 
18.02.13
13:02
(0) ЭтотОбъект.Записать(); // не правильно!!!
4 Галахад
 
гуру
18.02.13
13:02
СтандартнаяОбработка = Ложь;
5 Cherry-Berry
 
18.02.13
13:05
(3) - но как без записи добавить ему подчиненные справочники?
6 БалбесВ1с
 
18.02.13
13:05
(4)Стас ты неправ.
7 Defender aka LINN
 
18.02.13
13:06
(5) Попытаться подумать немного?
8 Classic
 
18.02.13
13:08
(5)
Создавать подчиненные при записи.
При открытии где-то фиксировать с какого элемента ты копируешь
9 Cherry-Berry
 
18.02.13
13:09
Если добавлять подчиненные при копировании, а записывать подчиненные при записи вместе с самим объектом?
10 Cherry-Berry
 
18.02.13
13:10
Наличие подчиненных можно будет отследить?
11 Cherry-Berry
 
18.02.13
13:10
(8) - да, так и сделаю, спасибо
12 Cherry-Berry
 
18.02.13
13:25
получается, что я знаю с какого элемента идет копирование в обработчике "ПриКопировании", но в форме ПриОткрытии этой информации уже не будет...
И форма создания элемента открывается автоматически ведь...
Можно ли править сам обработчик команды добавления копированием?
13 Cherry-Berry
 
18.02.13
13:29
попробую использовать дополнительные свойства для хранения ссылки на объект источник
14 Cherry-Berry
 
18.02.13
13:34
Получилось так

Процедура ПриКопировании(ОбъектКопирования)
   ЭтотОбъект.ДополнительныеСвойства.Вставить("ОбъектКопирования", ОбъектКопирования.Ссылка);
КонецПроцедуры

Процедура ПриЗаписи(Отказ)    
   Выборка = Справочники.ПереченьВидовРабот.Выбрать(, ЭтотОбъект.ДополнительныеСвойства.ОбъектКопирования);
   Пока Выборка.Следующий()  Цикл      
       ДобОбъект = Выборка.ПолучитьОбъект().Скопировать();
       ДобОбъект.Владелец = ЭтотОбъект.Ссылка;
       ДобОбъект.Записать();
   КонецЦикла;
КонецПроцедуры