Имя: Пароль:
1C
1С v8
Конвертировать ТабличныйДокумент в csv
0 Dolphinbet
 
21.08.15
15:46
При попытке сохранения табличного документа в формате XLSX происходит вылет с нехваткой памяти. Есть идея попробовать сохранить хотя бы в csv... Может у кого есть готовая обработочка?)
1 ДенисЧ
 
21.08.15
15:47
сохрани в mxl, потом отдельной утилитой от 1с конверьть
2 Dolphinbet
 
21.08.15
15:47
а что за утилита такая?
3 ДенисЧ
 
21.08.15
15:48
FileWorkShop - вроде так называется
4 User_Agronom
 
21.08.15
15:51
(0) csv - это обычный текстовый файл. В чём проблема, непонятно...
А то сейчас дети форточек насоветуют кучу мелких и мягких костылей))
5 Dolphinbet
 
21.08.15
16:00
FileWorkShop так это просто просмотр mxl файлов для тех у кого нет 1С ...
6 ДенисЧ
 
21.08.15
16:00
(5) чушь
7 Dolphinbet
 
21.08.15
16:00
В описании так написано)
8 Dolphinbet
 
21.08.15
16:02
Программа "1С:Предприятие - Работа с файлами" представляет собой отдельный программный продукт, который распространяется бесплатно. Она предназначена для просмотра и редактирования файлов 1С:Предприятия на тех компьютерах, где система 1С:Предприятие не установлена.
9 ДенисЧ
 
21.08.15
16:03
(8) Редактирования, Карл!
В том числе и конвертирования
10 Dolphinbet
 
21.08.15
16:05
(9) а чем она лучше для конвертирования чем собственно сама 1с? А как с помощью нее программно конвертировать mxl?
11 ДенисЧ
 
21.08.15
16:05
программн - никак
12 Dolphinbet
 
21.08.15
16:10
У меня кстати и в mxl отчет не сохраняется
13 Dolphinbet
 
21.08.15
16:10
Тоже пишет недостаточно памяти)
14 Dolphinbet
 
21.08.15
16:11
В общем походу надо обрабатывать данные табличного документа и формировать вручную csv....
15 stix2010
 
21.08.15
16:13
ты за время пока спрашивал уже мог бы все написать:

Обработочка

    ИмяФайлаВыгрузки=КаталогФайлов+"\"+ИмяФайла;
    Запись = Новый ЗаписьТекста(ИмяФайлаВыгрузки, КодировкаТекста.UTF8);
    //Выгружаем данные строки столбцов
    СтрокаСтолбцов="UID;ROOM;PERSON_ID;LASTNAME;FIRSTNAME;MIDDLENAME;BIRTHDATE;";
    СтрокаСтолбцов=СтрокаСтолбцов+"GENDER;BIRTHPLACE_COUNTRY;BIRTHPLACE1;BIRTHPLACE2;BIRTHPLACE3;BIRTHPLACE4;";
    СтрокаСтолбцов=СтрокаСтолбцов+"CITIZENSHIP;DOCUMENT_ID;TYPE;SERIES;NUMBER;ISSUEDATE;AUTHORITY;CODE;";
    СтрокаСтолбцов=СтрокаСтолбцов+"LIVINGPLACE_COUNTRY;LIVINGPLACE1;LIVINGPLACE2;LIVINGPLACE3;LIVINGPLACE4;LIVINGPLACE_STREET;";
    СтрокаСтолбцов=СтрокаСтолбцов+"LIVINGPLACE_HOUSE;LIVINGPLACE_BUILDING;LIVINGPLACE_FLAT;ARRIVALDATE;DEPARTUREDATE;";
    СтрокаСтолбцов=СтрокаСтолбцов+"REGISTRATIONDATE;EMPLOYEE";
    Запись.ЗаписатьСтроку(СтрокаСтолбцов);

    //и, поехали
    Для каждого с из Тз Цикл
     СтрокаДанных=""+cs(s.UID)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.ROOM)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.PERSON_ID)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LASTNAME)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.FIRSTNAME)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.MIDDLENAME)+";";
     СтрокаДанных=""+СтрокаДанных+Format(s.BIRTHDATE, "DF=yyy-MM-dd")+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.GENDER)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.BIRTHPLACE_COUNTRY)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.BIRTH_PLACE1)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.BIRTH_PLACE2)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.BIRTH_PLACE3)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.BIRTH_PLACE4)+";";
          СтрокаДанных=""+СтрокаДанных+cs(s.CITIZENSHIP)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.DOCUMENT_ID)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.TYPE)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.SERIES)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.NUMBER)+";";
     СтрокаДанных=""+СтрокаДанных+Format(s.ISSUEDATE,"DF=yyy-MM-dd")+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.AUTHORITY)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.CODE)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE_COUNTRY)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE1)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE2)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE3)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE4)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE_STREET)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE_HOUSE)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE_BUILDING)+";";
     СтрокаДанных=""+СтрокаДанных+cs(s.LIVINGPLACE_FLAT)+";";
     СтрокаДанных=""+СтрокаДанных+format(s.ARRIVALDATE,"DF=yyy-MM-dd")+";";
     СтрокаДанных=""+СтрокаДанных+format(s.DEPARTUREDATE, "DF=yyy-MM-dd")+";";
     СтрокаДанных=""+СтрокаДанных+format(s.REGISTRATIONDATE, "DF=yyy-MM-dd")+";";
         СтрокаДанных=""+СтрокаДанных+cs(s.EPMLOYEE)+";";

    

         Запись.ЗаписатьСтроку(СтрокаДанных);
    КонецЦикла;
     Запись.Закрыть();
     Сообщить(ИмяФайлаВыгрузки+" выгружен");
