Имя: Пароль:
1C
1С v8
Тот же самый экспорт
,
0 Kamich
 
06.06.13
22:57
Добрый вечер форумчани. Есть некая проблема при экспорте данных из екселя. Суть такова:имеется ексель файл.в котором есть три основные колонки.Формат колонок установлен как "Общий". Первая колонка это колонка телефоных номеров.вторая ФИО и третья адрес. В одинэсе имеется так же три реквизита с теми же названиями. Прописал код на экспорт таким образом,чтобы каждая строка екселя создавала новый документ в одинэсе.Все работает как надо,но проблема лишь в выводах полученной информации. Пример в екселе в колонке "телефон" указан номер телефона следующим образом "2552525". В одинесе установил также маску "999-99-99" на реквизит "Телефон".После экспорта открывая список полученных документов  в одинесе,и колонка с телефонами отображается не правильно то есть "2 55 25 25"а не "255-25-25".Почему не могу понять. Но вот парадокс,когда открываю любой документ номер телефона отображается как надо. И еще когда я начинаю редактировать реквизит "телефон",а именно просто удаляю последнюю цифру телефона а за тем,снова вписываю ту же цифру и делаю сохранение документа,то в списке всех документов только измененный документ в колонке телефон отображается как надо то есть "255 25 25". Пробовал маску тоже устанавливать в списке,но без полезно. Что не так?
1 dimqa
 
06.06.13
23:14
Я бы понавставлял СтрЗаменить() Лев() Сред() чтобы быть точно уверенным что номер телефона в таком виде, как мне надо
2 Kamich
 
08.06.13
14:33
(1) Пробовал...не помогло...какие еще есть варианты?
3 Kamich
 
08.06.13
15:17
Вот код:

   Для Строка = 1 По ExcelПоследняяСтрока Цикл
               
       ОбработкаПрерыванияПользователя();
       
       Стр=Документы.Документ1.СоздатьДокумент();
       Стр.Номер                = Строка;
       Стр.Дата=ТекущаяДата();
       Попытка
           Стр.НомерТелефона  = ExcelЛист.Cells(Строка, 1).Value;
           Стр.ФИО            = ExcelЛист.Cells(Строка, 2).Value;
           Стр.Адрес                = ExcelЛист.Cells(Строка, 3).Value;
       Исключение
           Сообщить("Ошибка чтения строки файла Microsoft Excel." + Строка + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
       КонецПопытки;
   Состояние("Обработка файла Microsoft Excel : "
        + "строка " + Строка + " из " + ExcelПоследняяСтрока);
       
        Стр.Проведен=Истина;
        Стр.Записать();
       
    КонецЦикла;
4 Kamich
 
08.06.13
15:22
(3) что изменить?
5 Жирафка
 
08.06.13
15:25
(4) попробуй телефон сразу преобразовать в строку с маской
6 Web00001
 
08.06.13
15:28
Маска то это же для формы, для удобства отображения, сам реквизит 1с хранит как ты его видишь в поле: чистым текстом. Так что надо сразу писать в нужном формате.
7 Kamich
 
08.06.13
15:32
(5) Так ?

Стр.НомерТелефона  = СтрЗаменить(ExcelЛист.Cells(Строка, 1).Value)," ","*");

Или по другому?!
8 Kamich
 
08.06.13
15:46
(6) А что если таких 250 000 строчек,и каждую нужно переделать?!

Тут ведь как то можно решить эту задачу..?)
9 Жирафка
 
08.06.13
15:47
(8) можно. за деньги.
10 Kamich
 
08.06.13
15:49
(9) понятно,что можно за деньги..
Но быть может другие люди приходят сюда длс того,чтобы поделиться опытом?*
11 Жирафка
 
08.06.13
15:50
(10) бесплатно с тобой поделились. Если тебе не понятно в каком направлении двигать дальше то смотри (9)
12 Kamich
 
08.06.13
15:51
(11) ты про (5) ?
13 Kamich
 
08.06.13
19:14
Примерчик бы.
14 mistеr
 
08.06.13
20:25
Для начала нужно понять, как у тебя описаны реквизиты документа. Сделай "Отчет по конфигурации" по этому документу в текстовом виде, закинь на pastebin. Дальше нужно уточнить что приходит из Экселя. Выведи ExcelЛист.Cells(Строка, 1).Value черед Сообщить(), обрамив чем-нибудь, напримет [].

Если хочешь, чтобы тебе помогли, позаботься о том, чтобы дать всю информацию по проблеме, причем в удобоваримом виде, не заставляй ленивых одинесников упражняться в телепатии. От этого потом голова болит.

И еще, для общего развития. "Экспорт" - это когда данные передаются из нашей рабочей системы (в данном случае 1С) вовне. А когда приходят извне в нашу систему, - это "импорт".
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший