1c 8 и Exel

tanat

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

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

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


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

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

tanat

Well-known member
02.03.2007
265
0
#3
В том то и дело, что в экселе местами все выглядит нормально, а местами - нет. При открытии файла эксель пытается распознать тип данных и расставляет их на свое усмотрение.
Действовать через "Фармат()" - не очень корректно будет, т.к. в этом случае всеравно "отсекаются" нули впереди числа. мне именно надо получать те данные, которые изначально передаю в эксель: например "0000012"
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
При выгрузке даты есть проблема с преобразованием. Лечится сменой выравнивания - то ли по правому, то ли по левому.
Может это?
 

tanat

Well-known member
02.03.2007
265
0
#5
Неа. Я, вобщем-то, нашел "качегарный" способ: вставил все таки в каждую заполняемую ячейку апостроф, Йоксель "кушает" все ячейки теперь как текст. Отдает - тоже текст, но с апострофом. А на приеме я просто отсекаю первый символ у строки.

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

tanat

Well-known member
02.03.2007
265
0
#7
Нет, по усмотрению самого Екселя ставится. Где-то "Текстовый" где-то "Общий", гдето "Булево", гдето "Дополнительный".
Хотя в макет я заполняю исключительно текстовые параметры.

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

unknown181538

НеГуру
28.12.2008
1 417
0
#8
Сейчас как раз работаю с Excelем.
Использую найденную в сети процедуру ЗаписатьТаблицуЗначенийНаЛист().
Там все ячейки записываются с апострофом. Если я буду записывать без него, удастся верно установить формат дат и сумм в формате дат и сумм?
 

tanat

Well-known member
02.03.2007
265
0
#9
Смотря как записывать. Если в конкретную ячейку с уже заданным типом - то скорее да, чем нет. И если в конкретную ячейку записываете данные определенного типа ( например "дата"), то тоже, скорее да, чем нет. А вот если как я - заполняете табличный документ по макету, макет - сохраняете в формате xls и потом его открываете - то не даю никаких гарантий).
 
K
#10
перед загрузкой у всего листа установить формат ячеек текст
Не прокатит??
 

tanat

Well-known member
02.03.2007
265
0
#11
Впринципе можно, опять же где гарантия, что значения преобразуются везде верно? Т.е. "0000012" при преобразовании не получится "12", но строкой?