8.х 1С 8.2 ЗиУП Загрузить адреса ФизЛиц

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем punkyklan, 21 мар 2014.

  1. TopicStarter Overlay
    punkyklan
    Offline

    punkyklan Опытный в 1С

    Регистрация:
    12 дек 2012
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!
    Пытаюсь загрузить адреса физлиц в 1С ЗиУП, но почему то не выходит, адреса как я понимаю хранятся в регистре сведений Контактная Информация, пытаюсь загрузить туда адреса из экселя, ошибок нет, но регистр пустой. Что я не так делаю:
    1С:Предприятие 8.2 (8.2.15.319), Зарплата и Управление Персоналом, редакция 2.5 (2.5.78.1)

    Код:
    Попытка
         Эксель = Новый COMОбъект("Excel.Application");
       Исключение
         Сообщить(ОписаниеОшибки());
         Возврат;
       КонецПопытки;
       Книга = Эксель.WorkBooks.Open("D:\Users\ХХХХХХ.xls");
       Лист = Книга.WorkSheets(1);
    
       для Строка = 4 по 372 цикл
       НовыйРегистр= РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
       НовыйРегистр.Прочитать();
       Попытка
       НоваяЗапись=НовыйРегистр.добавить();
    НоваяЗапись.Объект=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(Лист.Cells(4,3).Value));
       //адрес по прописке
         НоваяЗапись.Вид=Справочники.ВидыКонтактнойИнформации.ФактАдресФизЛица;
       //регион
         НоваяЗапись.Поле2=СокрЛП(Лист.Cells(4,4).Value);
       //район
         НоваяЗапись.Поле3=СокрЛП(Лист.Cells(4,5).Value);
       //город
         НоваяЗапись.Поле4=СокрЛП(Лист.Cells(4,6).Value);
       //населенныйпункт
         НоваяЗапись.Поле5=СокрЛП(Лист.Cells(4,7).Value);
       //улица
         НоваяЗапись.Поле6=СокрЛП(Лист.Cells(4,8).Value);
       //тип дома
         НоваяЗапись.ТипДома=Перечисления.ТипыДомов.Дом;
       //номер дома
         НоваяЗапись.Поле7=СокрЛП(Лист.Cells(4,9).Value);
       //тип корпуса
         НоваяЗапись.ТипКорпуса=Перечисления.ТипыКорпусов.Корпус;
       //номер корпуса
         НоваяЗапись.Поле8=СокрЛП(Лист.Cells(4,11).Value);
       //тип квартиры
         НоваяЗапись.ТипКвартиры=Перечисления.ТипыКвартир.Квартира;
       //номер квартиры
         НоваяЗапись.Поле9=СокрЛП(Лист.Cells(4,10).Value);
       //индекс
         НоваяЗапись.Поле1=СокрЛП(Лист.Cells(4,12).Value);
       //комментарий
         НоваяЗапись.Комментарий="Данная информация загружена из 1С 7.7";
         НоваяЗапись.Записать();
    
           Исключение
         Сообщить(ОписаниеОшибки() + " Данная запись существует в регистре сведений");
         Возврат;
       КонецПопытки;
    КонецЦикла;
       Эксель.Application.Quit();
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    СоздатаНаборЗаписей() или СоздатьМенеджерЗаписи()
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    записывайте не запись, а весь набор
  4. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Только нужно еще и отбор установить, чтобы не затерся весь регистр.
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    при этом создавать набор тогда вне цикла

    а так как у вас - тогда да, Алекс прав, Менеджер используйте
  6. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    "Велосипед изобретаете"... Можно использовать обработку ЗагрузкаДанныхИзТабличногоДокумента(имеется в составе Вашей конфигурации), когда-то ее использовал, со всем отлично справляется... Только, замечание, лучше искать по ТабельномуНомеру или ИНН, вдруг будет несколько Ивановых Иван Ивановичей...
  7. TopicStarter Overlay
    punkyklan
    Offline

    punkyklan Опытный в 1С

    Регистрация:
    12 дек 2012
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Файл выгружен из 1С 7.7 собственными силами, на него ругается, через регистр записать не получилось, пытаюсь записать через обработку, эфыект один и тот же, ни ошибок, ни записи, в отладчике все хорошо, что не так?

    Код:
    Попытка
        Эксель = Новый COMОбъект("Excel.Application");
      Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
      КонецПопытки;
      Книга = Эксель.WorkBooks.Open("D:\Users\ХХХХХ.xls");
      Лист = Книга.WorkSheets(1);
      для Строка = 4 по 372 цикл
       Попытка
      НоваяЗапись=Обработки.РедактированиеКонтактнойИнформации.Создать();
      НоваяЗапись.Объект=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(Лист.Cells(Строка,3).Value));
        НоваяЗапись.Вид=Справочники.ВидыКонтактнойИнформации.ФактАдресФизЛица;
        НоваяЗапись.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес;
      //регион
      НоваяЗапись.Поле2=СокрЛП(Лист.Cells(Строка,13).Value);
      //район
      НоваяЗапись.Поле3=СокрЛП(Лист.Cells(Строка,14).Value);
      //город
      НоваяЗапись.Поле4=СокрЛП(Лист.Cells(Строка,15).Value);
      //населенныйпункт
      НоваяЗапись.Поле5=СокрЛП(Лист.Cells(Строка,16).Value);
      //улица
      НоваяЗапись.Поле6=СокрЛП(Лист.Cells(Строка,17).Value);
      //тип дома
      НоваяЗапись.ТипДома=Перечисления.ТипыДомов.Дом;
      //номер дома
      НоваяЗапись.Поле7=СокрЛП(Лист.Cells(Строка,18).Value);
      //тип корпуса
      НоваяЗапись.ТипКорпуса=Перечисления.ТипыКорпусов.Корпус;
      //номер корпуса
      НоваяЗапись.Поле8=СокрЛП(Лист.Cells(Строка,20).Value);
      //тип квартиры
      НоваяЗапись.ТипКвартиры=Перечисления.ТипыКвартир.Квартира;
      //номер квартиры
      НоваяЗапись.Поле9=СокрЛП(Лист.Cells(Строка,19).Value);
      //индекс
      НоваяЗапись.Поле1=СокрЛП(Лист.Cells(Строка,21).Value);
      //комментарий
        НоваяЗапись.Комментарий="Данная информация загружена из 1С 7.7";
    НоваяЗапись.Представление=строка("рег. "+СокрЛП(Лист.Cells(Строка,4).Value)+", район. "+СокрЛП(Лист.Cells(Строка,5).Value)+", город "+СокрЛП(Лист.Cells(Строка,6).Value)+", нас.пункт "+СокрЛП(Лист.Cells(Строка,7).Value)+", ул. "+СокрЛП(Лист.Cells(Строка,8).Value)+", д. "+СокрЛП(Лист.Cells(Строка,9).Value)+", корпус "+СокрЛП(Лист.Cells(Строка,11).Value)+", кв. "+СокрЛП(Лист.Cells(Строка,10).Value)+", индекс "+СокрЛП(Лист.Cells(Строка,12).Value));
       НоваяЗапись.Записать();
        Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    КонецЦикла;
      Эксель.Application.Quit();
    --- Объединение сообщений, 24 мар 2014 ---
    Кто-нибудь проверьте у себя пожалуйста, записывает или нет
    Последнее редактирование модератором: 24 мар 2014
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Я долго еще за Вами буду правильно код оформлять?
  9. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    что значит "пробую через обработку"? вы же все равно в регистр должны записать. Вы пробовали через МенеджерЗаписи?
  10. TopicStarter Overlay
    punkyklan
    Offline

    punkyklan Опытный в 1С

    Регистрация:
    12 дек 2012
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Да, не записывает, еще вот в чем дело, если завести адрес Сотруднику вручную, то запись у сотрудника в справочнике физлица есть, а вот регистр все равно пуст, как так?
    --- Объединение сообщений, 24 мар 2014 ---
    А что не так?
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    смотрите что происходит при записи сотрудника в базу. Пройдитесь отладчиком
    --- Объединение сообщений, 24 мар 2014 ---
    контактная информация вроде как к ФизЛицу привязана, а не к сотруднику. Хотя может я и путаю
  12. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Оформляйте сообщения по правилам. Не только на нашем сайте такие.

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