Имя: Пароль:
1C
1C 7.7
v7: Кодовая Страница
0 alex_reglament
 
28.12.11
16:03
привет всем почему кодовая страница не меняется
Процедура ЗагрузкаВыписокДельтаБАНК(Т, ПлатежныйДокумент, СозданДокумент, ИмяФайла)  
   СимволРазделитель="*";
   НашаОрганизация_=Константа.НашаОрганизация.Получить(РабочаяДата());
   НашиБанковскиеСчета=СоздатьОбъект("Справочник.БанковскиеСчета");
   НашиБанковскиеСчета.ИспользоватьВладельца(НашаОрганизация_);
   НачалиВводВыписки=Нет;
   ОкончилиВводВыписки=Нет;
   НачинаемЗагрузкуВыпискиДляНовогоСчета=Нет;
   //ПлатежныйДокумент.Новый();
   Т.КодоваяСтраница(1);
   Для НС=1 по Т.КоличествоСтрок() цикл
       Стр=Т.ПолучитьСтроку(НС);
       //Если НачинаемЗагрузкуВыпискиДляНовогоСчета=Нет тогда
       НомСтроки = Лев(Стр,2);
       Если Прав(НомСтроки,1)="0"  тогда
           //первая запись выписки
           Поз=Найти(Стр,СимволРазделитель)+1;
           Если Поз>0 тогда
               Стр=СокрЛП(Сред(Стр,Поз+2));
               Поз=Найти(Стр,СимволРазделитель);
               Если Поз>0 тогда
                   СтрДатаДока=СокрЛП(Лев(Стр,Поз-1));
                   Год=Число(Лев(СтрДатаДока,2));
                   Если Год>1000 тогда
                   иначеЕсли Год<40 тогда
                       Год=Год+2000;
                   иначе
                       Год=Год+1900;
                   КонецЕсли;
                   ДатаДока=Дата(Прав(СтрДатаДока,2)+"."+Сред(СтрДатаДока,3,2)+"."+Строка(Год));
                   Стр=СокрЛП(Сред(Стр,Поз+1));
                   Поз=Найти(Стр,СимволРазделитель);
                   Если Поз>0 тогда
                       СчетБанкаИзВыписки=СокрЛП(Лев(Стр,Поз-1));
                       //записываем предыдущую выписку и создаем новую
                       //Найдем счет в справочнике
                       Если НашиБанковскиеСчета.НайтиПоРеквизиту("НомерСчета",СчетБанкаИзВыписки,0)=0 тогда
                           Сообщить("Эта выписка для счета "+СчетБанкаИзВыписки+" в списке наших банковских счетов такого нет");
                           НачинаемЗагрузкуВыпискиДляНовогоСчета=Нет;
                       иначе
                           Попытка
                               Если ПлатежныйДокумент.КоличествоСтрок()>0 тогда
                                   ПлатежныйДокумент.Записать();
                                   ОткрытьФорму(ПлатежныйДокумент.ТекущийДокумент(),,0);
                               КонецЕсли;
                           исключение
                           КонецПопытки;
                           
                           ПлатежныйДокумент.Новый();
                           ПлатежныйДокумент.Автор    = глПользователь;
                           ПлатежныйДокумент.БанковскийСчет=НашиБанковскиеСчета.ТекущийЭлемент();
                           ПлатежныйДокумент.БухСчет = ПлатежныйДокумент.БанковскийСчет.БухСчет;
                           НачинаемЗагрузкуВыпискиДляНовогоСчета=Да;
                           НачалиВводВыписки=Нет;
                           ОкончилиВводВыписки=Нет;
                           ПлатежныйДокумент.ДатаДок=ДатаДока;
                           Сообщить("*** Создан новый документ "+ПлатежныйДокумент.Вид()+" № "+СокрЛП(Строка(ПлатежныйДокумент.НомерДок))+" от "+СокрЛП(Строка(ПлатежныйДокумент.ДатаДок))+"для счета "+СчетБанкаИзВыписки);
                       КонецЕсли;
                   иначе
                       Сообщить("Не найдено начало счета выписки");
                   КонецЕсли;
               иначе
                   Сообщить("Не найдена дата выписки");
               КонецЕсли;
           иначе
               Сообщить("Не найдено начало даты выписки");
           КонецЕсли;
       КонецЕсли;
       //иначе //Если НачинаемЗагрузкуВыпискиДляНовогоСчета=Нет
       НомСтроки = Лев(Стр,2);
       Если Прав(НомСтроки,1)="1"  тогда
           //строка выписки
           Если НачинаемЗагрузкуВыпискиДляНовогоСчета=Да тогда
               НомСтроки = Лев(Стр,2);
       Если Прав(НомСтроки,1)="1"  тогда
                   //первая строка выписки
                   ВерныйФорматСтроки=Да;
                   Для сс=1 по 5 цикл
                       Поз=Найти(Стр,СимволРазделитель);
                       Если Поз>0 тогда
                           Стр=СокрЛП(Сред(Стр,Поз+1));
                       иначе
                           //формат строки!!!
                           ВерныйФорматСтроки=Нет;
                           прервать;
                       КонецЕсли;
                   КонецЦикла;
                   Если ВерныйФорматСтроки=Да тогда
                       Поз=Найти(Стр,СимволРазделитель);
                       Если Поз>0 тогда
                           КодБанка=СокрЛП(Лев(Стр,Поз-1));
                           Стр=СокрЛП(Сред(Стр,Поз+1));
                           Поз=Найти(Стр,СимволРазделитель);
                           Если Поз>0 тогда
                               НомерСчета=СокрЛП(Лев(Стр,Поз-1));
                               Стр=СокрЛП(Сред(Стр,Поз+1));
                               ВерныйФорматСтроки=Да;
                               Для сс=1 по 5 цикл
                                   Поз=Найти(Стр,СимволРазделитель);
                                   Если Поз>0 тогда
                                       Стр=СокрЛП(Сред(Стр,Поз+1));
                                   иначе
                                       //формат строки!!!
                                       ВерныйФорматСтроки=Нет;
                                       прервать;
                                   КонецЕсли;
                               КонецЦикла;
                               Если ВерныйФорматСтроки=Да тогда
                                   Поз=Найти(Стр,СимволРазделитель);
                                   Если Поз>0 тогда
                                       НомерДокум=СокрЛП(Лев(Стр,Поз-1));
                                       Стр=СокрЛП(Сред(Стр,Поз+1));
                                       Поз=Найти(Стр,СимволРазделитель);
                                       Если Поз>0 тогда
                                           УННБенеф=СокрЛП(Лев(Стр,Поз-1));
                                           Стр=СокрЛП(Сред(Стр,Поз+1));
                                           Поз=Найти(Стр,СимволРазделитель);
                                           Если Поз>0 тогда
                                               УННБенефЗаКого=СокрЛП(Лев(Стр,Поз-1));
                                               Стр=СокрЛП(Сред(Стр,Поз+1));
                                               Поз=Найти(Стр,СимволРазделитель);
                                               Если Поз>0 тогда
                                                   ДебетКредит=СокрЛП(Лев(Стр,Поз-1));
                                                   Стр=СокрЛП(Сред(Стр,Поз+1));
                                                   Поз=Найти(Стр,СимволРазделитель);
                                                   Если Поз>0 тогда
                                                       Сумма=СокрЛП(Лев(Стр,Поз-1));
                                                       Стр=СокрЛП(Сред(Стр,Поз+1));
                                                       Если ДебетКредит="1" тогда
                                                           СуммаПоДебету=Сумма;
                                                           СуммаПоКредиту="0";
                                                       иначе
                                                           СуммаПоДебету="0";
                                                           СуммаПоКредиту=Сумма;
                                                       КонецЕсли;
                                                       Стр=СокрЛП(Сред(Стр,Поз+1));
                                                       Поз=Найти(Стр,СимволРазделитель);
                                                       Стр=СокрЛП(Сред(Стр,Поз+1));
                                                       Поз=Найти(Стр,СимволРазделитель);
                                                       назначение = СокрЛП(Лев(Стр,Поз-1));
                                                       ПлатежныйДокумент.НоваяСтрока();
                                                       ПлатежныйДокумент.НомерДокумента=НомерДокум;//ПП
                                                       ПлатежныйДокумент.НомерСчета=НомерСчета;
                                                       ПлатежныйДокумент.КодБанка=КодБанка;
                                                       ПлатежныйДокумент.НазначениеПлатежа = назначение;
                                                       Если Число(СуммаПоКредиту)>0 тогда
                                                           ПлатежныйДокумент.КоррСчет=СчетПоКоду(СчетДляПриходаМоскваМинск);
                                                           ПлатежныйДокумент.Сумма=Число(СуммаПоКредиту);
                                                           ПлатежныйДокумент.ВидДвижения = Перечисление.ВидДвижения.Требование;
                                                       иначеЕсли Число(СуммаПоДебету)>0 тогда
                                                           ПлатежныйДокумент.Сумма=Число(СуммаПоДебету);
                                                           ПлатежныйДокумент.ВидДвижения = Перечисление.ВидДвижения.Поручение;
                                                           ПлатежныйДокумент.КоррСчет=СчетПоКоду(СчетДляРасходаМоскваМинск);
                                                       КонецЕсли;
                                                       ПоискДокумента(ПлатежныйДокумент);//взята из выписки
                                                       глПриВыбореСчета(ПлатежныйДокумент,"КоррСчет",,0);
                                                       НовыйКонтрагент=Нет;
                                                       Контра="";
                                                       НайдемКонтрагентаПоРасчетномуСчету(Контра,НомерСчета,КодБанка,"Новый Р/С"+НомерСчета+" код="+КодБанка,НовыйКонтрагент);
                                                       Попытка
                                                           ПлатежныйДокумент.Субконто1=Контра;
                                                       Исключение
                                                       КонецПопытки;
                                                   КонецЕсли;
                                               КонецЕсли;
                                           КонецЕсли;
                                       КонецЕсли;
                                   КонецЕсли;
                               КонецЕсли;
                           КонецЕсли;
                       КонецЕсли;
                   КонецЕсли;
               КонецЕсли;
           иначе
               //закончился документ выписка
           КонецЕсли;
           НомСтроки = Лев(Стр,2);
       иначеЕсли Прав(НомСтроки,1)="3"  тогда//(Лев(Стр,1)="2") или (Лев(Стр,2)="*2") тогда
           //строка выписки, указывающая на количество записей выписки
       КонецЕсли;
       //КонецЕсли;
   КонецЦикла;
   Если НачинаемЗагрузкуВыпискиДляНовогоСчета=Да тогда
       Попытка
           Если ПлатежныйДокумент.КоличествоСтрок()>0 тогда
               ПлатежныйДокумент.Записать();
               ОткрытьФорму(ПлатежныйДокумент.ТекущийДокумент(),,0);
           КонецЕсли;
       исключение
       КонецПопытки;
   КонецЕсли;
КонецПроцедуры
в файле выписки dos
1 alex_reglament
 
28.12.11
16:05
А в документе в реквизите НазначениеПлатежа абра
2 1Сергей
 
28.12.11
16:05
Т.КодоваяСтраница(1); надо делать до Т.Открыть(...
3 filh
 
28.12.11
16:06
и?
4 alex_reglament
 
28.12.11
16:06
а спасибо
5 alex_reglament
 
28.12.11
16:06
буду смотреть
6 alex_reglament
 
28.12.11
16:13
все ок работает спасибо большое
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.