Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Выгрузка в текстовый файл, проблема переноса строки

v7: Выгрузка в текстовый файл, проблема переноса строки
Я
   falselight
 
08.05.19 - 18:01
Делаю выгрузку номенклатуры из ТиС в текстовый файл. Встала проблема того что текстовые поля,
наименование и полное наименование по какой то причине разрезаются на 2 поля. То есть если
должно выгрузиться 24 поля в кавычках, разделенных запятой, их бывает 24, или 25 или 26. И
сбивается нумерация при загрузке. Как быть в этом случае?

Как правильно обрабатывать при выгрузке?

Процедура ВыгрузитьНоменклатуру()
Перем Сч;
Сч      = 0;
ТекстН  = СоздатьОбъект("Текст");
СписокН = СоздатьОбъект("СписокЗначений");
СпрН    = СоздатьОбъект("Справочник.Номенклатура");
СпрН.ИспользоватьДату(ТекущаяДата(),);
СпрН.ВыбратьЭлементы();
НачатьТранзакцию();
Пока СпрН.ПолучитьЭлемент() = 1 Цикл    
    Если СпрН.ПометкаУдаления() = 1 Тогда
        Продолжить;
    КонецЕсли;
    Если СпрН.ЭтоГруппа() = 1 Тогда
        //
        // Группа                  // 1.
        // Код                     // 2.
        // Наименование            // 3.
        //
        // Артикул                // 4.
        // БазоваяЕдиница         // 5.
        // Весовой                // 6.
        // ВидНоменклатуры        // 7.
        // Комментарий            // 8.
        // МинОстаток             // 9.
        // НеВключатьВпрайс       // 10.
        // НомерГТД               // 11.
        // ОсновнаяЕдиница        // 12.
        // ОсновноеСвойство       // 13.
        // ПолнНаименование       // 14.
        // СтавкаНДС              // 15.
        // СтавкаНП               // 16.
        // СтранаПроисхождения    // 17.
        // Производитель          // 18.
        // Импортер               // 19.
        // АлкогольнаяПродукция   // 20.
        // ВидПродукции           // 21.
        // ВидЛицензии            // 22.
        // КоэффПересчетаДал      // 23.
        //
        // Родитель.Наименование  // 24.        
        // Родитель.Код           // 25.        
        //
        СписокН.ДобавитьЗначение("Гр.");                                 // Группа                 // 1.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Код));                      // Код                    // 2.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Наименование));             // Наименование           // 3.
        //
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Артикул));                // Артикул                // 4.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.БазоваяЕдиница));         // БазоваяЕдиница         // 5.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Весовой));                // Весовой                // 6.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидНоменклатуры));        // ВидНоменклатуры        // 7.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Комментарий));            // Комментарий            // 8.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.МинОстаток));                // МинОстаток             // 9.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.НеВключатьВпрайс));       // НеВключатьВпрайс       // 10.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.НомерГТД));                // НомерГТД               // 11.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ОсновнаяЕдиница));        // ОсновнаяЕдиница        // 12.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ОсновноеСвойство));       // ОсновноеСвойство       // 13.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ПолнНаименование));       // ПолнНаименование       // 14.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтавкаНДС));                // СтавкаНДС              // 15.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтавкаНП));                // СтавкаНП               // 16.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтранаПроисхождения));    // СтранаПроисхождения    // 17.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Производитель));          // Производитель          // 18.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Импортер));                // Импортер               // 19.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.АлкогольнаяПродукция));   // АлкогольнаяПродукция   // 20.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидПродукции));           // ВидПродукции           // 21.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидЛицензии));            // ВидЛицензии            // 22.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.КоэффПересчетаДал));      // КоэффПересчетаДал      // 23.
        //
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Родитель.Наименование));  // Родитель.Наименование  // 24..        
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Родитель.Код));           // Родитель.Код           // 25..        
        //
        ТекстН.ДобавитьСтроку(СписокН.ВСтрокуСРазделителями());    
        Сообщить("Выгружена группа «" + СокрЛП(СпрН.Наименование) + "»","|");
        СписокН.УдалитьВсе();
    Иначе            
        //
        // Элемент                  // 1.
        // Код                     // 2.
        // Наименование            // 3.
        //
        // Артикул                // 4.
        // БазоваяЕдиница         // 5.
        // Весовой                // 6.
        // ВидНоменклатуры        // 7.
        // Комментарий            // 8.
        // МинОстаток             // 9.
        // НеВключатьВпрайс       // 10.
        // НомерГТД               // 11.
        // ОсновнаяЕдиница        // 12.
        // ОсновноеСвойство       // 13.
        // ПолнНаименование       // 14.
        // СтавкаНДС              // 15.
        // СтавкаНП               // 16.
        // СтранаПроисхождения    // 17.
        // Производитель          // 18.
        // Импортер               // 19.
        // АлкогольнаяПродукция   // 20.
        // ВидПродукции           // 21.
        // ВидЛицензии            // 22.
        // КоэффПересчетаДал      // 23.
        //
        // Родитель.Наименование  // 24.        
        // Родитель.Код           // 25.        
        //
        СписокН.ДобавитьЗначение("Эл.");                               // Элемент                // 1.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Код));                      // Код                    // 2.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Наименование));             // Наименование           // 3.
        //
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Артикул));                // Артикул                // 4.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.БазоваяЕдиница));         // БазоваяЕдиница         // 5.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Весовой));                // Весовой                // 6.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидНоменклатуры));        // ВидНоменклатуры        // 7.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Комментарий));            // Комментарий            // 8.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.МинОстаток));                // МинОстаток             // 9.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.НеВключатьВпрайс));       // НеВключатьВпрайс       // 10.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.НомерГТД));                // НомерГТД               // 11.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ОсновнаяЕдиница));        // ОсновнаяЕдиница        // 12.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ОсновноеСвойство));       // ОсновноеСвойство       // 13.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ПолнНаименование));       // ПолнНаименование       // 14.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтавкаНДС));                // СтавкаНДС              // 15.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтавкаНП));                // СтавкаНП               // 16.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.СтранаПроисхождения));    // СтранаПроисхождения    // 17.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Производитель));          // Производитель          // 18.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Импортер));                // Импортер               // 19.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.АлкогольнаяПродукция));   // АлкогольнаяПродукция   // 20.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидПродукции));           // ВидПродукции           // 21.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.ВидЛицензии));            // ВидЛицензии            // 22.
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.КоэффПересчетаДал));      // КоэффПересчетаДал      // 23.
        //
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Родитель.Наименование));  // Родитель.Наименование  // 24.        
        СписокН.ДобавитьЗначение(СокрЛП(СпрН.Родитель.Код));           // Родитель.Код           // 25.        
        //
        ТекстН.ДобавитьСтроку(СписокН.ВСтрокуСРазделителями());    
        Сообщить("Выгружен элемент «" + СокрЛП(СпрН.Наименование) + "»","!");
        СписокН.УдалитьВсе();
        //ВыгрузитьЦены(СпрК.ТекущийЭлемент());     // выгрузка цен
        //ВыгрузитьЕдиницы(СпрК.ТекущийЭлемент());  // выгрузка единиц номенклатуры
    КонецЕсли;
    Сч = Сч + 1;
