Вход | Регистрация

1С:Предприятие ::

Метки:

Перенос элемента в другую Группу

Я
   rda2003
22.03.04 - 20:53
Как программно произвести перенос элемента из одной Группы справочника в другую, того же справочника. Сделать надо из модуля документа!
 
  Рекламное место пустует
   SnarkHunter
 
1 - 22.03.04 - 21:08
Атрибут Родитель...
   rda2003
2 - 22.03.04 - 21:13
Сделал так:
СпрБазаРас=СоздатьОбъект("Справочник.База");
    СпрБазаКл=СоздатьОбъект("Справочник.База");
    СпрБазаРас.НайтиПоНаименованию("РАСТОРГНУТЫЕ");
    СпрБазаКл.НайтиПоРеквизиту("НомерДоговора", НомерДоговора,1);
    СпрБазаРас.ИспользоватьРодителя(СпрБазаРас);
    СпрБазаРас.Новый();
    СпрБазаРас.Наименование=СпрБазаКл.Наименование;
    СпрБазаРас.НомерДоговора=СпрБазаКл.НомерДоговора;
    СпрБазаРас.ПолнНаим=СпрБазаКл.ПолнНаим;
    СпрБазаРас.Инн=СпрБазаКл.Инн;          
    СпрБазаРас.АдресКл=СпрБазаКл.АдресКл;
    СпрБазаРас.Телефон=СпрБазаКл.Телефон;
    СпрБазаРас.Записать(); 

А можно ли как-нибуть покрасивей, а то как-то уж слишком втупую получается!
   psk21office
 
3 - 22.03.04 - 21:27
А так не пробовал?
   СпрБазаРас=СоздатьОбъект("Справочник.База"); 
   СпрБазаКл=СоздатьОбъект("Справочник.База"); 
   СпрБазаРас.НайтиПоНаименованию("РАСТОРГНУТЫЕ"); 
   СпрБазаКл.НайтиПоРеквизиту("НомерДоговора",
              НомерДоговора,1); 
   СпрБазаКл.УстановитьАттрибут("Родитель",
              СпрБазаРас.ТекущийЭлемент());
   rda2003
4 - 22.03.04 - 21:29
а какая разница, потом ведь все равно простое копирование реквизитов! Может можно как-то попроще перенести элемент в другую группу
   327
5 - 22.03.04 - 21:51
через 5 минут ....
   327
6 - 22.03.04 - 21:59
запускается по кнопке в форме списка справочника
нет проверки, что по ошибке указали ту же самую группу
не делает перенос в голову справочника.. на первый уровень...



procedure Перенос()     
    if CurrentItem().Selected() =0 then return; endIf; 

   // перенос групп - не делается ...

    if CurrentItem().IsGroup()  =1 then return; endIf; 
    
    Гр =CreateObject("Reference.Номенклатура");
    Гр.SelectGroup(1); 
    if Гр.Choose("Выберите группу для переноса", "Основная") =0 then
        return;
    else
       // получен ответ

        if Гр.IsGroup() = 1 then
            нГруппа = Гр.CurrentItem();
        else
            if Гр.Level() =1 then
                DoMessageBox ("Нельзя переносить в голову иерархии"); 
                return;
            endIf; 
            нГруппа = Гр.Parent;
        endIf;        
        
        Род = нГруппа;             // это будет родитель

        
        Элемент = CreateObject("Reference.Номенклатура");
        Элемент.FindItem(CurrentItem());
        Элемент.Parent          = Род;
        Элемент.Write();
    endIf; 
    
EndProcedure //Перенос
   rda2003
7 - 22.03.04 - 22:08
А мне надо из модуля документа!!!
   327
8 - 22.03.04 - 22:15
если ты имеешь выбранный элемент справочника - какая разница... Откуда.... из дока... справочника..

Процедуру надо немного изменить ... делов то ...
   Валя
9 - 02.04.04 - 05:59
подскажите, а как же перенести из групп на первый уровень?
   327
10 - 02.04.04 - 06:12
Родитель = ПустоеЗначение()
 
 
   Валя
11 - 02.04.04 - 06:43
спасибо!


Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует