8.х ОБМЕН из дбф

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем alexcl, 11 июл 2011.

  1. TopicStarter Overlay
    alexcl
    Offline

    alexcl

    Регистрация:
    2 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    как получить записи инн и кпп из файла по отдельности, т.е в дбф инн/кпп, а в 1с они отдельно.
    и помогите записать в регистр сведений адресс из дбф( необходимо записать только представление)






    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Путь="C:\Document and Setting\mikolyuk_ai\Рабочий Стол\2.dbf";
    Файл_Конрагенты=Новый XBase(Путь+"2.dbf", Путь+"2.cdx");
    Файл_Контрагенты.Кодировка=КодировкаXBase.OEM;
    Спр_БанковскиеСчета=Справочники.БанковскиеСчета;

    //Получаем данные файла дбф
    Файл_Конрагенты.Первая();
    Пока Не Файл_Конрагенты.ВКонце() Цикл
    Наименование=Файл_Конрагенты.ПолучитьЗначениеПоля("SHORTNAME");
    НаименованиеПолное=Файл_Конрагенты.ПолучитьЗначениеПоля("ORGNAME");
    ИНН/КПП=Файл_Контрагенты.ПолучитьЗначенияПоля("CODE PR");

    ИНН=Файл_Конрагенты.ПолучитьЗначениеПоля("ИНН");
    КПП=Файл_Конрагенты.ПолучитьЗначениеПоля("КПП");
    КодПоОкпо=Файл_Контрагенты.ПолучитьЗначенияПоля("CODEOKPO");
    Бик=Файл_Контрагенты.ПолучитьЗначенияПоля("BNKKOD");
    Банк=Справочники.Банки.НайтиПоКоду(Бик);
    РассчетныйСчет=Файл_Конрагенты.ПолучитьЗначениеПоля("RSCHET");
    Адресс=Файл_Контрагенты.ПолучитьЗначениеПоля("ADRESS");
    ЮрФизЛицо=Перечисления.ЮрФизЛицо ;
    если СтрДлина(Инн)>10 Тогда
    ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо;
    иначе
    ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо;
    КонецЕсли;

    Если Не ИНН=Справочники.Контрагенты.ПустаяСсылка()Тогда
    Если НЕ КПП=Справочники.Контрагенты.ПустаяСсылка()Тогда
    НовыйКонтрагент=Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтрагент.Наименование =Наименование;
    НовыйКонтрагент.НаименованиеПолное=НаименованиеПолное;
    НовыйКонтрагент.ЮрФизЛицо= ЮрФизЛицо;
    НовыйКонтрагент.ИНН=ИНН;
    НовыйКонтрагент.КПП=КПП;
    НовыйКонтрагент.ОсновнойБанковскийСчет=Справочники.БанковскиеСчета;

    КонецЕсли;
    КонецЕсли;
    НовыйКонтрагент.Записать();
    Если Не Банк=Справочники.Банки.ПустаяСсылка() Тогда
    НовыйБанковскийСчет=Спр_БанковскиеСчета.СоздатьЭлемент();
    НовыйБанковскийСчет.Владелец= НовыйКонтрагент;
    НовыйБанковскийСчет.Банк = Банк;
    НовыйБанковскийСчет.Банк=РассчетныйСчет;
    НовыйБанковскийСчет.Записать();
    НовыйКонтрагент.ОсновнойБанковскийСчет = НовыйБанковскийСчет;
    НовыйКонтрагент.Записать();
    КонецЕсли;
    КонтактнаяИнформация = РегистрыСведений.КонтактнаяИнформация;
    НаборИнформации1 = КонтактнаяИнформация.СоздатьМенеджерЗаписи();
    НаборИнформации1.Объект = НовыйЭлемент.Ссылка;
    НаборИнформации1.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
    НаборИнформации1.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
    НаборИнформации1.Представление=ЮридическийАдрес;
    НаборИнформации1.Записать();
    КонецЦикла;
    КонецПроцедуры
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    Код:
    ИНН/КПП=Файл_Контрагенты.ПолучитьЗначенияПоля("CODE PR");
    ИНН=Файл_Конрагенты.ПолучитьЗначениеПоля("ИНН");
    КПП=Файл_Конрагенты.ПолучитьЗначениеПоля("КПП");
    
    
    
    Как понимать сие, если "как получить записи инн и кпп из файла по отдельности, т.е в дбф инн/кпп, а в 1с они отдельно"?

    ИНН и КПП никогда в типовых конфигурациях не хранились в регистрах, всю жизнь это были реквизиты справочника "контрагенты"

    необходимо строку разбить на подстроки по разделителю "/"
  3. TopicStarter Overlay
    alexcl
    Offline

    alexcl

    Регистрация:
    2 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    все так и есть, извиняюсь за некорректность.
    если можно то напишите отрывок кода как разбить строку на под строку.

    что касается регистра, то это второй вопрос. в регистр сведений,а именно в представление необходимо записать данные из поля ADRESS.
  4. TopicStarter Overlay
    alexcl
    Offline

    alexcl

    Регистрация:
    2 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    """""ИНН/КПП=Файл_Контрагенты.ПолучитьЗначенияПоля("CODE PR");
    ИНН=Файл_Конрагенты.ПолучитьЗначениеПоля("ИНН");
    КПП=Файл_Конрагенты.ПолучитьЗначениеПоля("КПП");""""


    Данный участок и требует переработки ибо сам файл переделывался вручную, но поскольку база возможно обновилать, то мой файл не подойдет,вот и прошу кусочек кода
  5. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    самый простой:

    ТекСтрока = СтрЗаменить(ТекСтрока, "/", Символы.ВК);
    ИНН = ТекСтрока.ПолучитьСтроку(1);
    КПП = ТекСтрока.ПолучитьСтроку(2);

    С Адресом тоже самое, только разделять по "," нужно и писать в ресурсы с именами "поле1" - "поле10". Все полностью пишем в ресурс "представление"
  6. TopicStarter Overlay
    alexcl
    Offline

    alexcl

    Регистрация:
    2 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Спасибо за советы. Обработку дописал, все работает

Поделиться этой страницей