Имя: Пароль:
1C
1С v8
Com соединение с 7.7
,
0 Dmitry_333
 
30.01.19
16:43
Господа, в продолжении темы Штатный перенос из 77 в 8.3.

Т.к. штатными средствами не вышло, решил самостоятельно внешней обработкой вытащить нужное, тем более что перенести нужно только контрагентов. Поскреб по форумам и накидал пока вот так:

v7 = Новый COMObject("v77.Application");
      
      Открыта = v7.Initialize(v7.RMTrade, "/D""" + "D:\база с старого ноутбука\база\ATC\" + """ /M ", "NO_SPLASH_SHOW");
      
      КонтрагентСОМ = v7.CreateObject("Справочник.Контрагенты");
      
      КонтрагентСОМ.ВыбратьЭлементы();
      
      Пока КонтрагентСОМ.ПолучитьЭлемент() = 1 Цикл
          
          ВыбКонтр = КонтрагентСОМ.ТекущийЭлемент();
                    
      КонецЦикла;

Застопорился на том, что через отладчик не вижу в переменных ничего, кроме значения "COMОбъект", т.е. дерева не вижу. Не понимаю, то ли где ошибка, то ли особенность соединения с 7-ой.
1 Dmitry_333
 
30.01.19
16:47
Сорян, разобрался
2 abfm
 
30.01.19
16:49
С этим придется мириться. В 7 есть только OLE. Но доступ к к данным по реквизитам доступен, правда ответ будет в примитивном виде строка число.
3 Dmitry_333
 
30.01.19
16:52
(2) Ага,спасибо.
4 Dmitry_333
 
30.01.19
16:54
Не понятно пока, правда, как до инн с кпп добраться
5 abfm
 
30.01.19
16:56
Создать объект найти по коду, наименованию. Считать ИНН.
6 Ёпрст
 
30.01.19
16:58
(4)
Пока КонтрагентСОМ.ПолучитьЭлемент() = 1 Цикл
          
         Сообщить(КонтрагентСОМ.ЮрФизЛицо.ИНН);
                    
      КонецЦикла;
7 Dmitry_333
 
30.01.19
17:00
(5) (6) Спасибо.
8 Garykom
 
гуру
30.01.19
17:01
(0) Может все же освоишь КД2 ?

"Лучше день потерять зато потом за 5 минут долететь"©
Учитывая что день терешь один (или сколько потребуется на освоение КД) а быстро летать в будущем пригодится.

В отличие от этих костылей с OLE/COM.
9 Garykom
 
гуру
30.01.19
17:01
(8) *теряешь
10 Калиостро
 
30.01.19
17:03
(4) я делал так:

Процедура ПрочитатьИНН(ИННКПП, ИНН, КПП) Экспорт
    
    СтрДл = СтрДлина(ИННКПП);
    
    ИНН = "";    
    КПП = "";
    НомРазд = 0;
    
    Для к=1 по СтрДл Цикл
        ТекСимв = Сред(ИННКПП, к, 1);
        Если Найти("1234567890", ТекСимв) = 0 Тогда
            НомРазд = к;
            Прервать;
        КонецЕсли;  
        
        ИНН = ИНН + ТекСимв;
    КонецЦикла;      
    
    Если НомРазд = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Для к = (НомРазд + 1) по СтрДл Цикл
        ТекСимв = Сред(ИННКПП, к, 1);
        Если Найти("1234567890", ТекСимв) = 0 Тогда
            НомРазд = к;
            Прервать;
        КонецЕсли;  
        
        КПП = КПП + ТекСимв;
    КонецЦикла;      
    
        
КонецПроцедуры //ПрочитатьИНН


Процедура КомандаЗагрузить(Команда)

    СпрКонтрагенты77 = База77.CreateObject("Справочник.Контрагенты");
    СпрКонтрагенты77.ВыбратьЭлементы();
    
    Пока СпрКонтрагенты77.ПолучитьЭлемент() = 1 Цикл
        
        Если СпрКонтрагенты77.ПометкаУдаления() = 1 Тогда
            Продолжить;
        КонецЕсли;
        
        Если СпрКонтрагенты77.ЭтоГруппа() = 1 Тогда
            Продолжить;
        КонецЕсли;
        
        Наименование= СокрЛП(СпрКонтрагенты77.Наименование);
        

        ИННКПП = СокрЛП(СпрКонтрагенты77.ИНН);
        ИНН = "";
        КПП = "";
        ПрочитатьИНН(ИННКПП, ИНН, КПП);
            
        КонецЦикла;
    КонецПроцедуры
11 VladZ
 
30.01.19
17:03
Не теряй время на бодание с COM.  Убогая вещь...

Лучше это время используй для изучения КД.
12 VladZ
 
30.01.19
17:03
Что в итоге тебе нужно?
13 Dmitry_333
 
30.01.19
17:08
(12) в данный момент перегрузить контрагентов. (10) Благодарю
14 VladZ
 
30.01.19
17:10
(13) Что является источником и что приемником?
15 Dmitry_333
 
30.01.19
17:13
источник - 77, приемник 8.3
16 VladZ
 
30.01.19
17:14
(15) Ты назвал платформу. Платформа не содержит никаких данных. Конфигурации какие?
17 Dmitry_333
 
30.01.19
17:17
7.7 - "Комплексная конфигурация", 8.3 - БП
18 Dmitry_333
 
30.01.19
17:18
штатной обработкой не вышло, как я писал выше
19 VladZ
 
30.01.19
17:19
(18) Что не вышло в штатной?
20 Dmitry_333
 
30.01.19
17:23
Для конфы конвертация не поддерживается
21 VladZ
 
30.01.19
17:25
Возьми http://softproc.ru/public/354468/
за основу, до актуальной БП допили напильником.
22 Dmitry_333
 
30.01.19
17:32
Спасибо. Но почти допилил уже эту. Мне один раз перенести и забыть о 7.7. Надеюсь-)
23 VladZ
 
30.01.19
17:36
Если не хочешь ковыряться в 7.7 возьми refprint.ert.
Закинь нужную тебе инфу в Эксель и на стороне восьмерки загружай.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший