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

Хранилище

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

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



> При экспорте в CVS обрезает строку          
kot488 Подменю пользователя
сообщение 28.12.17, 9:32
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 205
Спасибо сказали: 3 раз
Рейтинг: 3.6

В 1С есть обработка которая подключается к firebird, вытагивает прайс и импортирует в csv. Экспорт проходит нормально, но с одной позицией проблема. При экспорте режит эту позицию пополом и получается не коректное отображение.

Вот код обработки
Функция ПолучитьНоменклатуру()

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_GRUPPY_USLUG.KOD_GRUPPY_USLUG КАК ВнутреннийКодГруппыУслуг,
|    PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_GRUPPY_USLUG.NAZVANIYE_GRUPPY_USLUG КАК НазваниеГруппыУслуг,
|    PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.KOD_PODGRUPPY_USLUG КАК ВнутреннийКодПодгруппыУслуг,
|    PRAJS_LIST.KOD_USLUGI.KOD_PODGRUPPY_USLUGI.NAZVANIYE_PODGRUPPY_USLUG КАК НазваниеПодгруппыУслуг,
|    PRAJS_LIST.KOD_USLUGI КАК ВнутреннийКодУслуги,
|    PRAJS_LIST.KOD_USLUGI.NAZVANIYE_USLUGI КАК НазваниеУслуги,
|    PRAJS_LIST.KASSOVYJ_KOD КАК КассовыйКодУслуги,
|    PRAJS_LIST.CYENA КАК ЦенаУслуги

|ИЗ
|    ВнешнийИсточникДанных.MEDUCHET.Таблица.PRAJS_LIST КАК PRAJS_LIST
|ГДЕ
|    PRAJS_LIST.KASSOVYJ_KOD > 0
|    И PRAJS_LIST.CYENA > 0
|    И PRAJS_LIST.PRINTING = -1
|    И PRAJS_LIST.DYEJSTVITYELNYJ = -1
|
|УПОРЯДОЧИТЬ ПО
|    ВнутреннийКодГруппыУслуг";

Результат = Запрос.Выполнить();
ТаблицаЗначений = Результат.Выгрузить();
возврат ТаблицаЗначений;
КонецФункции //
Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
    разделитель = ";";
    колонкиТЗ=ТаблицаЗначений.колонки;
    Для каждого колонка Из колонкиТЗ Цикл
        стрКолонки = "" + стрКолонки + колонка.Имя + разделитель;
    КонецЦикла;
    Возврат стрКолонки;
КонецФункции

Функция ЧислоВСтроку(Ч)

Возврат СтрЗаменить(Строка(Ч),Символы.НПП,"");
КонецФункции



Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)
    строка = СтрЗаменить(строка, Символы.НПП, "");
    текст="";
    для каждого запись из ТаблицаЗначений Цикл
        если текст="" тогда
            текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
                + Символы.ПС;    
        КонецЕсли;    
                
        сообщить(запись.НазваниеУслуги);
        текст = текст + ЧислоВСтроку(запись.ВнутреннийКодГруппыУслуг)
            + разделитель + запись.НазваниеГруппыУслуг
            + разделитель + ЧислоВСтроку(запись.ВнутреннийКодПодгруппыУслуг)
            + разделитель + запись.НазваниеПодгруппыУслуг
            + разделитель + ЧислоВСтроку(запись.ВнутреннийКодУслуги)
            + разделитель + запись.НазваниеУслуги
            + разделитель + ЧислоВСтроку(запись.КассовыйКодУслуги)
            + разделитель + ЧислоВСтроку(запись.ЦенаУслуги)
            + Символы.ПС;        
    КонецЦикла;
        
    //сообщить(текст);
    Возврат текст;

КонецФункции //
Функция ЗаписатьCSV(текст,имяФайла)              
    кодировка = КодировкаТекста.UTF8;
    
    ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);            
    ТекстовыйФайлЗапись.ЗаписатьСтроку(текст);
    ТекстовыйФайлЗапись.Закрыть();    
    Возврат 0;

КонецФункции //
// Основная логика:
Функция ВыгрузитьВCSV(имяФайлаCSV);
    
    разделитель = ";";
    ТаблицаЗначений = ПолучитьНоменклатуру();
    текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель);
    ЗаписатьCSV(текст,имяФайлаCSV);
    КонецФункции



Должно быть в одну строку, а делает пополам



В источнике никаких символов кроме пробела нет, подскажите пожалуйста в чем может быть проблема?

Moloko Подменю пользователя
сообщение 28.12.17, 9:51
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 93
Спасибо сказали: 20 раз
Рейтинг: 18

То, что пишет Google, не пробовали?
"Как преобразовать файл Excel в CSV:
1. В рабочей книге Excel откройте вкладку Файл (File) и нажмите Сохранить как (Save as). Кроме этого, диалоговое окно Сохранение документа (Save as) можно открыть, нажав клавишу F12.
2. В поле Тип файла (Save as type) выберите CSV (разделители – запятые) (CSV (Comma delimited))."
А сохранять табличный документ в xls, надеюсь, умеет каждый.

Vofka Подменю пользователя
сообщение 28.12.17, 10:01
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Moloko, причем здесь "преобразовать файл Excel в CSV"? faceoff.gif

kot488, возможно визуально символ на экране выглядит как пробел, но на самом деле то не пробел.

kot488 Подменю пользователя
сообщение 28.12.17, 10:08
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 205
Спасибо сказали: 3 раз
Рейтинг: 3.6

Цитата(Moloko @ 28.12.17, 9:51) *
То, что пишет Google, не пробовали?
"Как преобразовать файл Excel в CSV:
1. В рабочей книге Excel откройте вкладку Файл (File) и нажмите Сохранить как (Save as). Кроме этого, диалоговое окно Сохранение документа (Save as) можно открыть, нажав клавишу F12.
2. В поле Тип файла (Save as type) выберите CSV (разделители – запятые) (CSV (Comma delimited))."
А сохранять табличный документ в xls, надеюсь, умеет каждый.



Если бы нужно было это делать единожды, то и код не нужен быд бы.

Petre Подменю пользователя
сообщение 28.12.17, 10:26
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

kot488 @ Сегодня, 10:08 * ,
Очищайте добавляемые значения от символов перевода строк и прочих. Также позаботьтесь о приведении к стандарту значений, содержащих разделитель.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

kot488 Подменю пользователя
сообщение 04.01.18, 10:27
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 205
Спасибо сказали: 3 раз
Рейтинг: 3.6

Цитата(Vofka @ 28.12.17, 10:01) *
возможно визуально символ на экране выглядит как пробел, но на самом деле то не пробел.



Спасибо. Переделали позицию и все норм стало

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


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

 

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