8.х Почему при переносе данных появляются пробелы?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 9 окт 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Переношу данные из одной базы в другую. Выгружаю самописной обработкой данные в excel, потом загружаю из него. Почему то после загрузке у ИНН появляются пробелы через каждые три символа 6 123 456 78
    Смотрю данные в excel там пробелов нет. Пробовал вручную изменить тип значений у столбца на числовой все равно переносятся пробелы. Почему такое может быть?
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    при загрузке поставьте что-то типа такого СтрЗаменить(ТутВашеЗначениеИзЕкселя, " ", "");
  3. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Пробовал, не помогает.

    Видимо это не пробелы...
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а у поля в вашей базе ИНН там в настройках отображения нет разделите случаем?

    тип поля какой (так на всякий случай) и приведите код которым пишете ИНН в ексель и вытаскиваете
  5. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Тип данных строка, разделителей нет. Я пробовал значение из excel в поле комментарий выводить все равно разделяет пробелами, хотя в excel их нет.
  6. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    приведите кусочки кода где записываете и читаете ИНН из екселя
  7. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Код:
    Лист.Cells(НомерСтроки, 2).Value = Выборка.ИНН;
    
    Код:
    Контрагенты.ИНН = СтрЗаменить((Лист.Cells(Строка,2).Value), " ", "");
    
    Может на dbf переписать попробовать?
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    попробуйте вот так, бред конечно, но вдруг
    Код:
    Лист.Cells(НомерСтроки, 2).Value = Строка(Выборка.ИНН);
    или через Формат принудительно указать разделение групп разрядов пробелми по типу
    Код:
    Лист.Cells(НомерСтроки, 2).Value = Формат(Выборка.ИНН, "ЧРГ=' '");
  9. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    проще
    Формат(ИНН,"ЧГ=0")
  10. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    может и проще, мы не ищем легких путейЮ, особенно под вечер ;)
  11. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Нет, не помогает. Не понимаю в чем дело.
  12. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    По всей видимости это значение, разделенное группой разрядов. Вот только ничего не могу я с ним сделать.
  13. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Решил проблему уходом от Excel. Теперь буду с DBF работать.
    В чем была проблема так и не выяснил. Большое спасибо.
  14. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Аналогичная проблема со справочником сотрудники(поле код). Не могу понять в чем причина. Опять на DBF переходить...

    Может кто-нибудь сталкивался с ней?
  15. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Сталкивались. Ответ в #9.

    З.Ы. Мне всегда было интересно зачем для самописного переноса использовать эксель? что дает этот монстр? и чем в данном случае для этой цели например тупой формат csv плох?
  16. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    Я вообще для самописного переноса использую DBF. Как то привык с ними работать. Но эксель да, это зло.
  17. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    для самописного переноса рулят процедура ЗначениеВФайл и функция ЗначениеИзФайла. и никаких заморочек )
  18. Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    с экселем нужно использовать не "Value" а "Text"
  19. NcSteel
    Offline

    NcSteel Опытный в 1С

    Регистрация:
    29 окт 2013
    Сообщения:
    78
    Симпатии:
    0
    Баллы:
    26
    Нормально и эксель работает и dbf.

    Просто в 1С при конвертации числа в строку в зависимости от региональных настроек ОС можем получить такую проблему. Поэтому необходимо использовать Формат или в файле Экселя на ячейке явно указывать тип Строку.
  20. Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    еще раз повторю (много раз сталкивался с этим) и чтобы не писать костыли типа "СтрЗаменить()"
    нужно писать "Text"
    Код:
    Лист.Cells(НомерСтроки, 2).Text()
    
    т.е. текст распознается такой какое забит в ячейке
    и не нужно будет пользоваться конструкцией "Формат()"

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