[РЕШЕНО] Загрузка данных из .xml в справочники 1С

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

  1. TopicStarter Overlay
    0x0tnik87
    Offline

    0x0tnik87 Опытный в 1С

    Регистрация:
    28 сен 2012
    Сообщения:
    117
    Симпатии:
    5
    Баллы:
    29
    Всем привет!
    Есть файлы .xml из сторонней программы, в них есть атрибуты - сотрудники, все по разному заполнены, то есть в одном файле атрибут заполнен "И.И.Иванов", в другом "Иванушка" или "Иванов Иван"и тд ").
    Необходимо загрузить эти элементы в 1С .
    в 1Ске уже заведены пользователи с наименованиями "Иванов Иван Иванович" и тд, у всех полное наименование (особенность управляемых форм, нет деления на фимилию имя отчество).
    При загрузке будет срабатывать "НайтиПоНаименованию" и соответственно не найдя такого в 1С обработка просто не заполнит реквизит, потому что "иванушки" просто нет в базе "), создавать новых нельзя, нужно условие какое нибудь - "если в .xml есть символы "ивануш..." и в Справочник.Пользователи есть "Иван" тогда наш в реквизит встает существующий уже "Иванов Иван Иванович".
    Кто нибудь такой ерундой занимался? ")
    ---------------------------------
    реализовал следующее:
    каждому элементу в файле присваиваю определенного пользователя из справочника...но их 500 штук,
    Функция СоответствиеПользователей(ПередаваемаяСтрокаП)

    Если ПередаваемаяСтрокаП = "Иванов И.И." Тогда
    Возврат Справочники.Пользователи.НайтиПоНаименованию("Иванов Иван Иванович");
    //ИначеЕсли
    КонецЕсли; // ................................
    КонецФункции


    замучаю копировать вставлять")
  2. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    К сожалению это индивидуальная задача. Придумать механизм поиска в вашем случае это распространенная задача. Других путей нет. Анализировать систему и думать.
  3. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    -"у всех полное наименование (особенность управляемых форм, нет деления на фимилию имя отчество). "
    в 8-ке штатно строку можно на подстроки разложить функцией
    то есть если ей передать на вход передать полное намименование в виде "фамилия имя отчество" то на выходе будет массив
    "фамилия
    имя
    отчество"

    а по хорошему лучше исходные файлы уже приводить к нужному виду в этом плане, свести три реквизита по ФИО вместе
  4. TopicStarter Overlay
    0x0tnik87
    Offline

    0x0tnik87 Опытный в 1С

    Регистрация:
    28 сен 2012
    Сообщения:
    117
    Симпатии:
    5
    Баллы:
    29
    в том и вопрос - обдумывание займет 3-4 часа и реализация 1 час, а вручную копипастить наверное за пару часиков можно уложиться ")
    Как думаете? 40 сотрудников и 500 контрагентов, ну и естественно не все из них использованы в документах и есть некоторые, которые соответствуют созданным в новой базе")
    --- Объединение сообщений, 24 июн 2014 ---
    в старой базе вели как попало, таня маша петя и Петр Петрович и Марья Сергеевна И. - привести к соответствию как в новой базе - не получится ни при каких обстоятельствах")
    менять в старой базе - то же самое по времени, что и копировать/вставлять мое условие на поиск и замену ")
    сегодня клавиши ctrl c v сотрутся точно ")
  5. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    тогда тут без вариантов, где-то всё равно их надо приводить к норме

    можно юзать ctrl+INS shift+INS :)
  6. TopicStarter Overlay
    0x0tnik87
    Offline

    0x0tnik87 Опытный в 1С

    Регистрация:
    28 сен 2012
    Сообщения:
    117
    Симпатии:
    5
    Баллы:
    29
    не пробовал, это то же самое что кэтрельси и ктерельвэ ?
  7. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    ага, только под правую руку для улучшения распальцовки :)
  8. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    контрл+инсерт = копировать
    шифт+инсерт = вставить

    шифт+делете = вырезать
  9. nbIpKuH_BaH9I
    Online

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Если это разовое, то может и будет выгоднее руками сделать.
  10. TopicStarter Overlay
    0x0tnik87
    Offline

    0x0tnik87 Опытный в 1С

    Регистрация:
    28 сен 2012
    Сообщения:
    117
    Симпатии:
    5
    Баллы:
    29
    Разовая задача ") Спасибо за помощь всем и за комментарии, думаю вариант копи/паст ( с переменой рук ) самый тут оптимальный и быстрый, в базе где 10000 контрагентов он точно не подойдет")

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