Имя: Пароль:
1C
1С v8
Кодировка для переноса текстового файла из 1С8.2 в 1С7.7
0 olmi
 
06.04.14
18:53
Простите, уже писала об этом, какая-то ошибка в оформлении поста, не авторизуюсь, повторяю.

Проблема: Создан текстовой документ в базе 8.2.

ФайлВыгрузки=НашФайл;
ТекДок=Новый ТекстовыйДокумент;
Стр="Всякости";
ТекДок.ДобавитьСтроку(Стр);
ТекДок.Записать(ФайлВыгрузки,"cp866");

Записывается, в TotalCommander читается как досовский файл, нормально.

В 7.7 пытаюсь прочитать:

ИмпортТекст=СоздатьОбъект("Текст");
ИмпортТекст.КодоваяСтраница(1);
ИмпортТекст.Открыть(ФайлИмпорта);
КолСтрок=ИмпортТекст.КоличествоСтрок();//КолСтрок>0
ИмпортСтрока=СокрЛП(ИмпортТекст.ПолучитьСтроку(1));

В ИмпортСтрока абракадабра.

Пробовала другие кодировки, в том числе Windows1251, KOI8R,
Записывала через
ТекДок.Записать(ФайлВыгрузки,КодировкаТекста.OEM); и
ТекДок.Записать(ФайлВыгрузки,КодировкаТекста.ANSI);
меняла кодовую страницу на 0 для WINDOWS-кодировок - бесполезно.
В Интернете пока ничего не нашла.
Перебирать все кодировки, возможные в 8.2, очень долго.

Буду благодарна за совет.
1 Wobland
 
06.04.14
18:55
совет раз: без фото не взлетит;
совет два: какую кодировку есть семёрочный Текст?
2 Wobland
 
06.04.14
18:55
(1) *ест
3 olmi
 
06.04.14
18:57
+(0) Антифлуд: задача - не плод моего больного воображения. Есть торговая база в 8.2, а бухгалтерия, куда надо выгружать инфу, еще 7.7., переводим только в конце года.
(1) Я написала про кодировку в 7.7 все, что знаю. В 7.7 надо ПРОЧИТАТЬ файл, созданный в 8.2.
4 Wobland
 
06.04.14
18:58
возьми КД ваще
5 olmi
 
06.04.14
18:59
(4) Мимо. Надо сделать именно то, что я прошу.
6 Wobland
 
06.04.14
18:59
(4) или она в обратную сторону не работает?
(3) придётся узнать больше
7 olmi
 
06.04.14
19:01
Я просила обойтись без флуда. Задача срочная. Можешь-помоги, не можешь-отдохни в другом посте, пожалуйста!
8 Wobland
 
06.04.14
19:02
я бы попросил мне не указывать
9 olmi
 
06.04.14
19:02
(6)Попробую в обратную сторону, это совет толковый.
10 olmi
 
06.04.14
19:03
(8) Я не указываю, просто не могу решить задачу, очень нужна помощь. Прошу прощения, если задела.
11 spectre1978
 
06.04.14
19:06
(0) кодировка для текста у семерки по умолчанию - 1251. 866 не в кассу.
12 olmi
 
06.04.14
19:16
(11) Я писала в (0), что пробовала записывать через Windows1251 и читать через КодоваяСтраница(0). Не получилось, кажется. Еще раз попробую. Или речь о другом варианте?
13 Wobland
 
06.04.14
19:19
в (0) несколько по-другому читается. а правда, что СП есть во всех платформах?
14 Torquader
 
06.04.14
19:21
Начнём с того, что 1С 7.7 умеет читать только Windows-1251.
Так что - читать что-то записанное не так не получится.
P.S. у меня как-то проблем с текстовыми файлами никогда не возникало - поставьте что-ли Far - он позволяет кодировку на лету менять и писать один файл сразу в нескольких кодировках.
15 spectre1978
 
06.04.14
19:22
ТекДок.Записать(ФайлВыгрузки, "windows-1251") - так делалось?
Если все будет записано верно, то в семерочной части не нужно будет никаких телодвижений с кодировкой вообще
16 Torquader
 
06.04.14
19:24
(15) А может быть вообще через Новый ЗаписьТекста делать ?
17 spectre1978
 
06.04.14
19:32
(16) кстати, да. Если нужно только писать то так проще
18 Torquader
 
06.04.14
19:33
(17) Да и память всю под файл не займёшь.
19 olmi
 
06.04.14
19:40
(14) - (18). Да, писала
ТекДок.Записать(ФайлВыгрузки, "windows-1251");
А при загрузке
ИмпортТекст.КодоваяСтраница(0);
Попробую ее вообще закомментить.
А (16) я еще не умею, в 8-ке только начинаю, работала в 7.7 раньше. Посмотрю, как это делать, и что на выходе, спасибо!)
20 olmi
 
06.04.14
19:46
(19) Не помогло. Посмотрю про Новый ЗаписьТекста.
Главное дело, в Total Commander читает нормально как ANSI(локальная кодовая страница (0).
А как поиграть с кодами в FAR Manager? Я с ним мало знакома, привыкла к Нортону.
21 Strogg
 
06.04.14
19:54
я для такого переноса как-то нарочно ставил фар и отображал ннпечатаемые символы. У меня первым символом шла ерунда. Убирал первый символ через Симв() по-моему
22 Torquader
 
06.04.14
19:56
(20) Пробуй.
И потом, не забывай, что и переводы строки должны быть правильными.
23 Torquader
 
06.04.14
19:58
(19) Как говорят здесь люди - продам СП дорого:

ЗаписьТекста (TextWriter)
ЗаписьТекста (TextWriter)
Методы:

Закрыть (Close)
Записать (Write)
ЗаписатьСтроку (WriteLine)
Открыть (Open)

Конструкторы:

По имени файла
Формирование неинициализированного объекта

Описание:

Предназначен для последовательной записи в текстовые файлы.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:

Текст = Новый ЗаписьТекста("d:\win.txt", КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Добро пожаловать!");
Текст.ЗаписатьСтроку("Посторонним вход воспрещен.");
Текст.Закрыть();


См. также:

ЧтениеТекста
ЗаписьТекста, конструктор По имени файла
24 Torquader
 
06.04.14
19:59
А в 1С, когда читаем, наверное, кодировка текста должна устанавливаться до метода Открыть.
25 _fvadim
 
06.04.14
20:05
(21) такая борода бывает с utf (bom пишется)
чтоб не разбираться так это или нет можно первую строку делать пустой и при загрузке пропускать.

(0) что за абракадабра? этой штукой расшифровывается
http://www.artlebedev.ru/tools/decoder/
?
26 Torquader
 
06.04.14
20:07
(25) Чтобы не наступать на грабли с UTF-ом, нужно создавать пустой файл, а потом его уже ДОПИСЫВАТЬ.
27 olmi
 
06.04.14
20:11
(21)-(26) Ребята, вы умницы!) Спасибо огромное!) Во-первых, перешла на ЗаписьТекста). Во-вторых, обнаружила еще и у себя ошибку попутно, так что по WINDOWS-1251, наверно, тоже прочлось бы).
Спасибо всем огромное!) Чтоб у вас все всегда получалось, дорогие!!!)
28 olmi
 
06.04.14
20:12
И все, написанное позже, конечно, пригодится!) За все спасибо!!!)