Одесса: 7°С (вода 9°С)
Киев: 0°С
Львов: 6°С

Тема: Создание Банковской выписки

Ответить в теме
Показано с 1 по 6 из 6
  1. Вверх #1

    По умолчанию Создание Банковской выписки

    Создание Банковской выписки

    Задача:

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

    Подскажите плз начинающему один момент. В дбфе есть поле "KL_OKP_K" (дбф формируется системой банк клиент Укрсоцбанка) в котором содержатся номера ЕДРПОУ(ДРФО), если я правильно понимаю, взяв за основу эти данные мы можем заполнить поле Субконто нашей Банковской выписки. Просьба дайте пожалуйста подсказку в виде куска кода как реализовать именно этот момент обработки.

    Пожалуйста, очень надо, уже 1 день ломаю голову никак не найду решения
    Заранее пасиб


  2. Вверх #2
    У меня один из банков тоже УкрПоц... Так что выкладываю вся процедуру. Там есть и определение клиента по ОКПО (о чем ты спрашиваешь и многое другое) Проверено работает несколько лет!!! Пользуйся, не жалко!!!

    //================================================== ===========================
    //
    Код:
    Процедура ЗалитьУкрПоц()
    	Перем Контрагент;                  
    	ТЗ=СоздатьОбъект("ТаблицаЗначений");
    	ТЗ.НоваяКолонка("ПрихРасх", "Число", 1, 0);                
    	ТЗ.НоваяКолонка("Клн", "Справочник.Контрагенты");
    	ТЗ.НоваяКолонка("НомДок", "Строка", 30);                   
     	ТЗ.НоваяКолонка("СумСНДС", "Число", 15, 2);
     	ТЗ.НоваяКолонка("Содерж", "Строка", 100);
     		
    	тзФайлы = создатьобъект("таблицазначений");
     	тзФайлы.НоваяКолонка("имя",,,,"Имя файла",45);
     	тзФайлы.НоваяКолонка("дата",,,,"Дата выиски",15); 
     	тзФайлы.НоваяКолонка("Счет",,,,"Расчетный счет",15); 
     	тзФайлы.НоваяКолонка("МФО",,,,"МФО",15); 
     	тзФайлы.НоваяКолонка("Банк",,,,"Банк",15); 
    	Путь=СокрЛП(Константа.ПутьКФайлуУкрСоц);
     	
     	ФС.УстТекКаталог(Путь);
     	текИмяФ=ФС.НайтиПервыйФайл("*.dbf");
     	Пока пустоезначение(текИмяФ)=0 Цикл
     		тзФайлы.НоваяСтрока();	
     		тзФайлы.имя = сокрлп(Путь+текИмяФ);
     		текИмяФ=ФС.НайтиСледующийФайл();
     	КонецЦикла;
     	
     	ИмяФайла = "";
     	номСтрокиФайла = "";
     	Если тзФайлы.ВыбратьСтроку(номСтрокиФайла,"Выберите файл выписки для загрузки")=0   Тогда
     		возврат;
     	КонецЕсли;
     	ИмяФайла=тзФайлы.ПолучитьЗначение(номСтрокиФайла,1); 
     	Вып=СоздатьОбъект("XBase"); 
     	Вып.ОткрытьФайл(ИмяФайла);  
     	Вып.Первая();
     	Пока Вып.ВКонце()=0 Цикл  
     		Если Вып.DATA<>ДатаДок Тогда 
     			Вып.Следующая&#40;&#41;;
     			Продолжить;
     		КонецЕсли;   
     		Если Число&#40;Вып.KL_OKP&#41;<>Число&#40;Константа.БазФирма.ЕДРПОУ&#41; Тогда   
     			Вып.Следующая&#40;&#41;;
     			Продолжить;
     		КонецЕсли;
     		ТЗ.НоваяСтрока&#40;&#41;;
     		Если Вып.DK=1 Тогда
     			ТЗ.ПрихРасх=-1;
     		Иначе
     			ТЗ.ПрихРасх=1;
     		КонецЕсли;  
     		ОпределениеКонтрагента&#40;Вып.KL_OKP_K,"",Контрагент&#41;;
     		ТЗ.Клн=Контрагент;
     		ТЗ.НомДок=Вып.ND;
     		ТЗ.СумСНДС=Вып.S;
     		ТЗ.Содерж=ANSItoOEM&#40;Вып.N_P&#41;; 
     		Вып.Следующая&#40;&#41;;
     	КонецЦикла;
     	
     	ТЗ.Сортировать&#40;"ПрихРасх, СумСНДС"&#41;;
     	ТЗ.ВыбратьСтроки&#40;&#41;;
     	Пока ТЗ.ПолучитьСтроку&#40;&#41;=1 Цикл
     		НоваяСтрока&#40;&#41;;
     		ПриходРасход=?&#40;ТЗ.ПрихРасх=-1, Перечисление.ПлюсМинус.Минус, Перечисление.ПлюсМинус.Плюс&#41;;
     		ИзмПриходРасход&#40;&#41;;
     		НомерДокумента=ТЗ.НомДок;
     		ИзмСчет&#40;&#41;;
     		Субконто=ТЗ.Клн;
     		СуммаСНДС=ТЗ.СумСНДС;
     		ИзмСуммаСНДС&#40;&#41;;
     		Содержание=ТЗ.Содерж;
     	КонецЦикла;
    КонецПроцедуры
    //================================================== ===========================

  3. Вверх #3
    Забыл выложить само собсно определение клиента
    //===============================================
    Код:
    Процедура ОпределениеКонтрагента&#40;ОКПОКор,НаимКор,Контрагент&#41;
    	Контр = СоздатьОбъект&#40;"Справочник.Контрагенты"&#41;;
    	Родитель = СоздатьОбъект&#40;"Справочник.Контрагенты"&#41;;
    	Если Контр.НайтиПоРеквизиту&#40;"ЕДРПОУ",ОКПОКор,1&#41; <> 1 Тогда
    	    Если Контр.Выбрать&#40;"ОКПО&#58; "+ОКПОКор+" Контрагент&#58; "+НаимКор,"ФормаСписка"&#41; <> 1 Тогда
    			 Контр.Новый&#40;&#41;;
           		 Контр.ЕДРПОУ = ОКПОКор;
    			 Контр.ВидКонтрагента = Перечисление.ВидыКонтрагентов.Организация;
    			 Контр.Наименование = НаимКор;
    			 Контр.ПолнНаименование = НаимКор;
                 Контр.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоСчетам;
                 Контр.ВидТорговли = Перечисление.ВидыТорговли.Предоплата;
    			 Контр.Записать&#40;&#41;;
       	         Сообщить&#40;"Добавлен новый контрагент&#58; "+НаимКор+" ОКПО&#58; "+ОКПОКор&#41;;
            Иначе
           		 Контр.ЕДРПОУ = ОКПОКор;
    			 Контр.Записать&#40;&#41;;
    		КонецЕсли;
    	КонецЕсли;    
    	Контрагент = Контр.ТекущийЭлемент&#40;&#41;;
    	
    КонецПроцедуры
    //==================================================

  4. Вверх #4
    Недоразумение Аватар для boo
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    30
    Сообщений
    2,040
    Репутация
    115
    Процедура ЗалитьУкрПоц()
    Я так понимаю это переменная?
    По небу как по мостовой несут меня цветные колеса.
    Не то эскорт, не то конвой, везу я в кэбе Санта-Клаоса.

  5. Вверх #5
    Модератор Аватар для Mulder_1
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    772
    Репутация
    51
    подправил немного сообщение torch,
    так вроде покрасивее будет и удобнее читать ...

    з.ы.
    Процедура ЗалитьУкрПоц() улыбнуло
    Кратк. - сестр. тал. !

  6. Вверх #6
    [LoF].Devid
    гость
    Подскажите пожалуйста, для того что-бы сделать Банковскую выписку с "PrivatBank c2b" в Вашем исходнике много надо поменять?

    Просто я нуб в 1с, и это мое первое знакомство с программированием 1с


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения