8.х проблема с текстовым документом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Muggsy, 12 окт 2009.

  1. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    у документа есть реквизит типа неограниченная строка, туда я заношу из текстового файла текст(построчно, разделяя разделителем) для контроля вывожу текст в поле ввода на форму - все нормально
    в процессе работы создается текстовый докумнт и в него пишется содержимое моего реквизита и текстовый документ сохраняет текст в файл.txt есть прога, написанная на делфи(исходников нет), которая прочитывает этот файл и рисует изделие на основе этих входящих данных
    так вот, она спотыкается на последней строке, в семерке тоже самое работает корректно
    в семерке:
    Код:
     // занесение инфы в файл
    Текст = СоздатьОбъект("Текст");  
    Если ФС.СуществуетФайл("C:\Beck.txt") = 1 Тогда   
    ТекстРисунка = "";
    Текст.Открыть("C:\Beck.txt");
    Для к=1 По Текст.КоличествоСтрок() Цикл   
    Если к=1 Тогда
    ТекстРисунка= Текст.ПолучитьСтроку(к); 
    Иначе   
    ТекстРисунка= ТекстРисунка+РазделительСтрок+Текст.ПолучитьСтроку(к);
    КонецЕсли;
    КонецЦикла;  
    ФС.УдалитьФайл("C:\Beck.txt");
    КонецЕсли;
    //вынесение инфы из реквизита
    Если СтрДлина(ТекстРисунка) <> 0 Тогда
    Текст = СоздатьОбъект("Текст");
    Если ФС.СуществуетФайл("C:\Beck.txt") = 1 Тогда   
    Текст.Открыть("C:\Beck.txt"); 
    Текст.Очистить();
    КонецЕсли;
    Текст.ДобавитьСтроку(СокрЛП(ТекстРисунка)); 
    Текст.Записать("C:\Beck.txt");
    КонецЕсли; 
    
    
    в восьмерке:
    Код:
    //занесение инфы
    ТекстПараметры = Новый ТекстовыйДокумент;
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/сообщить')">Сообщить("а" + ТекстПараметры.РазделительСтрок+"а");</span>
    
    ИмяФайла = "C:\Beck.txt";
    ВыбФайл = Новый Файл(ИмяФайла);
    Если ВыбФайл.Существует() Тогда
    ТекстРисунка = "";
    ТекстПараметры.Прочитать("C:\Beck.txt");
    Сообщить(ТекстПараметры.КоличествоСтрок());
    Для НомерСтроки = 0 По ТекстПараметры.КоличествоСтрок() Цикл 
    
    Если НомерСтроки=1 Тогда
    ТекстРисунка= ТекстПараметры.ПолучитьСтроку(НомерСтроки); 
    Иначе   
    ТекстРисунка= ТекстРисунка+ТекстПараметры.РазделительСтрок+ТекстПараметры.ПолучитьСтроку(НомерСтроки);
    
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    //вынесение
    Если СтрДлина(ТекстРисунка) <> 0 Тогда
    ТекстПараметры = Новый ТекстовыйДокумент;
    ИмяФайла = "C:\Beck.txt";
    ВыбФайл = Новый Файл(ИмяФайла);
    
    
    Если ВыбФайл.Существует()Тогда   
    ТекстПараметры.Прочитать("C:\Beck.txt"); 
    ТекстПараметры.Очистить();
    КонецЕсли;
    
    ТекстПараметры.УстановитьТекст(ТекстРисунка);
    ТекстПараметры.Записать("C:\Beck.txt");
    
    
    
    уже сравнивала текстовые файлы, кодировку пробовала проставить, а все равно не читается
    в чем подвох?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Что значит "спотыкается"?
  3. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    да я знаю что в восьмерке у меня цикл с 0 а строка 1 пишется - по разному цифры ставила, не получается
  4. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    пишет list index out of bounds (15)
    это она на поледнюю строку файла ругается, хотя проверила в семерке и в восьмерке по содержанию идентичные файлы выходят
    точнее первый раз в делфовой проге рисуется изделие, потом она выдает в текстовый файл его параметры, одноэс берет из этого файла данные и пишет в реквизит, а пото соответственно возвращает, чтобы делфовская прога могла рисунок изделия восстановить
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    И каковы результаты? Судя по коду в восьмерке получается файл в кодировке UTF-8, вот он и не читается.
  6. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    а у семерки какая????
    потому что делфовая прога писалась изначально под семерку
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код:
    Для НомерСтроки = 0 По ТекстПараметры.КоличествоСтрок() - 1 Цикл 
    
    Частая ошибка начинающих в 8-ке :)
  8. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    щас попробую
    неее в таком варианте первая строка пустая, последнюю не дописывает...

    ------------------------------------------
    а какая конкретно виндовс кодировка в семерке? ну в смысле, какую в восьмерку ставить, а то их там целая толпа :)
  9. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    написала так:
    Код:
    ТекстПараметры.Записать("C:\Beck.txt","windows-1250");
    
    
    
    вроед бы в семерке такая же кодировка..... не помогает
  10. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    windows-1251 нужно.
  11. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    не помогло :(
  12. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Выложите файлы из 7 и 8.
  13. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    вот!

    Вложения:

    • Beckх7.txt
      Размер файла:
      538 байт
      Просмотров:
      11
    • Beckх8.txt
      Размер файла:
      746 байт
      Просмотров:
      14
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Кодировка у файлов абсолютно одинаковая. Ключивые слова тоже.
    Думаю где-то на параметрах программе "крышу сносит"

    Вложения:

  15. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    так это одна и таже программа, просто изделия взяты разные, рисовала одинаковые изделия и там и там - в семерке работает, в восьмерке ругается на последнюю строку!
    хотя первые два параметра читает и воплощает "в жизнь"
  16. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    А если коду семерки из первого поста подсунуть файл сделанный восьмеркой, то такой файл программой обрабатывается нормально?
  17. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    такой файл обрабатывается нормально, мдяяя это уже интересней!
  18. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    уррррррра получилось! шаманство с кодировкой помогло! просто когда код в восьмерку переводила - так и перенесла в двух местах одинаковые участки кода и про второй забыла, вот там и надо было кодировку проставлять! :unsure:
    всем огромное спасибо!

Поделиться этой страницей