Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 апр 2025, 20:26

Убрать пробел в числе при экспорте в CSV

Автор kot488, 22 дек 2017, 16:41

0 Пользователей и 1 гость просматривают эту тему.

kot488

Подскажите пожалуйста, как можно убрать пробелы между числами, что бы не было 1 000 а было 1000.
Делается запрос к внешнему источнику данных и потом формируется 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 КАК ЦенаУслуги, | PRAJS_LIST.PRINTING КАК Печатать |ИЗ | ВнешнийИсточникДанных.MEDUCHET.Таблица.PRAJS_LIST КАК PRAJS_LIST |ГДЕ | PRAJS_LIST.KASSOVYJ_KOD > 0 | И PRAJS_LIST.CYENA > 0 | И PRAJS_LIST.PRINTING = 0 | |УПОРЯДОЧИТЬ ПО | ВнутреннийКодГруппыУслуг"; Результат = Запрос.Выполнить(); ТаблицаЗначений = Результат.Выгрузить(); возврат ТаблицаЗначений; КонецФункции // Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель) разделитель = ";"; колонкиТЗ=ТаблицаЗначений.колонки; Для каждого колонка Из колонкиТЗ Цикл стрКолонки = "" + стрКолонки + колонка.Имя + разделитель ; КонецЦикла; Возврат стрКолонки; КонецФункции Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель) текст=""; для каждого запись из ТаблицаЗначений Цикл если текст="" тогда текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель) + Символы.ПС; КонецЕсли; сообщить(запись.НазваниеУслуги); текст = текст + запись.ВнутреннийКодГруппыУслуг + разделитель + запись.НазваниеГруппыУслуг + разделитель + запись.ВнутреннийКодПодгруппыУслуг + разделитель + запись.НазваниеПодгруппыУслуг + разделитель + запись.ВнутреннийКодУслуги + разделитель + запись.НазваниеУслуги + разделитель + запись.КассовыйКодУслуги + разделитель + запись.ЦенаУслуги + Символы.ПС; КонецЦикла;     //сообщить(текст); Возврат текст; КонецФункции // Функция ЗаписатьCSV(текст,имяФайла)          кодировка = КодировкаТекста.UTF8;     ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка); ТекстовыйФайлЗапись.ЗаписатьСтроку(текст); ТекстовыйФайлЗапись.Закрыть(); Возврат 0; КонецФункции // // Основная логика: Функция ВыгрузитьВCSV(имяФайлаCSV);     разделитель = ";"; ТаблицаЗначений = ПолучитьНоменклатуру(); текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель); ЗаписатьCSV(текст,имяФайлаCSV); КонецФункции

alex0402

Цитата: kot488 от 22 дек 2017, 16:41Подскажите пожалуйста, как можно убрать пробелы между числами, что бы не было 1 000 а было 1000.
Формат(Число,"ЧГ=0")
Спасибо за Сказать спасибо

kot488

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

AIFrame

Можно выгрузить эти колонки из результата запроса, отформатировать значения и загрузить в ТЧ обратно.
Либо не выгружая обойти все строки в ТЧ и поправить.
Вместо Формата еще можно использовать
строка = СтрЗаменить(строка, Символы.НПП, "");

kot488

Цитата: AIFrame от 22 дек 2017, 18:27
Можно выгрузить эти колонки из результата запроса, отформатировать значения и загрузить в ТЧ обратно.
Либо не выгружая обойти все строки в ТЧ и поправить.
Вместо Формата еще можно использовать
строка = СтрЗаменить(строка, Символы.НПП, "");

Если не тяжело, можете на примере показать как реализовать?

Дмитрий@

Или например "Строка = СтрЗаменить(Строка,Символ(160),"")"

ilyay

А если у вас ";" встретится внутри строки?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск