8.х Импорт в Клиет-Банк из 1С:Бугалтерия

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Bender89, 18 янв 2008.

  1. TopicStarter Overlay
    Bender89
    Offline

    Bender89

    Регистрация:
    18 янв 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Помогите реализовать.Вот написал только начало дальше не знаю как.

    Код:
    Путь = "c:";
    БД = Новый XBase;
    БД.Поля.Добавить("BUD_KOD_31","Character",16);
    БД.Поля.Добавить("A_KPP","Character",9);
    БД.Поля.Добавить("A_BANK_BIC","Character",9);
    БД.Поля.Добавить("IS_BUD","Logical",1);
    БД.Поля.Добавить("A_BANK_C26","Character",50);
    БД.Поля.Добавить("BUD_DATE37","Character",10);
    БД.Поля.Добавить("A_BANK_KS","Character",20);
    БД.Поля.Добавить("BUD_PAY_32","Character",16);
    БД.Поля.Добавить("A_BANK_N25","Character",100);
    БД.Поля.Добавить("BUD_KBK","Character",8);
    БД.Поля.Добавить("BUD_OKATO","Character",12);
    БД.Поля.Добавить("BUD_NUM_35","Character",15);
    БД.Поля.Добавить("BUD_DATE36","Character",10);
    БД.Поля.Добавить("C_KPP","Character",9);
    БД.Поля.Добавить("BUD_TAXP29","Character",16);
    БД.Поля.Добавить("SEND_TYPE_","Character",10);
    БД.Поля.Добавить("DOC_DATE","Date",8);
    БД.Поля.Добавить("C_INN","Character",12);
    БД.Поля.Добавить("A_INN","Character",12);
    БД.Поля.Добавить("NOTE","Character",210);
    БД.Поля.Добавить("C_NAME","Character",150);
    БД.Поля.Добавить("A_NAME","Character",150);
    БД.Поля.Добавить("DOC_NUM","Numeric",10);
    БД.Поля.Добавить("PRIORITY","Numeric",1);
    БД.Поля.Добавить("SUMMA",,15,2);
    БД.Поля.Добавить("C_ACC","Character",20);
    БД.Поля.Добавить("A_ACC","Character",20);
    
    
    Писал по реквизитам предоставленным банком.А может уже есть готовые решения для импорта подскажите?
  2. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Для какого банка и из какой конфигурации готовое решение тебе надо?
  3. TopicStarter Overlay
    Bender89
    Offline

    Bender89

    Регистрация:
    18 янв 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Извиняюсь что не указал Бугалтерия 8.0. Банк - СберБанк.Решение - лучше готовое.
  4. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Готового у меня нет. Есть пример.

    Код:
    ТЗ = Новый ТаблицаЗначений();
    .............................
    
    .............................
    
    Для НомСтр = 1 По БД.КоличествоЗаписей() Цикл
    БД.Перейти(НомСтр);
    Если (БД.DATE_DOC = Дата) и ((СокрЛП(БД.OKPO1_A) = КодЕДРПОУ) или  (СокрЛП(БД.OKPO2_B) = КодЕДРПОУ)) Тогда 
    // Проверка на нужную мне дату мою организацию
    ТЗСтр = ТЗ.Добавить();
    Для НомКол = 0 По БД.поля.Количество()-1 Цикл
    ТЗСтр.Установить(НомКол,БД.ПолучитьЗначениеПоля(НомКол));
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    
    Если ТЗ.Количество() = 0 Тогда
    Предупреждение ("За указанную дату по организации " + Организация.Наименование +" движений нет");
    Возврат;
    Иначе 
    Сообщить(ТЗ.Количество());   // Получили ТаблицуЗначений
    КонецЕсли;
    
    
    
    
    
    
    Дальше из Таблицы Значений по каждой строке создаешь документ, заполняешь его реквизиты и сохраняешь.
  5. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    А это Экспорт в клиент-банк, НО плотно я его не тестировал, т.к. от этого банка отказались, и написан давно и под конфигурацию Бухгалтерия для Украины

    Код:
    Процедура ВыгрузкаВКлиентБанк()
    
    Ном = 0;
    ДБФ = Новый XBase;
    ДБФ.Поля.Добавить("tip_doc",  "S",  1, 0);
    ДБФ.Поля.Добавить("n_doc",    "S", 10, 0);
    ДБФ.Поля.Добавить("date_doc", "D",  8, 0);
    ДБФ.Поля.Добавить("sum_doc",  "N", 17, 2);
    
    ДБФ.Поля.Добавить("account_a","S", 16, 0);
    ДБФ.Поля.Добавить("name_a",   "S", 40, 0);
    ДБФ.Поля.Добавить("okpo1_a",  "S", 10, 0);
    ДБФ.Поля.Добавить("mfo_a",    "N",  9, 0);
    
    ДБФ.Поля.Добавить("account_b","S", 16, 0);
    ДБФ.Поля.Добавить("name_b",   "S", 40, 0);
    ДБФ.Поля.Добавить("okpo2_b",  "S", 10, 0);
    ДБФ.Поля.Добавить("mfo_b",    "N",  9, 0);
    
    ДБФ.Поля.Добавить("n_p",      "S",160, 0);
    ДБФ.Поля.Добавить("packet",   "S",  1, 0);
    
    ДБФ.Поля.Добавить("tip",      "N",  1, 0);
    ДБФ.Поля.Добавить("n_d",      "N",  4, 0);
    ДБФ.Поля.Добавить("date",     "D",  8, 0);
    ДБФ.Поля.Добавить("summa",    "N", 17, 2);
    ДБФ.Поля.Добавить("val",      "S",  4, 0);
    ДБФ.Поля.Добавить("count_a",  "N", 16, 0);
    ДБФ.Поля.Добавить("bank_a",   "S", 45, 0);
    ДБФ.Поля.Добавить("ksch_a",   "N", 16, 0);
    ДБФ.Поля.Добавить("count_b",  "N", 16, 0);
    ДБФ.Поля.Добавить("bank_b",   "S", 45, 0);
    ДБФ.Поля.Добавить("ksch_b",   "N", 16, 0);
    ДБФ.Поля.Добавить("okpo_a",   "N", 10, 0);
    ДБФ.Поля.Добавить("okpo_b",   "N", 10, 0);
    ДБФ.Поля.Добавить("user",     "S", 20, 0);
    ДБФ.Поля.Добавить("k_s",      "S",  6, 0);
    ДБФ.Поля.Добавить("skp",      "S",  2, 0);
    ДБФ.Поля.Добавить("source",   "S", 12, 0);
    ДБФ.Поля.Добавить("oi",       "S",  3, 0);
    
    ИмяФайла = Файл;
    ДБФ.Кодировка = КодировкаXBase.OEM;
    ДБФ.СоздатьФайл(ИмяФайла);
    Если ДБФ.Открыта()=0 Тогда
    ДБФ.ОткрытьФайл(ИмяФайла);
    КонецЕсли;
    ДБФ.Очистить();
    
    ИтСуммаСНДС = 0;
    Док = Документы.ПлатежноеПоручениеИсходящее.Выбрать(НачалоДня(Дата), КонецДня(Дата));
    Пока Док.Следующий() Цикл
    
    Если Док.ПометкаУдаления Тогда
    Продолжить;
    КонецЕсли;
    Если Организация <> Док.Организация Тогда
    Продолжить;
    КонецЕсли;
    Если Док.СчетОрганизации <> РСчет Тогда
    Продолжить;
    КонецЕсли;
    
    //Если Док.Оплачено  Истина Тогда
    //    Продолжить;
    //КонецЕсли;
    
    Ном = Ном + 1;
    ДБФ.Добавить();
    ДБФ.УстановитьЗначениеПоля("tip_doc",  "p");
    ДБФ.УстановитьЗначениеПоля("n_doc",    Док.НомерПоручения);
    ДБФ.УстановитьЗначениеПоля("date_doc", Док.Дата);
    ДБФ.УстановитьЗначениеПоля("sum_doc",  Док.СуммаДокумента);
    
    ДБФ.УстановитьЗначениеПоля("account_a", Док.СчетОрганизации.НомерСчета);
    ДБФ.УстановитьЗначениеПоля("name_a",   Док.Организация.Наименование);
    КодЕДРПОУ = ПолучитьСведенияОбОрганизации(Док.Организация, Дата, СписокПоказателей).КодПоЕДРПОУ;
    
    ДБФ.УстановитьЗначениеПоля("okpo1_a",  КодЕДРПОУ);
    ДБФ.УстановитьЗначениеПоля("mfo_a",    Док.СчетОрганизации.Банк.Код);
    
    ДБФ.УстановитьЗначениеПоля("account_b",Док.СчетКонтрагента.НомерСчета);
    ДБФ.УстановитьЗначениеПоля("name_b",   Док.Контрагент.НаименованиеПолное);
    ДБФ.УстановитьЗначениеПоля("okpo2_b",  Док.Контрагент.КодПоЕДРПОУ);
    ДБФ.УстановитьЗначениеПоля("mfo_b",    Док.СчетКонтрагента.Банк.Код);
    
    ДБФ.УстановитьЗначениеПоля("n_p",      Док.НазначениеПлатежа);
    ДБФ.УстановитьЗначениеПоля("packet",   " ");
    
    ДБФ.Записать();
    
    
    КонецЦикла;
    ДБФ.ЗакрытьФайл();
    
    
    КонецПроцедуры
    
    
    
  6. Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    А есть готовое решение по УПП 8.1 для сбербанка или хотя бы Для УПП 8.0
  7. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Сделайте сами. Возьмите типовую выгрузку и исправьте. Поля реально те же самые, только не в текстовый файл грузится, а в dbf - сам цикл оттуда вытащить сможете.

    Но вообще СберБанк всегда в txt принимал отлично, зачем вам dbf?

Поделиться этой страницей