Процедура ПриКопированииЭлементаНоменклатурыПриКопировании(Источник, ОбъектКопирования) Экспорт
Источник.Записать();//Запись созданного объекта для получения ссылки
//////////////Вкладка "Единицы" элемента справочника "Номенклатура"///////////
ЗапросЕдИзм = Новый Запрос;
ЗапросЕдИзм.Текст = "ВЫБРАТЬ
| ЕдиницыИзмерения.Владелец,
| Номенклатура.Ссылка КАК Номенклатура,
| ЕдиницыИзмерения.Код,
| ЕдиницыИзмерения.ЕдиницаПоКлассификатору КАК ПоКлассификатору,
| ЕдиницыИзмерения.Наименование,
| ЕдиницыИзмерения.Коэффициент,
| ЕдиницыИзмерения.Вес,
| ЕдиницыИзмерения.Объем,
| ЕдиницыИзмерения.ПорогОкругления,
| ЕдиницыИзмерения.ПредупреждатьОНецелыхМестах
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО ЕдиницыИзмерения.Владелец = Номенклатура.Ссылка
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура";
ЗапросЕдИзм.УстановитьПараметр("Номенклатура",ОбъектКопирования.Ссылка);
РезультатЕдИзм=ЗапросЕдИзм.Выполнить().Выбрать();
Если НЕ РезультатЕдИзм.Количество() = 0 ТОГДА
Пока РезультатЕдИзм.Следующий() Цикл
НоваяСтрока = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НоваяСтрока.Владелец = Источник.Ссылка;
НоваяСтрока.ЕдиницаПоКлассификатору = РезультатЕдИзм.ПоКлассификатору;
НоваяСтрока.Наименование = РезультатЕдИзм.Наименование;
НоваяСтрока.Коэффициент = РезультатЕдИзм.Коэффициент;
НоваяСтрока.Вес = РезультатЕдИзм.Вес;
НоваяСтрока.Объем = РезультатЕдИзм.Объем;
НоваяСтрока.ПорогОкругления = РезультатЕдИзм.ПорогОкругления;
НоваяСтрока.ПредупреждатьОНецелыхМестах = РезультатЕдИзм.ПредупреждатьОНецелыхМестах;
НоваяСтрока.Записать();
КонецЦикла;
КонецЕсли;
//////////////Вкладка "Свойства" элемента справочника "Номенклатура"///////////
ЗапросСвойства = Новый Запрос;
ЗапросСвойства.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| ЗначенияСвойствОбъектов.Объект,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
| ПО Номенклатура.ЕдиницаДляОтчетов = ЕдиницыИзмерения.Ссылка
| И Номенклатура.ЕдиницаХраненияОстатков = ЕдиницыИзмерения.Ссылка
| И Номенклатура.ЕдиницаИзмеренияМест = ЕдиницыИзмерения.Ссылка
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура";
ЗапросСвойства.УстановитьПараметр("Номенклатура",ОбъектКопирования.Ссылка);
Результат=ЗапросСвойства.Выполнить().Выбрать();
Если НЕ Результат.Количество() = 0 ТОГДА
Движения = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
//Движения.Записывать = Истина;
Движения.Прочитать();//Добавление в созданный набор записей тех данных, которые уже были в рег. свед.
Пока Результат.Следующий() Цикл
Движение = Движения.Добавить();
Движение.Объект = Источник.Ссылка;
Движение.Свойство = Результат.Свойство;
Движение.Значение = Результат.Значение;
КонецЦикла;
Движения.Записать(Истина);
КонецЕсли;
КонецПроцедуры
Копирование элемента справочника "Номенклатура" с данными вкладок "Единицы" и "Свойства"
10.07.13
Разработка - Универсальные функции
Как при помощи подписки на событие копировать элемент справочника "Номенклатура" с данными вкладок "Единицы" и "Свойства".
Сначала нужно создать подписку на событие При копировании Элемента спр. "Номенклатура", а затем в обработчике написать следующий код:
Сначала нужно создать подписку на событие При копировании Элемента спр. "Номенклатура", а затем в обработчике написать следующий код: