|   |   | 
| 
 | скопировать элемент справочника в другой справочник | ☑ | ||
|---|---|---|---|---|
| 0
    
        I_learn_1c 18.01.18✎ 15:37 | 
        День добрый!
 Есть задачка. Справочник Спецификации и Спецификации2. Второй создан копированием первого, то есть все реквизиты, табличные части у них одинаковые. Нужно в форме элемента справочника Спецификации2 описать команду(кнопка) по которой этот элемент скопируется в справочник Спецификации. То есть создать новый элемент и переписать в него все данные кроме ссылки. ЭтаФорма.Объект.Ссылка.Скопировать() не подходит так как в новой потом не могу изменить ссылку на ссылку другого справочника. вариант КопияСпецификации=Справочники.Спецификации.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(КопияСпецификации,ЭтаФорма.Объект.Ссылка,,"Ссылка,Родитель"); КопияСпецификации.Записать(); работает,но не до конца, не переносит табличные части. Может есть еще варианты чтобы не перебирать табличные части циклом? Есть какие-то идеи? | |||
| 1
    
        lapinio 18.01.18✎ 15:43 | 
        Очень странная запись ЭтаФорма.Объект.Ссылка. Если у тебя Упр.интерфейс. Просто объект. И что такое копия спецификации     | |||
| 2
    
        lapinio 18.01.18✎ 15:45 | 
        ЗаполнитьЗначенияСвойств - Не заполняет Табличные части     | |||
| 3
    
        1Сергей 18.01.18✎ 15:45 | 
        ЗаполнитьВащеВсеЗначенияСвойств(     | |||
| 4
    
        Мыш 18.01.18✎ 15:50 | 
        Метаданные()     | |||
| 5
    
        I_learn_1c 18.01.18✎ 15:50 | 
        (1) мне нужно создать копию элемента справочника Спецификации2, и поместить ее в справочник Спецификации.
 ЭтаФорма.Объект -ну да, странно.поняла. | |||
| 6
    
        I_learn_1c 18.01.18✎ 15:50 | 
        (2) это я поняла уже до написания вопроса сюда. А что заполняет?     | |||
| 7
    
        I_learn_1c 18.01.18✎ 15:51 | 
        (4) всмысле перебрать все в цикле?     | |||
| 8
    
        lapinio 18.01.18✎ 15:53 | 
        Можешь проще сделать. Объект.Заполнить(Передать реквизиты ) в модуле объекта заполнить.     | |||
| 9
    
        Мыш 18.01.18✎ 15:54 | 
        (7) А как иначе.     | |||
| 10
    
        lapinio 18.01.18✎ 15:55 | 
        И копии спецификации в модуле объекта заполняешь. Процедура обработка заполнения. Я как бы не вижу смысла обходить метаданные. Если универсально сделать тогда да. Если только для этого объекта заполни и все его ТЧ.Загрузить(ТЧ.Выгрузить) итд     | |||
| 11
    
        1Сергей 18.01.18✎ 15:56 | 
        ТЗ = Объект.ТабличнаяЧасть.Выгрузить();
 КопияСпецификации.ТабличнаяЧасть.Загрузить(ТЗ); | |||
| 12
    
        I_learn_1c 18.01.18✎ 16:07 | 
        (11) точноо.. спасибо большое)))
 остановилась на варианте ниже КопияСпецификации=Справочники.Спецификации.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(КопияСпецификации,ЭтаФорма.Объект.Ссылка,,"Ссылка,Родитель"); ТЗ = Объект.Состав.Выгрузить(); КопияСпецификации.Состав.Загрузить(ТЗ); ТЗ.Очистить(); ТЗ= Объект.Операции.Выгрузить(); КопияСпецификации.Операции.Загрузить(ТЗ); КопияСпецификации.Записать(); | |||
| 13
    
        I_learn_1c 18.01.18✎ 16:08 | 
        без 
 ЭтаФорма. | |||
| 14
    
        Мыш 18.01.18✎ 16:10 | 
        (10) Универсально проще. 
 Для Каждого ТабличнаяЧасть Из ОбъектИлиСсылка.Метаданные().ТабличныеЧасти Цикл ОбъектВКоторыйКопируем[ТабличнаяЧасть.Имя].Загрузить(ОткудаКопируем[ТабличнаяЧасть.Имя].Выгрузить()); КонецЦикла; | |||
| 15
    
        I_learn_1c 18.01.18✎ 16:20 | 
        (14) да, так проще будет. спасибо)     | |||
| 16
    
        Серёжа_ программист 19.01.18✎ 05:09 | 
        (3) Должно сработать ;)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |