Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Импорт данных в 1С из Excel , Проблема с отображением строк          
aby_2503 Подменю пользователя
сообщение 17.11.11, 13:21
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Проблема в следующем: импорт происходит нормально, все работает, но в самом Excel в каждой клетке значения хранятся в несколько строк. Если в Excel менять формат строки и убрать опцию - переносить по словам, тогда суммарная строка отображается со знаком абзаца. Если в таком виде ее импортировать в 1С, то строка отображается некорректно пример-"Абрамова Любовь¶Петровна".
Вот код для импорта
Процедура ЗаполнитьИзExcel()
    Excel = Новый COMОбъект("Excel.Application");
    ВыбФайл = Новый Файл("D:\счетчики\vesel.xls");
    ФайлОткуда = ВыбФайл.ПолноеИмя;
    РабочаяКнига = Excel.WorkBooks.Open(ФайлОткуда);
    Страница=1;
    Пока Страница<=489 Цикл
    Лист = Excel.Sheets(Страница);    
    Строка=2;
    Пока ЗначениеЗаполнено(Лист.Cells(Строка, 3).Value) Цикл
        НовыйПрибор = Справочники.Клиенты.СоздатьЭлемент();
        ДляНим =  Строка(Лист.Cells(Строка,3).Value);
        ДляНим = СтрЗаменить(ДляНим,"¶"," ");
        ДляНим2 =  Строка(Лист.Cells(Строка,4).Value);
        ДляНим2 = СтрЗаменить(ДляНим2,"¶"," ");
        НовыйПрибор.Наименование      = ДляНим;
        НовыйПрибор.Адрес      = ДляНим2;
        //Строка(Лист.Cells(Строка,3).Value);
        //НовыйПрибор.Адрес             = Строка(Лист.Cells(Строка,4).Value);
        НовыйПрибор.Родитель          = Справочники.Клиенты.НайтиПоНаименованию("Варваровка");
        НовыйПрибор.Записать();
        строка = строка + 1;                
        
    КонецЦикла;    
    
    Страница=Страница+1    
    КонецЦикла
    КонецПроцедуры

Пытался вот так по тупому заменить символ - не получается. Также пытался заменить его с помощью функции Символ(), тоже не получилось. Подскажите, что делать.

Ardi Подменю пользователя
сообщение 17.11.11, 13:29
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

перебрать все буквы слова и найти каким кодом кодируется здесь энтер.
Сообщить(текБуква);
Сообщить(Код(текБуква));

а потом заменять
ДляНим2 = СтрЗаменить(ДляНим2,Симв(НайденыйКодЭнтера)," ");


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

aby_2503 Подменю пользователя
сообщение 17.11.11, 13:35
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ardi @ 17.11.11, 13:29) *
перебрать все буквы слова и найти каким кодом кодируется здесь энтер.
Сообщить(текБуква);
Сообщить(Код(текБуква));

а потом заменять
ДляНим2 = СтрЗаменить(ДляНим2,Симв(НайденыйКодЭнтера)," ");


Так я знаю код - 182. Код тоже не помогает!

Ardi Подменю пользователя
сообщение 17.11.11, 13:51
Сообщение #4

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(aby_2503 @ 17.11.11, 14:35) *
Так я знаю код - 182. Код тоже не помогает!

Тогда проблема не в экселе, и не в 1с.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

pablo Подменю пользователя
сообщение 17.11.11, 13:52
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

А может там все-таки два символа кодируют энтер?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

MATEVI Подменю пользователя
сообщение 17.11.11, 13:59
Сообщение #6

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

очень даже может быть 2

WKBAPKA Подменю пользователя
сообщение 22.12.11, 17:34
Сообщение #7

Будьте осторожны, кидала
**
Группа: Заблокированные
Сообщений: 34
Спасибо сказали: 0 раз
Рейтинг: 0

ну да, два символа, конец строки и перевод каретки

ну если функцией никак не заменить, тогда можно написать простую функцию ну типа:
ДлинаСтр = СтрДлина(МояСтрока);

ИтСтрока = "";
Для инд = 1 По ДлинаСтр Цикл
  Симв = Сред(МояСтрока,инд,1);
  Если КодСивмола(Симв) = НеНужныйКод Тогда
    Продолжить;
  Иначе
    ИтСтрока = ИтСтрока + Симв;
  КонецЕсли;
КонецЦикла;

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 0:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!