КонецЦикла;
//
ЗафиксироватьТранзакцию();
//
СписокН.ДобавитьЗначение("#"); // Конец файла            // 1.
СписокН.ДобавитьЗначение("");  // Код                    // 2.
СписокН.ДобавитьЗначение("");  // Наименование           // 3.
СписокН.ДобавитьЗначение("");  // Артикул                // 4.
СписокН.ДобавитьЗначение("");  // БазоваяЕдиница         // 5.
СписокН.ДобавитьЗначение("");  // Весовой                // 6.
СписокН.ДобавитьЗначение("");  // ВидНоменклатуры        // 7.
СписокН.ДобавитьЗначение("");  // Комментарий            // 8.
СписокН.ДобавитьЗначение("");  // МинОстаток             // 9.
СписокН.ДобавитьЗначение("");  // НеВключатьВпрайс       // 10.
СписокН.ДобавитьЗначение("");  // НомерГТД               // 11.
СписокН.ДобавитьЗначение("");  // ОсновнаяЕдиница        // 12.
СписокН.ДобавитьЗначение("");  // ОсновноеСвойство       // 13.
СписокН.ДобавитьЗначение("");  // ПолнНаименование       // 14.
СписокН.ДобавитьЗначение("");  // СтавкаНДС              // 15.
СписокН.ДобавитьЗначение("");  // СтавкаНП               // 16.
СписокН.ДобавитьЗначение("");  // СтранаПроисхождения    // 17.
СписокН.ДобавитьЗначение("");  // Производитель          // 18.
СписокН.ДобавитьЗначение("");  // Импортер               // 19.
СписокН.ДобавитьЗначение("");  // АлкогольнаяПродукция   // 20.
СписокН.ДобавитьЗначение("");  // ВидПродукции           // 21.
СписокН.ДобавитьЗначение("");  // ВидЛицензии            // 22.
СписокН.ДобавитьЗначение("");  // КоэффПересчетаДал      // 23.
СписокН.ДобавитьЗначение("");  // Родитель.Наименование  // 24.        
СписокН.ДобавитьЗначение("");  // Родитель.Код           // 25.        
//
ТекстН.ДобавитьСтроку(СписокН.ВСтрокуСРазделителями());    
Сообщить("Признак конца файла # установлен","!");
СписокН.УдалитьВсе();
//
ВыбПутьН = СтрЗаменить(ВыбПуть,"Vygruzka","VygruzkaNOMENKLATURA");
ТекстН.Записать(ВыбПутьН);
Сообщить("Из справочника НОМЕНКЛАТУРА выгружено: " + Сч + " элементов !");        
КонецПроцедуры
 
 
   falselight
 
1 - 08.05.19 - 18:04
Или нет, идет все нормально. Это у меня одна функция все портит.
Как в 1с 8.3. Принять такую выгрузку?

"Эл.","32114","Круглая алюм Л1-3 95х168х120( 530гр)","","шт","0","Товар (пр. ТМЦ)","","0","0","","шт","","Круглая алюм Л1-3 95х168х120( 0,53кг )","Без НДС","Без налога","","","","0","","","0","хлебо делие","33"
   Garykom
 
2 - 08.05.19 - 18:11
Открой для себя Симв(10), Симв(13) или по умному "\r\n"


https://ru.wikipedia.org/wiki/Управляющие_символы
   Garykom
 
3 - 08.05.19 - 18:16
(2)+ Только из строк все непечатные символы убрать обязательно.
Используй как разделители не "," а Симв(1) например, тогда и "" нефик не нужны.

Хотя тебе уже предложили разделителем использовать не одну кавычку а сочетение из трех символов "," Но в строку 1С это будет записано с помощью удвоения кавычек как """,""".
В нормальных языках символы экранируют через \ вот так "\",\""
   falselight
 
4 - 08.05.19 - 18:16
Вот строка в 1с 8.3 идет как есть. Все нормально.

"Эл.","32114","Круглая алюм Л1-3 95х168х120( 530гр)","","шт","0","Товар (пр. ТМЦ)","","0","0","","шт","","Круглая алюм Л1-3 95х168х120( 0,53кг )","Без НДС","Без налога","","","","0","","","0","хлебо делие","33"


Но. Функции, возвращают обрезанный массив и список значений. Почему? Строка то идет нормальная.


//

// Функция "расщепляет" строку на подстроки, используя заданный 
//        разделитель. Разделитель может иметь любую длину. 

//        Если в качестве разделителя задан пробел, рядом стоящие пробелы 
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр

//        игнорируются.
//        Например, 

//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, 
//        три из которых - пустые строки, а 

//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//

//    Параметры: 
//        Стр -             строка, которую необходимо разложить на подстроки. 

//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.

//
//

//    Возвращаемое значение:
//        массив значений, элементы которого - подстроки

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


// Функция формирует список значений из строки с разделителями.

//
// Параметры

//  СтрокаТекста - строка текста с разделителями
//  Разделитель - Строка, разделитель в тексте

//  НаличиеКавычек - Булево, есть ли кавычки вокруг значений в строке
//

// Возвращаемое значение:
//   СписокЗначений

//
Функция ИзСтрокиСРазделителями(СтрокаТекста, Разделитель, НаличиеКавычек, ТекстСТабуляциями = Ложь) Экспорт
    Если ТекстСТабуляциями Тогда
        НаличиеКавычек = Ложь;
        Разделитель    = Символы.Таб;
    КонецЕсли; 
    СписокДанных       = Новый СписокЗначений;
    ПрошлыйРазделитель = 0;
    КоличествоСимволов = 0;
    Для а = 1 По СтрДлина(СтрокаТекста) Цикл
        Если Сред(СтрокаТекста,а,1) = Разделитель Тогда
            ВыбранноеЗначение = Сред(СтрокаТекста,(ПрошлыйРазделитель + 1),КоличествоСимволов);
            Если НаличиеКавычек Тогда
                ВыбранноеЗначение = Сред(ВыбранноеЗначение, 2, (СтрДлина(ВыбранноеЗначение) - 2));
            КонецЕсли;
            Если ТекстСТабуляциями Тогда
                ВыбранноеЗначение = СтрЗаменить(ВыбранноеЗначение, (""""""), """");
                Если Сред(ВыбранноеЗначение, 1, 1) = """" Тогда
                    ВыбранноеЗначение = Сред(ВыбранноеЗначение, 2);
                КонецЕсли;
                Если Сред(ВыбранноеЗначение, СтрДлина(ВыбранноеЗначение), 1) = """" Тогда
                    ВыбранноеЗначение = Сред(ВыбранноеЗначение, 1, (СтрДлина(ВыбранноеЗначение) - 1));
                КонецЕсли;
            КонецЕсли; 
            СписокДанных.Добавить(ВыбранноеЗначение);
            ПрошлыйРазделитель = а;
            КоличествоСимволов = 0;
            Продолжить;
        КонецЕсли;
        КоличествоСимволов = КоличествоСимволов + 1;
    КонецЦикла; 
    ВыбранноеЗначение = Сред(СтрокаТекста,(ПрошлыйРазделитель + 1));
    Если НаличиеКавычек Тогда
        ВыбранноеЗначение = Сред(ВыбранноеЗначение, 2, (СтрДлина(ВыбранноеЗначение) - 2));
    КонецЕсли; 
    Если ТекстСТабуляциями Тогда
        ВыбранноеЗначение = СтрЗаменить(ВыбранноеЗначение, (""""""), """");
        Если Сред(ВыбранноеЗначение, 1, 1) = """" Тогда
            ВыбранноеЗначение = Сред(ВыбранноеЗначение, 2);
        КонецЕсли;
        Если Сред(ВыбранноеЗначение, СтрДлина(ВыбранноеЗначение), 1) = """" Тогда
            ВыбранноеЗначение = Сред(ВыбранноеЗначение, 1, (СтрДлина(ВыбранноеЗначение) - 1));
        КонецЕсли;
    КонецЕсли; 
    СписокДанных.Добавить(ВыбранноеЗначение);    
    Возврат СписокДанных;
КонецФункции
//
   falselight
 
5 - 08.05.19 - 18:18
   Garykom
 
6 - 08.05.19 - 18:18
(4) Ответ: "Потому что некто не гениальный не очень обученный"

Не подходит?
   Garykom
 
7 - 08.05.19 - 18:19
"Круглая алюм Л1-3 95х168х120( 0,53кг )"


запятую видишь? а она есть!
   Garykom
 
8 - 08.05.19 - 18:21
И да. Формат https://ru.wikipedia.org/wiki/CSV думаешь просто так придумали?
   falselight
 
9 - 08.05.19 - 18:26
А как в выгрузке использовать двоеточие в 7.7?
Там же это функция выгружает сама.
   falselight
 
10 - 08.05.19 - 18:26
(8) Я в нем и выгружаю.
   falselight
 
11 - 08.05.19 - 18:28
Хочу понять как мне правильно сделать?
   Garykom
 
12 - 08.05.19 - 18:29
(10) Извини но ты или не читал описание CSV или не понял.

Что тут не понятно?
"Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд."

Числа, даты и строки без " или прочих служебных символов не надо заключать в ""

Примерно вот так выглядит CSV
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture «Extended Edition»","",4900.00
1996,Jeep,Grand Cherokee,"MUST SELL! air, moon roof, loaded",4799.00
   falselight
 
13 - 08.05.19 - 18:36
(12) Я не понял как мне сделать выгрузку что бы её можно было нормлаьно обрабатывать, код в (0)
   falselight
 
14 - 08.05.19 - 18:37
(12) Там же помещается все вот этой функцией.

        ТекстН.ДобавитьСтроку(СписокН.ВСтрокуСРазделителями());
   falselight
 
15 - 08.05.19 - 18:38
(12) Я не понимаю что мне сейчас сделать!
   Garykom
 
16 - 08.05.19 - 18:42
(15) При загрузке:
Разделитель  = """,""";
   falselight
 
17 - 08.05.19 - 18:43
(16) То есть не такой
Разделитель = ",";


А

Разделитель  = ""","""; ?

Не пойму, как это поможет (((((
   Garykom
 
18 - 08.05.19 - 18:44
(17) Ты сначала попробуй
   Garykom
 
19 - 08.05.19 - 18:45
(18)+ Но только при загрузке такой разделитель
   falselight
 
20 - 08.05.19 - 18:45
(18) Я попробую.

То есть получается выгрузка в (0) адекватная?
   falselight
 
21 - 08.05.19 - 18:46
(19) Ясно. Буду использовать ваш
Разделитель  = """,""";

Я хочу понять в чем дело? В разделителе? Что его нужно указать Разделитель  = """,""";

Или выгрузку править?
   Garykom
 
22 - 08.05.19 - 18:47
Если данные потом загружаются то любая выгрузка адекватная, если не загружаются никак то не адекватная.
   hhhh
 
23 - 08.05.19 - 18:48
(20) вот же у тебя ( 0,53кг )  лишняя запятая. Видно невооруженным глазом. делай как все ( 0.53кг )   ставь точку.
   Garykom
 
24 - 08.05.19 - 18:49
(21) Ты точно не троллишь?
Для меня сложно понять что некто ("программист") не может понять такой простой штуки.

Вот тут у тебя между строками везде "," (кавычка запятая кавычка) а внутри значений полей такое хрен встретишь только одиночные , (запятая)
"Эл.","32114","Круглая алюм Л1-3 95х168х120( 530гр)","","шт","0","Товар (пр. ТМЦ)","","0","0","","шт","","Круглая алюм Л1-3 95х168х120( 0,53кг )","Без НДС","Без налога","","","","0","","","0","хлебо делие","33"
   falselight
 
25 - 08.05.19 - 18:52
(24) Я устал как черт потому что!!!!!!!!
(23) Я не правлю данные!!!!! Мне нужно их перенести в другую базу!!!!!!!

(24) Да я понимаю это, увидел!!! Я пока не понял как это обойти!!!!!

Если выгрузка не адекватная, в чем смысл этого разделителя??????
Если нужно выгрузку в (0) сначала сделать правильной!
   falselight
 
26 - 08.05.19 - 19:04
Как мне при выгрузке понимать, есть там запятая или щнет. Ставить кавычки или нет.
   hhhh
 
27 - 08.05.19 - 19:47
(25) запятых точно не должно быть. А так как запятые у тебя в данных запрещены, то ты должен поправить эти данные, везде заменить запятые на точки.
   palsergeich
 
28 - 08.05.19 - 19:50
Это же по факту CSV.
открой его в EXCEL.
Сохрани как лист в EXCEL
и прочитай в табдок\тз уже без этой жопаболи
   hhhh
 
29 - 08.05.19 - 19:51
(27) + или делай разделитель не запятую, а ";". Какого хрена ты забабахал разделитель запятую, если знаешь, что у тебя в наименованиях полно запятых?
   palsergeich
 
30 - 08.05.19 - 19:56
Делаешь 3 простых шага:
1) Тупейшим стр заменить меняешь "," на ";"
2) Открываешь файл в EXCEL и сохраняешь как xsls
3) читаешь xslx в табок
 
 
   palsergeich
 
31 - 08.05.19 - 19:57
Я сделал это со строкой из (1) и все прошло супер.
   palsergeich
 
32 - 08.05.19 - 19:58
(30) СтрЗаменить(Строка, """","""", """";"""")
   palsergeich
 
33 - 08.05.19 - 20:02
https://yadi.sk/i/vleGij59i2HpIg
Дел на 5 минут
   GreyK
 
34 - 08.05.19 - 20:16
(0) А может сделать правила выгрузки в КД2?
Не, мы не ищем лёгких путей?
   palsergeich
 
35 - 08.05.19 - 20:17
(34) КД 2 тот еще кактус, тут с экселем то не очень
   GreyK
 
36 - 08.05.19 - 20:29
(35) Ну если не нравится кактусы кушать, хотя КД2 к кактусам и не относится, но на вкус и цвет... , то делаешь конструктором запросов в 7ке табличку по быстрому и сохраняешь её в эксель, ну и изучаешь загрузку из эксель (это точно кактус) в 8ке.
   palsergeich
 
37 - 08.05.19 - 20:30
(36) платформа уже умеет читать Ексель в табдок одной строкой
   GreyK
 
38 - 08.05.19 - 20:40
(37) 8 платформа даже сохраненный из 77 в эксель файл не может прочитать, т.к. 7ка сохраняет в формате 95 экселя, а 8 платформу заточили под 97 и выше. Вот такие пироги.
   palsergeich
 
39 - 08.05.19 - 20:41
(38) речь идет о разовой выгрузке.
Никакой принципиальной сложности открыть и сохранить в понимаемом 1с формате не вижу.
   mikecool
 
40 - 08.05.19 - 20:43
2 cthbz vfhktpjycrjuj ,fktnf///
   mikecool
 
41 - 08.05.19 - 20:43
2 серия марлезонского балета ))
   Aleksey
 
42 - 08.05.19 - 20:43
(30) я бы еще двойные ковычки заменил на одинарные
   palsergeich
 
43 - 08.05.19 - 20:43
(41) пофиг, я жду когда пробки рассосуться)
   mikecool
 
44 - 08.05.19 - 20:45
(43) это где в 9 вечера пробки? оО
   MWWRuza
 
45 - 08.05.19 - 20:46
Для обмена 7.7 => 8.Х гораздо проще использовать XML... Все эти "ВСтрокуСРазделителями" и обратно, работают хорошо, когда 7.7 <=> 7.7. И никакие символы не мешают, пофик, и запятые, и точки с запятыми, и прочая лабуда корректно экранируются автоматом. В восьмерке немного по другому, функции абсолютно аналогичной нет. По крайней мере не было, когда я первый раз, лет пять назад с этим столкнулся. Пришлось вручную делать, а это - не комильфо... Стал использовать XML после этого, и нет проблем.
   Aleksey
 
46 - 08.05.19 - 20:47
(44) ну не везде же сейчас 9 вечера...
   mikecool
 
47 - 08.05.19 - 20:48
(46) а где 6? в лондоне?
   palsergeich
 
48 - 08.05.19 - 20:53
   mikecool
 
49 - 08.05.19 - 20:56
(48) какая прелесть, дороги созрели )
у меня жена, еще живя в Мск, всегда работу выбирала так, чтобы против пробок ездить
   GreyK
 
