Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 17:02
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Импорт данных в клиент банк  (Прочитано 3304 раз)

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

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 
делаю импорт ПлатежноеПоручениеИсходящее
Банк ОТП

Файл должен состоять из строк разделенных <CR><LF>.
Каждая строка должна соответствовать одному платежному документу и иметь структуру

Позиция Содержание поля
1-10 Номер документа
11-20 Дата в формате ‘dd/mm/yyyy’
21-34 Счёт клиента А
35-48 Счёт клиента Б
49-86 Клиент А
87-124 Клиент Б
125-138 ОКПО А
139-152 ОКПО Б
153-161 МФО А
162-170 МФО Б
171-208 Банк А
209-246 Банк Б
247-268 Сумма (number(19,2) delimiter ‘.’ or ‘,’ )
269-428 Детали платежа
429-453 Город банка А
454-478 Город банка Б
==================================
пишу сл. код:


            // здесь делаю выборку данных

ДЛ = Новый Массив (20);
ДЛ[1]=9;
ДЛ[2]=9;
ДЛ[3]=34-21;
ДЛ[4]=48-35;
ДЛ[5]=86-49;
ДЛ[6]=124-87;
ДЛ[7]=138-125;
ДЛ[8]=152-139;
ДЛ[9]=161-153;
ДЛ[10]=170-162;
ДЛ[11]=208-171;
ДЛ[12]=246-209;
ДЛ[13]=268-247;
ДЛ[14]=428-269;
ДЛ[15]=453-429;
ДЛ[16]=478-454;

ТХ = Новый Массив (20);
ТХ[1]=Лев(Строка(О.НомерПоручения),10);
ТХ[2]=Строка(формат(О.ДатаВыписки,"ДФ=dd/MM/yyyy"));
ТХ[3]=Строка(О.СчетОрганизации.НомерСчета);
ТХ[4]=Строка(О.СчетКонтрагента.НомерСчета);
ТХ[5]=Лев(Строка(О.Организация),38);
ТХ[6]=Лев(Строка(О.Контрагент),38);
ТХ[7]=Строка(Окпо);
ТХ[8]=Строка(О.Контрагент.КодПоЕДРПОУ);
ТХ[9]=Строка(МФО1);
ТХ[10]=Строка(МФО2);
ТХ[11]=Лев(Строка(О.СчетОрганизации.Банк.Наименование),38);
ТХ[12]=Лев(Строка(О.СчетКонтрагента.Банк.Наименование),38);
ТХ[13]=Строка(Формат(О.СуммаДокумента,"ЧЦ=19; ЧДЦ=2; ЧРД=."));
ТХ[14]=Лев(Строка(СтрЗаменить(О.НазначениеПлатежа,Символы.ПС,"")),160);
ТХ[15]="";
ТХ[16]="";

Для Т = 1 по 16 Цикл
ФормаСтроки(Текс, ТХ[Т], ДЛ[Т])// Это функция
//вот такая
//Функция ФормаСтроки(Текс, ТХ, ДЛ)
// Текс = Текс + Тх;
// Для Д = 0 по ДЛ-СтрДлина(ТХ) Цикл
// Текс = Текс + Символ(32);
// КонецЦикла
//КонецФункции

КонецЦикла;
Текс=Текс + Символы.ВК;


Текст.ДобавитьСтроку(Текс);
Текст.Записать("c:\imp.txt", КодировкаТекста.ANSI);
Получается файл, типа такой структуры как надо, НО! В КЛИЕНТ БАНК НЕ ЗАЛАЗИТ!!!???
Пишет что то типа ...ОШИБКА ПРИ КЛЮЧЕВАНИИ СЧЕТА И МФО

Есть там и Импорт данных в формате DBF, делаю DBF нужной структуры, - тоже не залазит.


Может это надо в клиент-банк покопатся?
кто что по этому поводу думает?.........SOS! Вторая неделя пошла! :dfbsdfbsdf:


Оффлайн trofa7

  • *
  • Сообщений: 20
  • РЕПУТАЦИЯ: 2
  • КПД: 10%
  • Регистрация: 2010-09-20
  • Сайт: 
попробуй вигрузити з клиент банка файл (бажано в dbf), і подивись розмір колонок і звір дані МФО і номер рахунка

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 
Да смотрел, "не то пальто"

Оффлайн mohock

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 50
  • КПД: 29%
  • Регистрация: 2010-08-12
  • Сайт: 
  • Профессия: Программист 8.1

Ты пишешь, что строка разделена с одной стороны <CR><CF>, т.е. Ctrl+левая стрелка,
а с другой Символ(32), т.е. пробел. Так что-же на самом деле надо в разделителе?
Если перенос в начало предыдущего слова, то это весьма необычный способ заполнения задом наперед.  :D
Похоже все-таки пробел.
А раз так, то вероятнее всего (если все остальное правильно) у тебя лишние пробелы.
Попробуй для МФО и Счета вместо Строка() - СокрЛП().

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 

1346252   06/10/2010777777777777788888888888888Наша организация                      Получатель2                           11111111      22222222      300528   300528   ОТП                                   ОТП                                   56387                 Зг?дно договору Сума 563,87 грнПДВ (20%) 93,98 грн                                                                                                                                                               


Получается так.
Без лишних пробелов
а "Файл должен состоять из строк разделенных <CR><LF>." разделяю "Текс=Текс + Символы.ВК;"

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 
а как правильно поставить <CR><CF>???, может здесь собака зарыта?

Оффлайн mohock

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 50
  • КПД: 29%
  • Регистрация: 2010-08-12
  • Сайт: 
  • Профессия: Программист 8.1
а как правильно поставить <CR><CF>???, может здесь собака зарыта?

Перевод строки    -   LF=10;   
Возврат каретки -   CR=13;

Наверное так: Символ(13)+Символ(10)

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 
Символ(13)+Символ(10) - получаются строки разделенные пустой строкой

Оффлайн soleg78

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-06-16
  • Сайт: 
ОК, все получилось, дело было в "<CR><CF>" или наверно в последней строка, потому как она получалась по длине равной 0
получалось так
"......строка 478 символов...." <CR><CF>
"......строка 478 символов...." <CR><CF>
"......строка 478 символов...." <CR><CF>
"......строка 478 символов...." <CR><CF>
"......строка 478 символов...." <CR><CF>
тока теперь другая проблема, - КОДИРОВКА!
перепробывал всё!,
   Текст.Записать("c:\imp_1.txt", КодировкаТекста.ANSI);
   Текст.Записать("c:\imp_2.txt", КодировкаТекста.OEM);
   Текст.Записать("c:\imp_3.txt", КодировкаТекста.UTF16);
   Текст.Записать("c:\imp_4.txt", КодировкаТекста.UTF8);
   Текст.Записать("c:\imp_5.txt", КодировкаТекста.Системная);
везде иероглифы
как ещё можно перекодировать?


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7458
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3891
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2127
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7380
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Как перенести конфу базы данных на новую конфу?

Автор dim3740Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 11286
Последний ответ 23 Авг 2010, 15:41
от mohock

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Обмен с клиент банком БП 3.0

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
59 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 328
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal