1С ЗиК 366 программа "вылетает" при сохранении файла СЗВ-СТАЖ

1. Mx00 249 29.01.18 02:29 Сейчас в теме
При попытке сохранения файла СЗВ-СТАЖ если много сотрудников, то программа вылетает с ошибкой windows. Проблема в компоненте "Adodb.Stream" при записи большого файла АдоДБСтрим.WriteText(ТекстАдоДБСтрим)
Для исправления ситуации нужно в отчете ПодготовкаСведенийДляПФР2017 изменить последний блок в процедуре ФайлСЗВ_СТАЖ()
закомментированные строки - это то что было до исправления
// %изм% Mx Начало Большой файл отчета
//ТекстАдоДБСтрим = АдоДБСтрим.ReadText();
//АдоДБСтрим.Close();
//АдоДБСтрим.Charset = "utf-8";
//АдоДБСтрим.Open();
//АдоДБСтрим.WriteText(ТекстАдоДБСтрим);
//АдоДБСтрим.SaveToFile(ПолноеИмяФайла, 2);
//АдоДБСтрим.Close();
АдоДБСтрим2=СоздатьОбъект("ADODB.Stream");
АдоДБСтрим2.Type=2;
АдоДБСтрим2.Mode= 3;
АдоДБСтрим2.charset="utf-8";
АдоДБСтрим2.LineSeparator=-1;
АдоДБСтрим2.Open();
Всего=АдоДБСтрим.size;
Байт=255;
Пока АдоДБСтрим.EOS=0 Цикл
АдоДБСтрим2.WriteText(АдоДБСтрим.ReadText(Байт),?(Байт=-2,1,0));
Состояние("" + Формат(100 * АдоДБСтрим.position/Всего,"Ч(0)5.2")+"%");
КонецЦикла;
АдоДБСтрим2.SaveToFile(ПолноеИмяФайла,2);
АдоДБСтрим2.Close();
АдоДБСтрим.Close();
// %изм% Mx Конец

направление решения взял тут http://www.forum.mista.ru/topic.php?id=562533, автор smaharbA
laf; vatson2904; alexdm; di-pol; e-lexa; grig_nv; mister_tula; Pilot741; sashocq; al_ban; jack19; +11 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. jack19 148 29.01.18 10:06 Сейчас в теме
Спасибо. У меня правда не вылетала, а зависала программа, поэтому я отключал строки перекодировки в 1с, а перекодировал Акелпадом через ТоталКоммандер.
3. sashocq 193 01.02.18 17:34 Сейчас в теме
Сначала поискал здесь по инфостарту, с ходу не нашёл. Скрипт — самое первое и простое, что пришло в голову. Сделал свой велосипед: https://infostart.ru/public/778263/
За такой вариант спасибо, если там ещё в каких отчётах вылезет — попробую.
4. golod 08.02.18 12:46 Сейчас в теме
Не работает так, работает так
//// Сохраняем файл в кодировке UTF-8
    
    АдоДБСтрим = CreateObject("Adodb.Stream");    
    АдоДБСтрим.Charset="windows-1251";
    АдоДБСтрим.Type = 2;
    АдоДБСтрим.Mode= 3;
    АдоДБСтрим.Open();
    АдоДБСтрим.LoadFromFile(ПолноеИмяФайла); 
    ////Несытов{
    
    Байт=255;
    СтримВход=АдоДБСтрим;
    СтримВыход=СоздатьОбъект("ADODB.Stream");
    СтримВыход.Type=2;
    СтримВыход.charset="utf-8";
    СтримВыход.LineSeparator=-1;
    СтримВыход.Open();
    Всего=СтримВход.size;
    Пока СтримВход.EOS=0 Цикл
        СтримВыход.WriteText(СтримВход.ReadText(Байт),?(Байт=-2,1,0));
        Состояние("" + Формат(100 * СтримВход.position/Всего,"Ч(0)5.2")+"%");
    КонецЦикла;
    СтримВыход.SaveToFile(ПолноеИмяФайла,2);
    
    //ТекстАдоДБСтрим = АдоДБСтрим.ReadText();
    //АдоДБСтрим.Close();    
    //АдоДБСтрим.Charset = "utf-8";
    //АдоДБСтрим.Open();
    //АдоДБСтрим.WriteText(ТекстАдоДБСтрим);
    //АдоДБСтрим.SaveToFile(ПолноеИмяФайла, 2);
    //АдоДБСтрим.Close();
        
    ////Несытов}
    Если ФС.СуществуетФайл(ПолноеИмяФайла)=1 Тогда
        Предупреждение("Сформирован файл: " + ПолноеИмяФайла);
    КонецЕсли;
Показать
smokevg; laf; vatson2904; di-pol; bahus87; +5 Ответить
5. user912418 09.02.18 12:26 Сейчас в теме
Огромнейшее спасибо Олегу Несытову, я совсем не специалист и мне никто не мог помочь, изменила в конфигураторе ПодготовкаСведенийДляПФР2017 и вот оно счастье, всё заработало!!!! Ещё раз спасибо!!!
6. MenZurKa 13.02.18 10:52 Сейчас в теме
Гранд мерси! Заработало!)
7. Yul_kat 45 15.02.18 04:04 Сейчас в теме
8. 3627008639 15.02.18 11:36 Сейчас в теме
Cпасибо Олегу Несытову, помогло! Спасибо!!! Спасибо!!!Спасибо!!!Спасибо!!!Спасибо!!!Спасибо!!!Спасибо!!!
9. el_sol77 16.02.18 12:43 Сейчас в теме
Большое спасибо! Вы нам очень помогли!
10. MenZurKa 21.02.18 11:09 Сейчас в теме
Дополню чутка, у меня после данной дописки программа проверки начала выводить ошибку:
"в прологе проверяемого файла отсутствует указание кодировки или отсутствует пролог", я покурил интернеты и нашел, что 1С-ка сохраняет не в той кодировке, помогло в notepad++ изменить кодировку на UTF-8 без BOM, после чего ошибка ушла
smokevg; laf; +2 Ответить
11. laf 26.02.18 09:13 Сейчас в теме
Спасибо всем! За ветку, за способы решения проблемы. А то вываливается без объяснений ...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот