8.х Разложить строку в структуру

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

  1. LordMaverick
    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    потому что порядок полей структуры не соответствует порядку полей данной строки "443548, Самарская обл, Волжский р-н, Смышляевка пгт, Шоссейная ул, дом № 1А, кв. 27"
    --- Объединение сообщений, 18 июл 2014 ---
    в структуре идёт в таком порядке
    город,дом,заголовок,индекс,квартира,корпус,нас.пункт,район,регион,страна,типдома,типквартиры,типкорпуса,улица

    а в строке идёт
    индекс,область,район,город/пос.,улица,дом,квартира
  2. TopicStarter Overlay
    alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Так и я про это. При заполнении по коду, который выложил Костя - заполняется криво.
    То что по коду, который прислали вы, то вылетает с ошибкой.
  3. LordMaverick
    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    мой кусок кода - функция из типовой УТ

    её использовал при загрузке данных отчёта продаж из ККМ-ofline
    она преобразует переданную строку по заданному разделителю полей в массив строк
    получили массив - обработали его, заполнив вашу структуру согласно её полям полями из переданной сроки
    --- Объединение сообщений, 18 июл 2014 ---
    там примерно такая мутота
    Код:
    852849;18.10.2013;09:22:00;11;2;4;2;30057;;25.000;1.000;25.00;0;617;;;617545;;2000000300573;;;;;;852849;
    852850;18.10.2013;09:22:00;11;2;4;2;32755;;25.000;1.000;25.00;0;617;;;617545;;2000000327556;;;;;;852850;
    852851;18.10.2013;09:22:00;11;2;4;2;30209;;25.000;1.000;25.00;0;617;;;617545;;2000000302096;;;;;;852851;
    852852;18.10.2013;09:22:00;37;2;4;2;;;0;50.000;37.500;0;617;0;0;617545;;;;;;;;852852;
    852853;18.10.2013;09:22:00;40;2;4;2;;1;-62.500;-62.500;100.000;0;617;;;617545;;;;;;;;852853;
    852854;18.10.2013;09:22:00;55;2;4;2;;;;100.000;37.500;0;617;37.500;0.000;617545;;;;;;;;852854;
    
    кол-во полей по определен по протоколу обмена
    содержимое и вид полей зависит от значения одного из полей строки

    у вас количество полей определяет ваша структура
    должны присутствовать все поля, даже пустые, они просто разделителями фиксируются
    если в "443548, Самарская обл, Волжский р-н, Смышляевка пгт, Шоссейная ул, дом № 1А, кв. 27" не будет указан индекс то будет вот так
    ", Самарская обл, Волжский р-н, Смышляевка пгт, Шоссейная ул, дом № 1А, кв. 27" при обработке само поле будет, но пустое
    а если оставить так "Самарская обл, Волжский р-н, Смышляевка пгт, Шоссейная ул, дом № 1А, кв. 27"
    то всё при обработке сдвинется и будет не правильно заполнено в итоге
    Последнее редактирование: 18 июл 2014
  4. TopicStarter Overlay
    alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Ок, понял. Но конфа написано "рукожопыми" ребятами, которые даже БСП не могут прикрутить нормально. Походу буду перепиливать заполнение структуры.
  5. LordMaverick
    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    если оно не соответствует шаблону написания адреса передаваемого в строке - увы, переделывать однозначно
    пример написания адреса - в печатных формах документов, по КЛАДР
    alexburn нравится это.
  6. TopicStarter Overlay
    alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Ок, пойду за напильником...
  7. LordMaverick
    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    и за паяльником :)) чтоб потом напильником не махать

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