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

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
спасибо!


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