Имя: Пароль:
1C
1С v8
Создание Банковского счета
0 Нечай
 
10.02.17
13:01
Всем добрый день.
Есть список контрагентов, одинаковый что в 8, что в 7, есть обработка которая подключается из 8.3 в 7.7 через com.
Задача следующая: подключить из 8.3 к 7.7 и вытянуть все банковские счета и создать их в 8.3 с привязкой к каждому конкретному контрагенту.
Подскажи пожалуйста как это реализовать. Если буду тупить, прошу не обращать внимания, в 1с-ке всего 2 месяца.
1 shuhard
 
10.02.17
13:02
(0)[как это реализовать]
нанять программиста
2 Dark_Warrior
 
10.02.17
13:16
Можно правила обмена написать, можно без использования оных в обработке вашей. Подключиться по Com к 7.7, оттуда запросами надергать нужные данные, создать аналоги в 8.
3 sonne666
 
10.02.17
13:19
(0) для начала понять, как однозначно определяется одинаковость контрагентов.
4 Нечай
 
10.02.17
13:44
Одинаковость контрагентов определяется созданным реквизитом код 77, и полем в справочнике контрагенты.
5 Нечай
 
13.02.17
17:38
Вот что получилось, вдруг кому-то будет полезно.
    Проверить = ЛОЖЬ;
    Сообщить("Запускаем 1С 7.7",СтатусСообщения.Информация);
    Попытка
        V77 = Новый COMОбъект("V77.Application");
    Исключение
        ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
        Возврат;
    КонецПопытки;  
    
    Сообщить("1С 7.7 успешно запущена, соединяемся с базой",СтатусСообщения.Информация);
    
    Каталог = СокрЛП("D:\1С77\prod") + "\";
    Логин = "Администратор";
    Пароль = "123";
    Стр    = """" +    "enterprise /d""" + Каталог     + """"    
    + ?(Не ЗначениеЗаполнено(Логин) = 0, " /n", "")  + """" + СокрЛП("Администратор")  + """"  
    + ?(Не ЗначениеЗаполнено(Пароль) = 0, " /p", "") + """" + СокрЛП("123") + """";
    
    Открыта = V77.Initialize(V77.RMTrade,Стр,"NO_SPLASH_SHOW");
      
    Если Открыта = 0  Тогда
        Сообщить("Базу данных открыть не удалось!",СтатусСообщения.Информация);
        Возврат;
    КонецЕсли;
    
    Сообщить("Соединение с базой прошло успешно",СтатусСообщения.Информация);
    
    СписокКонтрагентов = Справочники.Контрагенты.Выбрать();
    Пока СписокКонтрагентов.Следующий() Цикл
        
        Контрагенты77 = V77.CreateObject("Справочник.Контрагенты");
        Счета77 = V77.CreateObject("Справочник.РасчетныеСчета");
        Банки77 = V77.CreateObject("Справочник.Банки");
        
        Если Контрагенты77.НайтиПоКоду(Число(СписокКонтрагентов.И_Код77),0) = 1 Тогда
            
            а = Контрагенты77.ТекущийЭлемент();
            Сообщить ("наим " +а.Наименование);
            
            
            Счета77.ИспользоватьВладельца(а);
            Счета77.ВыбратьЭлементы();
            
            Пока Счета77.ПолучитьЭлемент() = 1  Цикл
                
                с = Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета", Счета77.Номер);
                Если Не ЗначениеЗаполнено(с)  Тогда
                    
                Элемент = Справочники.БанковскиеСчета.СоздатьЭлемент();
                
                Элемент.Банк = Справочники.Банки.НайтиПоКоду(Счета77.БанкОрганизации.код);
                Элемент.НомерСчета = Счета77.Номер;            
                Элемент.Владелец = СписокКонтрагентов.Ссылка;
                Элемент.ВалютаДенежныхСредств = Справочники.Валюты.НайтиПоКоду("643");
                Элемент.ВидСчета = "Расчетный";
                Элемент.Наименование = "" + Строка(Счета77.БанкОрганизации.наименование) + " (Расчетный)";
                
                Элемент.Записать();
                КонецЕсли      
            КонецЦикла;    
        КонецЕсли
        
    КонецЦикла;
6 Нечай
 
13.02.17
17:40
Теперь мне нужно вытянуть данные юридического адреса и почтового адреса - это "представление". Как это сделать?
7 Amra
 
13.02.17
17:53
(6) Я тебя разочараю. Адрес в восьмерке это не представление. А что именно и где хранится - зависит от конфы, а не от платформы
8 HeKrendel
 
13.02.17
18:43
(0) Может все таки прогера стоит вызвать?
9 Mikhail Volkov
 
14.02.17
07:01
(0) > Задача следующая: подключить из 8.3 к 7.7 и вытянуть...
Зачем, если клиент-банк работает в обеих программах? Если из 7.7 надо вытянуть старые платежи, то надо конвертировать банковские документы...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший