Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )


>  Обработка 1С 8.3 & CABiNET
kooperdj
Отправлено: 24.01.19, 22:33


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 18.09.15
Из: Полтава
Пользователь №: 45900


Тоже столкнулся с выпиской CABiNET, изменил под нее iBank2, Функция ИмпортTXT(Параметры) Ничего сложного, только учесть что выписка начинается со второй строки.
 Функция ИмпортTXT(Параметры)
    ФайлTXT    = Новый ТекстовыйДокумент;
    ИмяФайла = Параметры.ИмяФайла;
    Попытка
        ФайлTXT.Прочитать(ИмяФайла, КодировкаТекста[Параметры.КодировкаФайла]);
    Исключение
        Предупреждение("Ошибка открытия файла " + ИмяФайла);
        Возврат Неопределено;
    КонецПопытки;        
    
    тзВыписка =  Новый ТаблицаЗначений;
    тзВыписка.Колонки.Добавить("НомерПП");
    тзВыписка.Колонки.Добавить("Приход");
    тзВыписка.Колонки.Добавить("Расход");
    тзВыписка.Колонки.Добавить("ОКПО");
    тзВыписка.Колонки.Добавить("Контрагент");
    тзВыписка.Колонки.Добавить("МФО");
    тзВыписка.Колонки.Добавить("РСчет");
    тзВыписка.Колонки.Добавить("Содержание");
    
    // В первой строке хранятся параметры выписки
    Дельта = -1;
    ТекСтрока = ФайлTXT.ПолучитьСтроку(1);
    Спис = РазобратьСтроку(ТекСтрока);
    шСчет       = СокрЛП(Спис[1+Дельта].Значение);
    шВалюта     = СокрЛП(Спис[2+Дельта].Значение);
    шКвоЗаписей = СокрЛП(Спис[3+Дельта].Значение);
    
    Если шСчет <> Формат(Параметры.РСчет,"ЧН=0") Тогда
        Предупреждение("В текущем файле нет платежей с выбранным расчетным счетом!");
        Возврат тзВыписка;
    КонецЕсли;
    
    Для н = 2 По ФайлTXT.КоличествоСтрок() Цикл
        ТекСтрока = ФайлTXT.ПолучитьСтроку(н);
        Спис = РазобратьСтроку(ТекСтрока);
        
        ДатаОперации = Дата(Спис[2+Дельта].Значение);  // ггггммдд
        Если ДатаОперации <> Параметры.ДатаДок Тогда
            Продолжить;    
        КонецЕсли;
                    
        МФОКонтрагента = СокрЛП(Спис[33+Дельта].Значение);
        КодОКПОКонтрагента = СокрЛП(Спис[34+Дельта].Значение);
        РСчетКонтрагента = СокрЛП(Спис[26+Дельта].Значение);
        ИмяКонтрагента = СокрЛП(Спис[27+Дельта].Значение);
        
        Если Лев(ИмяКонтрагента, 1)  = """" И Прав(ИмяКонтрагента, 1)  = """" Тогда
            ИмяКонтрагента = Сред(ИмяКонтрагента, 2, СтрДлина(ИмяКонтрагента) - 2);
            ИмяКонтрагента = СтрЗаменить(ИмяКонтрагента,"""""", """");
        КонецЕсли;
        
        НомерПП  = СокрЛП(Спис[25+Дельта].Значение);
        Назначение = СокрЛП(Спис[24+Дельта].Значение);
        Если Лев(Назначение, 1)  = """" И Прав(Назначение, 1)  = """" Тогда
            Назначение = Сред(Назначение, 2, СтрДлина(Назначение) - 2);
            Назначение = СтрЗаменить(Назначение,"""""", """");
        КонецЕсли;
                
        НовСтрока = тзВыписка.Добавить();
        НовСтрока.НомерПП        = НомерПП;
        НовСтрока.Контрагент    = ИмяКонтрагента;
        НовСтрока.ОКПО            = СокрЛП(Формат(КодОКПОКонтрагента,"ЧГ=0"));
        НовСтрока.РСчет            = СокрЛП(Формат(РСчетКонтрагента,"ЧГ=0"));
        НовСтрока.МФО             = СокрЛП(Формат(МФОКонтрагента,"ЧГ=0"));
        НовСтрока.Содержание     = Назначение;
        
        ДебетКредит  = СокрЛП(Спис[11+Дельта].Значение); //'D' - мы платим 'C' - нам платят
        Если ДебетКредит = "D" Тогда
            Приход = 0;
            Расход = Спис[10+Дельта].Значение/100; //Сумма в копейках
        Иначе
            Приход = Спис[10+Дельта].Значение/100; //Сумма в копейках
            Расход = 0;
        КонецЕсли;

        Если Расход > 0 Тогда //Расход
            НовСтрока.Расход         = Расход;
            НовСтрока.Приход        = 0;
        Иначе //Приход
            НовСтрока.Расход         = 0;
            НовСтрока.Приход        = Приход;
        КонецЕсли;
    КонецЦикла;    
    
    Если НЕ тзВыписка.Количество() И ФайлTXT.КоличествоСтрок() Тогда
        Предупреждение("В текущем файле нет платежей с данной датой выписки и расчетным счетом!");
    КонецЕсли;
    
    Возврат тзВыписка;    
КонецФункции
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #149239 · Ответов: 7 · Просмотров: 829
 

>  Клиент-Банк обмен через cvv файлы УкрСибБанк, Укрсоцбанк и т.п.
kooperdj
Отправлено: 25.04.18, 14:22


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 18.09.15
Из: Полтава
Пользователь №: 45900


Кстати, УкрСиб выгружает и в ProFix, как и многие другие банки. Не ленитесь заглядывать в настройки экспорта выписок в банковских поделках
  Форум: Отчеты / Обработки · Просмотр сообщения: #141074 · Ответов: 19 · Просмотров: 4380
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 16.07.19, 16:39
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!