50 - 08.05.19 - 20:56
(39) Я про разовую загрузку и веду речь, в 8ке есть такой кактус для загрузки справочников. Я его не ем, но советы по его поеданию даю :)
Есть много вариантов загрузки в 8ку, КД2, прямое подключение и самый страшный "выгрузка-загрузка из файла", хотя на первый взгляд он самый простой, но это ощущение быстро проходит и в речи появляются маты от загнанных в полное наименование символов.
   palsergeich
 
51 - 08.05.19 - 20:57
(49) Я работу выбираю, что бы на МЦК было удобно ездить.
Нафиг машина в будни в МСК
   mikecool
 
52 - 08.05.19 - 20:58
а мцк это что? я же из деревни, не знаю )
   palsergeich
 
53 - 08.05.19 - 20:59
(50) Файл уже есть.
Я просто рассказал как быстро и подручными средствами получить необходимый результат из имеющихся данных, не прибегая к софистике.
   palsergeich
 
54 - 08.05.19 - 20:59
Моим способом - 5 минут.
Переделывать на КД - часы
   palsergeich
 
55 - 08.05.19 - 21:02
(52) http://mosmetro.ru/mcc/ очень прикольная штука кстати
   mikecool
 
56 - 08.05.19 - 21:03
(55) тогда я совсем не въезжаю, а при чем здесь пробки? метро в пробках стоит? ))
   palsergeich
 
