Имя: Пароль:
1C
1С v8
Реализация переноса из 77 в 82 без объектов помеченных на удаление.
,
0 liquidum
 
16.01.13
12:11
Есть код, переносятся все объекты справочника "контрагенты" из 7.7 ТиС в 8.2 УТ, как сделать так, чтоб помеченные на удаление элементы справочника не переносились вовсе или переносились также с пометкой на удаление?
1 vicof
 
16.01.13
12:12
Поставить условие
2 liquidum
 
16.01.13
12:13
Процедура КнопкаВыполнитьНажатие(Кнопка)
   СК77 = База.CreateObject("Справочник.Контрагенты");
   КолВоЭлементов = 0;
     СК77.ВыбратьЭлементы();
   
   Пока СК77.ПолучитьЭлемент()=1 цикл
    Сообщить("Контрагент:"+СК77.Наименование);
    Код77 = СокрЛП(СК77.Код);
    Нули = "000000";
    Код = ?(СтрДлина(Код77) < 6,Прав(Нули,6-СтрДлина(Код77))+Код77, Код77);
    КолВоЭлементов = КолВоЭлементов + 1;
    Если СК77.ЭтоГруппа() = 1 Тогда
           СК8 = Справочники.Контрагенты.СоздатьГруппу();        
           СК8.Наименование = СокрЛП(СК77.Наименование);
           СК8.Код = Код;
           КодРодителя77 = СокрЛП(СК77.Родитель.Код);
           Нули = "000000";
           КодРодителя = ?(СтрДлина(КодРодителя77) < 6,Прав(Нули,6-СтрДлина(КодРодителя77))+КодРодителя77, КодРодителя77);
           СК8.Родитель = Справочники.Контрагенты.НайтиПоКоду(КодРодителя);
           СК8.Записать();
       Иначе
           КодРодителя77 = СокрЛП(СК77.Родитель.Код);
           СК8 = Справочники.Контрагенты.СоздатьЭлемент();        
           КодРодителя = ?(СтрДлина(КодРодителя77) < 6,Прав(Нули,6-СтрДлина(КодРодителя77))+КодРодителя77, КодРодителя77);
           СК8.Родитель = Справочники.Контрагенты.НайтиПоКоду(КодРодителя);
           СК8.Код = Код;
           СК8.Наименование = СокрЛП(СК77.Наименование);
           СК8.ИНН = СК77.ЮрФизЛицо.ИНН;
           СК8.НаименованиеПолное = СК77.ЮрФизЛицо.ПолнНаименование;
           СК8.Записать();
           
   КонецЕсли;
КонецЦикла;
КонецПроцедуры
3 liquidum
 
16.01.13
12:14
Как оно должно выглядеть? Немогу найти чет ничего подобного.
4 DrShad
 
16.01.13
12:14
(2) сжечь! срочно
5 DrShad
 
16.01.13
12:15
вместо
Код77 = СокрЛП(СК77.Код);
    Нули = "000000";
    Код = ?(СтрДлина(Код77) < 6,Прав(Нули,6-СтрДлина(Код77))+Код77, Код77);

нужно юзать Формат()
6 DrShad
 
16.01.13
12:15
у элементов есть свойство ПометкаУдаления
7 liquidum
 
16.01.13
12:17
Всмысле формат?
8 forforumandspam
 
16.01.13
12:23
(7) Не слушай его.
9 liquidum
 
16.01.13
12:24
А как быть то
10 forforumandspam
 
16.01.13
12:25
Если СК77.ПометкаУдаления() = 1 Тогда
   СК8.ПометкаУдаления = Истина;
КонецЕсли;
11 liquidum
 
16.01.13
12:27
Ок, сейчас попробую.
12 liquidum
 
16.01.13
12:48
(10) Спасиб, все заработало.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший