1c 8 и Exel

Тема в разделе "1C и всё что с ней связано", создана пользователем tanat, 29 ноя 2010.

  1. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Ситуация следующая: Через файлик формата .xls выполняется обмен данными между двумя базами 1С. Вся соль в том, что при считывании файлика в базе -приемнике данные "преобразовываются": строковые типы становятся числовыми, а значит появляются разделители. Т.е. пишем "12015011" а загружаем "12 015 011", "000012" получаем "12". А в некоторых ячейках значения остаются без изменений: "123456789" "123456789".

    Файлик формируется следующим образом: обработкой заполняется таблица, в которой все ячейки строковые. По данным этой таблицы заполняется макет через
    //цикл...
    ОбластьТаблицы.Параметры.Заполнить(СтрокаТАблицы);
    ТабличныйДокумент.Вывести (ОбластьТаблицы);
    КонецЦикла;
    //сохраняем заполненный макет
    ТабличныйДокумент.Записать(КудаИИмя,"xls97");

    Внимание, вопрос: Как сделать так, чтобы в файлик писались данные с типом "текстовый" и чтобы тип данных экселем не менялся?


    Считываю данные из экселя: Стр = СокрЛП(СокрЛП(ДокExcel.Sheets(1).Cells(СтрокаФ, Колонка).Value));

    Вариант с " ' " в начале записываемого значения ячейки не особенно устраивает, потому что придется каждый параметр заполнять отдельно, а их порядка 50ти.
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А если попробовать
    ?
    Как я понимаю, в Excel все выглядит нормально?
     
  3. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    В том то и дело, что в экселе местами все выглядит нормально, а местами - нет. При открытии файла эксель пытается распознать тип данных и расставляет их на свое усмотрение.
    Действовать через "Фармат()" - не очень корректно будет, т.к. в этом случае всеравно "отсекаются" нули впереди числа. мне именно надо получать те данные, которые изначально передаю в эксель: например "0000012"
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    При выгрузке даты есть проблема с преобразованием. Лечится сменой выравнивания - то ли по правому, то ли по левому.
    Может это?
     
  5. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Неа. Я, вобщем-то, нашел "качегарный" способ: вставил все таки в каждую заполняемую ячейку апостроф, Йоксель "кушает" все ячейки теперь как текст. Отдает - тоже текст, но с апострофом. А на приеме я просто отсекаю первый символ у строки.

    Цель данной темы именно понять ,как "сказать" экселю, что надо сохранить документ с ячейками "текстового" характера. Если с датами, числами и истина-ложь можно как-то выйти из положения, то как быть с "незначащими" нулями ( по мнению Йокселя)?
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А в Excele формат ячеек строковый получается?
     
  7. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Нет, по усмотрению самого Екселя ставится. Где-то "Текстовый" где-то "Общий", гдето "Булево", гдето "Дополнительный".
    Хотя в макет я заполняю исключительно текстовые параметры.

    Или может я вопрос не понял? До введения апострофа - произвольно на усмотрение Йокселя, после - строковый везде.
     
  8. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Сейчас как раз работаю с Excelем.
    Использую найденную в сети процедуру ЗаписатьТаблицуЗначенийНаЛист().
    Там все ячейки записываются с апострофом. Если я буду записывать без него, удастся верно установить формат дат и сумм в формате дат и сумм?
     
  9. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Смотря как записывать. Если в конкретную ячейку с уже заданным типом - то скорее да, чем нет. И если в конкретную ячейку записываете данные определенного типа ( например "дата"), то тоже, скорее да, чем нет. А вот если как я - заполняете табличный документ по макету, макет - сохраняете в формате xls и потом его открываете - то не даю никаких гарантий).
     
  10. kaa

    kaa Гость

    перед загрузкой у всего листа установить формат ячеек текст
    Не прокатит??
     
  11. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Впринципе можно, опять же где гарантия, что значения преобразуются везде верно? Т.е. "0000012" при преобразовании не получится "12", но строкой?
     
Загрузка...
Похожие Темы - Exel
  1. PawkaKo
    Ответов:
    0
    Просмотров:
    1.069
  2. vasekk
    Ответов:
    0
    Просмотров:
    2.319
  3. Mr.Maddog
    Ответов:
    2
    Просмотров:
    2.941

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