16 Dolphinbet
 
21.08.15
16:23
Так у меня не ТЗ а ТабличныйДокумент)
17 User_Agronom
 
21.08.15
16:27
(16) Его нельзя программно читать?
А лучше посмотреть откуда он получается.
18 Dolphinbet
 
21.08.15
16:28
СиЭсВи= новый ТекстовыйДокумент;
    Для стр=ПерваяСтрока по Таб.ВысотаТаблицы цикл
        текСтрока="";
        Для колонка=1 по Таб.ШиринаТаблицы цикл
            СтрокаМакета=стрзаменить(стр," ","");
            СтрокаМакета=стрзаменить(СтрокаМакета,символ(160),"");
            колонкаМакета=стрзаменить(колонка," ","");
            колонкаМакета=стрзаменить(колонкаМакета,символ(160),"");
            текЗначение=Таб.ПолучитьОбласть("R"+СтрокаМакета+"C"+колонкаМакета).текущаяобласть.текст;
            текЗначение=СтрЗаменить(текЗначение,Разделитель,"");
            текСтрока=текСтрока+?(колонка>1,Разделитель,"")+текЗначение;
        Конеццикла;
        СиЭсВи.ДобавитьСтроку(текСтрока);
    Конеццикла;
    СиЭсВи.Записать(Файлcsv);
19 aka AMIGO
 
21.08.15
16:30
Zyltrc^ CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы.

Подчеркиваю: текстовый!

т.е. создаещь тестовый файл, а сохраняешь его как *csv.
Точно-точно! у меня именно так одна обработка и работает..

только одно замечаньице: Мне пришлось разжделать значения таблицы не запятой, а точкой-с-запятой.

Нормально открывается в LibreOffice, в MS Excel, в блокноте :)
20 aka AMIGO
 
21.08.15
16:31
* Zyltrc^ = издержки копипаста :)
21 User_Agronom
 
21.08.15
16:33
(18) Теме час, а этот код ты писал около 5 минут))
22 Dolphinbet
 
21.08.15
16:34
(21) щас еще проверим что из этой затеи выйдет)
23 Dolphinbet
 
21.08.15
16:41
Блин наверно лучше использовать ЗаписьТекса, чем ТекстовыйДокумент...
24 stix2010
 
21.08.15
17:06
да и еще строки при формировании надо чистить от возможных в данных разделителей (это типа лучше "," не использовать), разделители в офисах настраиваются
25 Serginio1
 
21.08.15
17:11
Лучше использовать разделитель табулятор. Предварительно конечно очищать от них строку
26 Dolphinbet
 
21.08.15
17:51
Всем спасибо! Отчет сформировался)
27 mistеr
 
21.08.15
17:58
(12) У тебя похоже с отчетом проблемы.
28 Dolphinbet
 
21.08.15
18:38
(27) Да, он очень большой!