57 - 08.05.19 - 21:04
(56) МКЦ был в контексте работы)
А мне на дачу)
   GreyK
 
58 - 08.05.19 - 21:07
(54) В КД только загрузка описаний методанных долгое, потом всё быстро и понятно, да и упоминание "разовость" в описании загрузки просто умиляет. Процедура с подготовкой базы, потом тестовые загрузки и это всё "разово"!? Пятнично
   palsergeich
 
59 - 08.05.19 - 21:08
(58) Ты просто не в курсе, у автора был сегодня еще один топик, где он познал особенности найтиПоНаменованию и иерархических справочников.
   Злопчинский
 
60 - 08.05.19 - 21:18
Блин капец развели бодягу
У меня слов нет
   Garykom
 
61 - 08.05.19 - 21:41
(60) Я все еще думаю что ТС разводит, ибо ну очень сложно так тупить
   mikecool
 
62 - 08.05.19 - 21:45
(61) а пример в 1000 строк в шапку где ищет? )))
   mikecool
 
63 - 08.05.19 - 21:46
(57) да, сложно в Мск )))
помню, чтобы ярославку проехать и постоять всего час в пробке выезжать в субботу надо было в 4 утра )
   palsergeich
 
64 - 08.05.19 - 21:57
(63) ща получше стало, ярославку реконструировали.
В 7 ещё терпимо.
   hhhh
 
65 - 09.05.19 - 07:15
(64) наиболее хитропопые уже давно поменяли график. На дачу ездят в четверг. А в субботу возвращаются.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.