Имя: Пароль:
1C
1С v8
Удаление лишних символов перевода строки из csv файла
,
0 asder117
 
06.07.22
17:02
Доброго времени суток. База УПП.

Формируем файлик с остатками
Пока Выборка.Следующий() Цикл
         Счетчик = Счетчик + 1;
        Если Выборка.Количество <= 0 тогда
            
            продолжить;
        КонецЕсли;
        Если Выборка.Номенклатура.Артикул = "" тогда
            продолжить;
        КонецЕсли;

        если Текст="" тогда
           Текст="Артикул;Свободный остаток склад Казань" + Символы.ПС;
           //Текст="";
       КонецЕсли;
       Если Счетчик = Выборка.Количество()-1 Тогда
    Текст = Текст + СОКРЛП(Выборка.Номенклатура.Артикул) + разделитель + Выборка.Количество;
Иначе
    Текст = Текст + СОКРЛП(Выборка.Номенклатура.Артикул) + разделитель + Выборка.Количество + Символы.ПС;
    КонецЕсли;
КонецЦикла;
кодировка = КодировкаТекста.UTF8;
          ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);          
          ТекстовыйФайлЗапись.ЗаписатьСтроку(текст);
          ТекстовыйФайлЗапись.Закрыть();

При записи в конце появляются два перевода строки и система которая должна загрузить файл не может прогрузить
"
Y0000007417;2
200051;70200050;156


"
Как убрать последний символ ПС? Спасибо
1 1Сергей
 
06.07.22
17:04
Перед циклом счетчик обнуляется?

//Если Счетчик = Выборка.Количество()-1 Тогда
Если Счетчик = Выборка.Количество() Тогда
2 Kassern
 
06.07.22
17:04
Попробуйте так, если лень логику записи менять. ТекстБезПСВКонце=Лев(Текст,СтрДлина(Текст)-1);
3 butterbean
 
06.07.22
17:05
Записать(СокрП(Текст)) вместо ЗаписатьСтроку(текст)
4 Kassern
 
06.07.22
17:06
(3) у ему ведь нужен один ПС в конце, а второй срезать. СокрП срежет оба вроде.
5 butterbean
 
06.07.22
17:07
(4) а, не понял, что только один. Тогда просто Записать(Текст)
6 arsik
 
гуру
06.07.22
17:08
1) СтрРазделить без включения пустых
2) Добавить в конец пустую
3) СтрСоединить
7 asder117
 
06.07.22
17:09
(1) да
8 Kigo_Kigo
 
06.07.22
17:10
(4) Записать(СокрП(Текст) + Символы.ПС )
9 Галахад
 
гуру
06.07.22
17:10
(4) Хм. Вроде наоборот ТС хочет без ПС.
10 Галахад
 
гуру
06.07.22
17:12
(6) + 1.
Массив.Добавить(СОКРЛП(Выборка.Номенклатура.Артикул) + разделитель + Выборка.Количество);
Текст = СтрСоединить(Массив, Символы.ПС);
11 1Сергей
 
06.07.22
17:14
(7) отладчиком бы проверил, заходит ли в условие и когда
12 asder117
 
06.07.22
17:15
(5) Спасибо взлетело.
Остальным тоже спасибо за советы. Для себя учту
13 asder117
 
06.07.22
17:15
(11) заходит
14 asder117
 
06.07.22
17:17
(8) тоже интересный вариант)
15 Garykom
 
гуру
06.07.22
20:39
а когда появится ЗаписьCSV в 1С?
16 Garykom
 
гуру
06.07.22
20:40
(15) + с корректным экранированием строковых
17 ДедМорроз
 
06.07.22
23:52
А какое там экранирование?
Там же только кавычки задваивпются,а все,что в кавычках,как есть пишется.
18 Garykom
 
гуру
07.07.22
00:14
(17) Где нить у ТС видишь кавычки для строковых?
Он проверяет что там внутри, надо ли брать в кавычки с удвоением их если они внутри?

Что он будет делать если внутри артикула будет "блабла","блабла"
19 Garykom
 
гуру
07.07.22
00:15
(18)+ так и выведет
..., блабла","блабла, ...

или все же сделает правильно
...,"блабла"",""блабла",...
20 asder117
 
07.07.22
08:59
(18) Ну от кривых рук защиты и обхода еще не придумали а у УПП уникальности артикулов и подавно
21 Мимохожий Однако
 
07.07.22
09:02
(0) Мне этот фрагмент не нравится
.
Если Выборка.Номенклатура.Артикул = "" тогда
            продолжить;
        КонецЕсли;
...
Убери символы ПС, которые сам добавляешь
22 Garykom
 
гуру
07.07.22
09:07
(20) пофиг
речь что формат https://ru.wikipedia.org/wiki/CSV не соблюдается
где "Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд"
23 uno-group
 
07.07.22
11:17
Артикулы если через копи пасте вставляют то даже если он отнострочкая строка он может содержать символы которые в CSV воспринимаются как перевод строки. нужно проверять и заменять из на пробелы и т.п.
24 Garykom
 
гуру
07.07.22
11:20
(23) А если не артикул а комментарий/описание многострочное?
Не надо там заменять, надо просто правильно в " взять