Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 00:37

Как убрать пометку с xml-файлов, загружаемых в 1С 7.7?

Автор Lilitana, 24 фев 2012, 09:17

0 Пользователей и 1 гость просматривают эту тему.

Lilitana

Здравствуйте! Поздравляю всех с Днем защитника отечества, желаю всего самого лучшего!
Подскажите, пожалуйста, как убрать пометку с xml-файлов, загружаемых в 1С 7.7, которые не были загружены в предыдущем цикле загрузки?
Есть обработка, которая загружает xml-файлы. В ней есть процедура, которая формирует список xml-файлов. В этом списке с любого файла можно снять пометку, соответственно    загрузятся только те файлы, на которых есть пометка. «Хорошие» файлы загружаются, создают документы и автоматически удаляются. Если в одном из загружаемых файлов есть ошибка, то такой файл не загрузится, выведется сообщение об ошибке и загрузка остановится. Повторное нажатие кнопки «Загрузить» повторяет загрузку оставшихся файлов либо до следующего файла с ошибкой, либо до конца списка файлов.
Нужно, чтобы со всех незагрузившихся  в предыдущем цикле файлов снималась пометка в списке файлов, тогда бы шла загрузка только файлов без ошибок. Я пока что сделала только так, чтобы в текущем цикле если файл содержит ошибку, то с него снимается эта пометка. Но после того, как найдется второй ошибочный файл, то пометка снимается со второго файла, а на первом восстанавливается.  Подскажите, пожалуйста, как убрать пометку и с текущего файла, и со всех предыдущих ошибочных файлов?
Процедура СформСписФайлов()
    Тзс=СоздатьОбъект("ТаблицаЗначений");
    Тзс.НоваяКолонка("Наим");
    Тзс.НоваяКолонка("Дат");
    Тзс.НоваяКолонка("Ном");
    СпФайлов.УдалитьВсе();
    МаскаИмени="C:\Tunes\obmen8_7\02-ПУ-*.xml";
    Зн=ФС.НайтиПервыйФайл(МаскаИмени);
    Пока ПустаяСтрока(Зн)=0 Цикл
        Тзс.НоваяСтрока();
        Тзс.Наим=Зн;
        Тзс.Ном=Лев(Зн,12);
        Чис=Сред(Зн,14,2);
        Мес=Сред(Зн,17,2);
        Год=Сред(Зн,20,4);
    Тзс.Дат=Дата(Год,Мес,Чис);
        Зн=ФС.НайтиСледующийФайл();
    КонецЦикла;
    Тзс.Сортировать("Дат,Ном");
    Тзс.ВыбратьСтроки();
    I=1;
    Пока Тзс.ПолучитьСтроку()=1 Цикл
        СпФайлов.ДобавитьЗначение(Тзс.Наим);
        СпФайлов.Пометка(I,1);
        I=I+1;
    КонецЦикла;   
КонецПроцедуры


Процедура Загрузить()
------------------------------
    Для к=1 По СпФайлов.РазмерСписка() Цикл
Если СпФайлов.Пометка(к)=0 Тогда
            Продолжить;
        КонецЕсли;
    Если ТипОперации= "ВыгрузкаАктовВыполненныхУслугПоНаселению" Тогда 
         ------------------------------------------------------
    ОшибкаЗагрузки=0;
        СоздатьДокументы();
            Если ОшибкаЗагрузки<>0 Тогда 
                Предупреждение("Загрузка прекращена, ошибка в файле "+ИмяФайла);
            СформСписФайлов();
                СпФайлов.Пометка(к,0);    
            Возврат;
            Иначе ФС.УдалитьФайл(ИмяФайла);
            КонецЕсли;
        Иначе
            Предупреждение("В файле неверно задана Операция. Загрузка прекращается");
            Возврат;
        КонецЕсли;
    КонецЦикла;   
    СформСписФайлов();
КонецПроцедуры

sergejK74

если закомментировать СформСписФайлов(); (оба раза)- что нибудь изменится?
Кнопочка Спасибо - слева!

Lilitana


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск