![]() |
![]() |
|
Скопировать элемент справочника | ☑ | ||
---|---|---|---|---|
0
Sereja
03.09.09
✎
17:20
|
День добрый, уважаемые.
Подскажите пожалуйста, как можно программно скопировать элемент справочника. Т.е. добиться действия, которой происходит при нажатии кнопки F9. Но сделать это необходимо программно. Чтоб не создавать НовыйЭлемент. Чтоб не идти по его реквизитам и т.д. Спасибо |
|||
1
zak555
03.09.09
✎
17:22
|
(0)
Новый = ТекущийЭлемент.Скопировать(1); |
|||
2
Sereja
03.09.09
✎
17:25
|
(1) - Скопировать();
Синтаксис: Скопировать() Назначение: Скопировать текущую запись. - -- Это для дбф. Для справочника такого метода нет |
|||
3
Sereja
03.09.09
✎
17:28
|
и все-таки ап
|
|||
4
drTuborg
03.09.09
✎
17:29
|
Новый()
+ копирование реквизитов. И вообще не советую так делать. через неделю будешь искать обработку по удалению дублей. |
|||
5
zak555
03.09.09
✎
17:32
|
(2) я пошутил!
|
|||
6
Sereja
03.09.09
✎
17:38
|
(5) смешно
|
|||
7
drTuborg
03.09.09
✎
17:39
|
прости, ерунду наговорил)))
Процедура ВводНового(<?>,) Синтаксис: ВводНового(<ПризнКопирования>,<ОбъектКопирования>) Назначение: Предопределенная процедура при интерактивном вводе нового элемента справочника. Параметры: <ПризнКопирования> - признак того, что объект введен копированием. Число: 1 - объект введен копированием, 0 - просто новый объект. Данный признак может быть использован для анализа необходимости инициализации реквизитов нового объекта. <ОбъектКопирования> - объект, который был скопирован. Замечание: Данная процедура может располагаться только в программных модулях форм справочника. |
|||
8
zak555
03.09.09
✎
17:40
|
//ТекЭл....
Спр = СоздатьОбъект("Справочник."+ ТекЭл.Вид()); Если ТекЭл.ЭтоГруппа()=1 тогда Спр.НоваяГруппа(); Иначе Спр.Новый(); КонецЕсли; СЗ = СоздатьОбъект("СписокЗначений"); МД = Метаданные.Справочник(ТекЭл.Вид()) Для н = 1 по МД.Реквизит() Цикл Если МП.Реквизит(н).Периодический=1 Тогда СЗ.ДобавитьЗначение(МП.Реквизит(н).Идентификатор); Продолжить; КонецЕсли; Спр.УставновитьАтрибут(МП.Реквизит(н).Идентификатор, ТекЭл.ПолучитьАтрибут(МП.Реквизит(н).Идентификатор)); КонецЦикла; |
|||
9
zak555
03.09.09
✎
17:40
|
+ (8) а периодические сам допиши
|
|||
10
Sereja
03.09.09
✎
17:43
|
(7) Предопределенная процедура при ИНТЕРАКТИВНОМ вводе нового элемента справочника. - а мне надо программно
(9) - все верно говоришь, только из за периодических реквизитов я и пытался скопировать. Потому что не знаю как просмотреть всю историю реквизитов |
|||
11
zak555
03.09.09
✎
17:44
|
(10) открой типовой ответ по периодическим реквизитам!
|
|||
12
drTuborg
03.09.09
✎
17:46
|
(8) зачем такой геморрой?
Процедура ВводНового(<ПризнКопирования>,<ОбъектКопирования>) КонецПроцедуры по-моему проще) |
|||
13
Sereja
03.09.09
✎
17:48
|
(12) - потому что это работает, только тогда, когда ты мышкой сам нажмешь "Копировать". А если ты просто: Спр.ПолучитьЭлемент(), то так делать нельзя
|
|||
14
kobzon
03.09.09
✎
17:57
|
А как вобще должно происходить копирование? При нажатии на какую-то кнопку чтоли?
|
|||
15
Sereja
03.09.09
✎
17:59
|
(14)
должно происходить примерно так СпрНоменклатура.ВыбратьЭлемнеты() Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл Если СпрНоменклатура.код = 489230843902 Тогда //и вот тут должно сработать копирование КонецЕсли; КонецЦикла |
|||
16
miki
03.09.09
✎
18:03
|
(15)никакой код не сработает... не войдет в условие
|
|||
17
TeddySlaf
03.09.09
✎
18:32
|
а когда стало чтобы при интеракивном - ВСЯ история копировалась?
Ведь только на рабочуу дату в новом элементе появляется история. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |