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

помогите разобраться

Автор rusrmm, 26 авг 2010, 10:59

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

rusrmm

написал обработку, но что-то не так, в чём дело не могу понять.
Описание:обработка должна в dbf файлах находить лицевые счета и выводить на печать таблицу с данными.
Вроде всё правильно, а не выходит(((

//*******************************************
Процедура Сформировать()
   ПутьКПапкеСdbfФайлами="C:\Новая папка\";
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   ИмяФайла = ФС.НайтиПервыйФайл(ПутьКПапкеСdbfФайлами+"*.dbf");
   Файл = СоздатьОбъект("XBASE");
   Найден=0;
   Пока ПустаяСтрока(ИмяФайла) = 0 Цикл
      Если (ИмяФайла <> "..") И (ИмяФайла <> ".") Тогда
         Файл.ОткрытьФайл(ПутьКПапкеСdbfФайлами+ИмяФайла,"");
         сообщить(ИмяФайла);
         Файл.КодоваяСтраница(1);
         Файл.Первая();   
         Пока Файл.ВКонце()=0 Цикл
            Если ЛСчёт=Файл.LCZN тогда
               ЛицСчёт = Файл.LCZN;   
               ФИО=Файл.FIO;
               Улица=Файл.uli;
               Кв=Файл.kwa;
               Дом=Файл.dom;
               Долг=Файл.dolg;
               ДНГ=Файл.saldo;
               ВсегоНач=Файл.wsego;
               ВсегоУпл=Файл.summa;
               Сумма1=Файл.summa1;
               Сумма2=Файл.summa2;
               Сумма3=Файл.summa3;
               Сумма4=Файл.summa4;
               Сумма5=Файл.summa5;
               Сумма6=Файл.summa6;
               Сумма7=Файл.summa7;
               Сумма8=Файл.summa8;
               Сумма9=Файл.summa9;
               Сумма10=Файл.summa10;
               Сумма11=Файл.summa11;
               Сумма12=Файл.summa12;
               Дата1=Файл.n1;
               Дата2=Файл.n2;
               Дата3=Файл.n3;
               Дата4=Файл.n4;
               Дата5=Файл.n5;
               Дата6=Файл.n6;
               Дата7=Файл.n7;
               Дата8=Файл.n8;
               Дата9=Файл.n9;
               Дата10=Файл.n10;
               Дата11=Файл.n11;
               Дата12=Файл.n12;
               Если Месяцы.ТекущаяСтрока()=1 Тогда
                  Месяц="Январь";
                  ЗП=Файл.dolg-Файл.na1;
                  ЗаМесяц=Файл.tar1-Файл.lll1/100;
                  Если Файл.lll1=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na1<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=2 Тогда
                  Месяц="Февраль";
                  ЗП=Файл.dolg-Файл.na2;
                  ЗаМесяц=Файл.tar2-Файл.lll2/100;
                  Если Файл.lll2=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na2<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=3 Тогда
                  Месяц="Март";
                  ЗП=Файл.dolg-Файл.na3;
                  ЗаМесяц=Файл.tar3-Файл.lll3/100;
                  Если Файл.lll3=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na3<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=4 Тогда
                  Месяц="Апрель";
                  ЗП=Файл.dolg-Файл.na4;
                  ЗаМесяц=Файл.tar4-Файл.lll4/100;
                  Если Файл.lll4=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na4<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=5 Тогда
                  Месяц="Май";
                  ЗП=Файл.dolg-Файл.na5;
                  ЗаМесяц=Файл.tar5-Файл.lll5/100;
                  Если Файл.lll5=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na5<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=6 Тогда
                  Месяц="Июнь";
                  ЗП=Файл.dolg-Файл.na6;
                  ЗаМесяц=Файл.tar6-Файл.lll6/100;
                  Если Файл.lll6=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na6<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=7 Тогда
                  Месяц="Июль";
                  ЗП=Файл.dolg-Файл.na7;
                  ЗаМесяц=Файл.tar7-Файл.lll7/100;
                  Если Файл.lll7=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na7<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=8 Тогда
                  Месяц="Август";
                  ЗП=Файл.dolg-Файл.na8;
                  ЗаМесяц=Файл.tar8-Файл.lll8/100;
                  Если Файл.lll8=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na8<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=9 Тогда
                  Месяц="Сентябрь";
                  ЗП=Файл.dolg-Файл.na9;
                  ЗаМесяц=Файл.tar9-Файл.lll9/100;
                  Если Файл.lll9=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na9<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=10 Тогда
                  Месяц="Октябрь";
                  ЗП=Файл.dolg-Файл.na10;
                  ЗаМесяц=Файл.tar10-Файл.lll10/100;
                  Если Файл.lll10=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na10<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=11 Тогда
                  Месяц="Ноябрь";
                  ЗП=Файл.dolg-Файл.na11;
                  ЗаМесяц=Файл.tar11-Файл.lll11/100;
                  Если Файл.lll11=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na11<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;
               
               Если Месяцы.ТекущаяСтрока()=12 Тогда
                  Месяц="Декабрь";
                  ЗП=Файл.dolg-Файл.na12;
                  ЗаМесяц=Файл.tar12-Файл.lll12/100;
                  Если Файл.lll12=50 тогда
                     Льгота="Есть";
                  иначе
                     Льгота="Нет";
                  КонецЕсли;
                  
                  Если Файл.dolg-Файл.na12<0 тогда
                     Зад_Пер="Переплата"
                  иначе
                     Зад_Пер="Задолженность"
                  КонецЕсли;
               КонецЕсли;               
               Таб.ВывестиСекцию("С1");
               Таб.ВывестиСекцию("С2");
               Таб.Показать();
               Найден=1;
               Прервать;
            Иначе
            КонецЕсли;
         КонецЦикла;
         Если Найден=1 Тогда
            Прервать;
         КонецЕсли;
      КонецЕсли;
      ИмяФайла = ФС.НайтиСледующийФайл();
   КонецЦикла;
   Файл=0;
   
КонецПроцедуры


Месяцы.ДобавитьЗначение("Январь","Январь");
Месяцы.ДобавитьЗначение("Февраль","Февраль");
Месяцы.ДобавитьЗначение("Март","Март");
Месяцы.ДобавитьЗначение("Апрель","Апрель");
Месяцы.ДобавитьЗначение("Май","Май");
Месяцы.ДобавитьЗначение("Июнь","Июнь");
Месяцы.ДобавитьЗначение("Июль","Июль");
Месяцы.ДобавитьЗначение("Август","Август");
Месяцы.ДобавитьЗначение("Сентябрь","Сентябрь");
Месяцы.ДобавитьЗначение("Октябрь","Октябрь");
Месяцы.ДобавитьЗначение("Ноябрь","Ноябрь");
Месяцы.ДобавитьЗначение("Декабрь","Декабрь");

Myti

Ну если сам такое написалл,,,наверняка отладчиком пользоватьсо умеешь,,,там и копай--куда у тибя значения пропадают

rusrmm

В том то и дело, даже с отладчиком не могу понять.
всё доходит до строчки   "Если ЛСчёт=Файл.LCZN тогда"   и виснет, но если стоит мне указать dbf файл полностью без поиска "Файл.ОткрытьФайл("BDN00.dbf");" всё работает.
А таких файлов много и к каждый прописывать(((

Myti

имя файла dbf" не должно превышать 5 знаков.

Myti

есть такие штатные ограничения платформы,,,попробуй уменьшить длинну файлов и доступ открыть сразу к расшаренной папке

rusrmm

Нашёл свою ошибку!!!!  Всё заработало )))

Myti

опиши для великого разума.было то что

rusrmm

что было в конце

     Таб.ВывестиСекцию("С1");
               Таб.ВывестиСекцию("С2");
               Таб.Показать();
               Найден=1;
               Прервать;
            Иначе
            КонецЕсли;
         КонецЦикла;
         Если Найден=1 Тогда
            Прервать;
         КонецЕсли;
      КонецЕсли;
      ИмяФайла = ФС.НайтиСледующийФайл();
   КонецЦикла;
   Файл=0;
   
КонецПроцедуры



а вот как надо было (сам не понял как проглядел, стыдно аж ((( )

   Таб.ВывестиСекцию("С1");
               Таб.ВывестиСекцию("С2");
               Таб.Показать();
               Найден=1;
               Прервать;
            Иначе
               Файл.Следующая();
            КонецЕсли;
         КонецЦикла;
      КонецЕсли;
      Файл.ЗакрытьФайл();
      Если Найден=1 Тогда
         Прервать;
      иначе
         ИмяФайла = ФС.НайтиСледующийФайл();
      КонецЕсли;      
   КонецЦикла;
   Файл=0;
   
КонецПроцедуры

Myti

))))....ню  при таком то коде

Теги:

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

Рейтинг@Mail.ru

Поиск