8.х Клиент_банк импорт в ЦФт клиент-банк из Бухгалтерия 8.1

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Sova123, 2 апр 2008.

  1. TopicStarter Overlay
    Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    Не могу сделать импорт из ЦФТ Клиент-Банка. Пишу такой код

    Код:
    Процедура КонвертироватьФайл(ПутьКФайлу) Экспорт
    БД = Новый XBase;
    БД.ОткрытьФайл(ПутьКФайлу);
    БД.Кодировка = КодировкаXBase.OEM;
    
    Если Не БД.Открыта() Тогда
    Предупреждение("Не возможно открыть таблицу данных "+ПутьКФайлу );
    Возврат;
    КонецЕсли;
    БД.Первая();
    
    Попытка
    УдалитьФайлы("ФайлВыгрузки.tmp");
    Исключение
    КонецПопытки;
    
    ПотокВыгрузки = Новый ТекстовыйДокумент();
    // Формируем заголовок
    
    ПотокВыгрузки.ДобавитьСтроку("1CClientBankExchange");
    ПотокВыгрузки.ДобавитьСтроку("ВерсияФормата=1.01");
    
    ПотокВыгрузки.ДобавитьСтроку("Кодировка=DOS");
    ПотокВыгрузки.ДобавитьСтроку("Отправитель=" + Метаданные.Синоним);
    ПотокВыгрузки.ДобавитьСтроку("Получатель=" + КлиентБанка);
    ПотокВыгрузки.ДобавитьСтроку("ДатаСоздания=" + Формат(ТекущаяДата(),"ДЛФ=Д"));
    ПотокВыгрузки.ДобавитьСтроку("ВремяСоздания=" + Формат(ТекущаяДата(),"ДЛФ=В"));
    ПотокВыгрузки.ДобавитьСтроку("ДатаНачала=" + Формат(НачПериода,"ДЛФ=Д"));
    ПотокВыгрузки.ДобавитьСтроку("ДатаКонца=" + Формат(КонПериода,"ДЛФ=Д"));
    
    Для каждого Строка Из ТаблицаСчетов Цикл
    Если Строка.Пометка = Истина Тогда
    ПотокВыгрузки.ДобавитьСтроку("РасчСчет=" + Строка.Счет.НомерСчета);
    КонецЕсли;
    КонецЦикла;
    
    Для каждого Строка Из ТаблицаДокументов Цикл
    Если Строка.Пометка = Истина Тогда
    ИмяДокумента = СокрЛП(Строка.Название);
    ПотокВыгрузки.ДобавитьСтроку("Документ=" + ИмяДокумента);
    КонецЕсли;    
    КонецЦикла;
    
    Пока НЕ БД.ВКонце() Цикл 
    ПотокВыгрузки.ДобавитьСтроку("Документ=" + Фстр(БД.DOC_VID)); 
    ПотокВыгрузки.ДобавитьСтроку("СекцияДокумент=" + Фстр(БД.DOC_VID)); 
    ПотокВыгрузки.ДобавитьСтроку("Номер=" + Фстр(БД.DOC_NUM));
    ПотокВыгрузки.ДобавитьСтроку("Дата=" + Формат(БД.DOC_Date,"ДЛФ=Д"));
    Если БД.APP_DT Тогда
    ПотокВыгрузки.ДобавитьСтроку("ДатаСписано=" + Формат(БД.DOC_Date,"ДЛФ=Д"));
    Иначе
    ПотокВыгрузки.ДобавитьСтроку("ДатаПоступило=" + Формат(БД.DOC_Date,"ДЛФ=Д"));
    КонецЕсли;
    ПотокВыгрузки.ДобавитьСтроку("Сумма=" +Формат(БД.SUMMA,"ЧГ="));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикСчет=" + Фстр(БД.A_ACC));
    ПотокВыгрузки.ДобавитьСтроку("Плательщик=ИНН " + Фстр(БД.A_INN) + " " + Фстр(БД.A_NAME));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикИНН=" + Фстр(БД.A_INN));
    ПотокВыгрузки.ДобавитьСтроку("Плательщик1=" + Фстр(БД.A_NAME));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикРасчСчет=" + Фстр(БД.A_ACC));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикБанк1=" + Фстр(БД.A_BANK_NA5));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикБанк2=" + Фстр(БД.A_BANK_CI3));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикБИК=" + Фстр(БД.A_BANK_BIC));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикКорсчет=" + Фстр(БД.A_BANK_KS));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательСчет=" + Фстр(БД.C_ACC));
    ПотокВыгрузки.ДобавитьСтроку("Получатель=ИНН " + Фстр(БД.C_INN) + " " + Фстр(БД.C_NAME));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательИНН=" + Фстр(БД.C_INN));
    ПотокВыгрузки.ДобавитьСтроку("Получатель1=" + Фстр(БД.C_NAME));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательРасчСчет=" + Фстр(БД.C_ACC));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательБанк1=" + Фстр(БД.C_BANK_N13));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательБанк2=" + Фстр(БД.C_BANK_C11));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательБИК=" + Фстр(БД.C_BANK_BIC));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательКорсчет=" + Фстр(БД.C_BANK_KS));
    ПотокВыгрузки.ДобавитьСтроку("ВидПлатежа=" + Фстр(БД.VID_PL));
    ПотокВыгрузки.ДобавитьСтроку("ВидОплаты=" + Фстр(БД.VID_OP));
    ПотокВыгрузки.ДобавитьСтроку("ПлательщикКПП=" + Фстр(БД.A_KPP));
    ПотокВыгрузки.ДобавитьСтроку("ПолучательКПП=" + Фстр(БД.C_KPP));
    ПотокВыгрузки.ДобавитьСтроку("Очередность=" + Фстр(БД.PRIORITY));
    ПотокВыгрузки.ДобавитьСтроку("НазначениеПлатежа=" + Фстр(БД.NOTE));
    ПотокВыгрузки.ДобавитьСтроку("НазначениеПлатежа1=" + Фстр(СтрПолучитьСтроку(БД.NOTE,1)));
    ПотокВыгрузки.ДобавитьСтроку("НазначениеПлатежа2=" + Фстр(СтрПолучитьСтроку(БД.NOTE,2)));
    ПотокВыгрузки.ДобавитьСтроку("НазначениеПлатежа3=" + Фстр(СтрПолучитьСтроку(БД.NOTE,3)));
    ПотокВыгрузки.ДобавитьСтроку("КонецДокумента");
    БД.Следующая();
    КонецЦикла; 
    
    БД.ЗакрытьФайл(); 
    ПотокВыгрузки.ДобавитьСтроку("КонецФайла");
    
    ПотокВыгрузки.Записать("ФайлВыгрузки.tmp",КодировкаТекста.ANSI);
    
    ПРи импорте файла выдается ошибка

    "Поле Объекта не обнаружено DOC_VID"
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Ну, а поле с названием DOC_VID в открываемом файле есть?
  3. TopicStarter Overlay
    Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    все теперь вроде все поля совпадают, но тепрб пишет вот что "Указанный файл не является файлом обмена или неверно указана кодировка!
    "
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Ну, брат, читай описание на файлы обмена и смотри, что не так в генерируемом тобой файле. И на кодировку тоже глянь...
  5. TopicStarter Overlay
    Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    кодировку пробывала разную либо DOS либо Windows, то есть я неправильно описала поля?
  6. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Ой, ты не брат, ты сестра :)
    Да, скорее всего не находит желаемое поле, или встречает неожиданные данные в поле. А кому скармливаешь файл?
  7. TopicStarter Overlay
    Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    скармливаю из ЦФТ "Клиент Банка" в Бухгалтерию 8.1)
  8. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    А он сразу в текстовый файл не сохраняет?

    Можно отладчиком посмотреть, на какой строке он спотыкается.
    Посмотрел в своей бухгалтерии.
    Код:
    	Если СокрЛП(ПотокЧтения.ПолучитьСтроку(1))<>"1CClientBankExchange" Тогда
    Сообщить("Указанный файл не является файлом обмена или неверно указана кодировка!");
    Возврат Неопределено;
    КонецЕсли;
    
    
    Посмотри, у тебя 1 строка в файле = "1CClientBankExchange"?
  9. TopicStarter Overlay
    Sova123
    Offline

    Sova123

    Регистрация:
    24 фев 2008
    Сообщения:
    42
    Симпатии:
    0
    Баллы:
    1
    Что посмотреть не поняла? Там нет 1CClientBankExchange,по -моему
  10. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Должно быть
  11. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Я смотрел обработку "КлиентБанк" в бух 8.1 релиз 1.6.3.2 - там единственное место, где встречается сообщение о ошибке "Указанный файл не является файлом обмена или неверно указана кодировка!" приведено в посте #8. Если у автора темы другой релиз - может быть и другие грабли, но если такой же, то скорее всего в файле выгрузки строка 1 <> "1CClientBankExchange".

    Автор темы - посмотри блокнотом в формируемый файл выгрузки, есть ли там указанная строка, или выложи его здесь - посмотрят 1Сники...
  12. Маркусс
    Offline

    Маркусс

    Регистрация:
    24 авг 2007
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Извиняюсь за тупой вопрос, в данном случае имеется ввиду текстовый файл или дбф-ный?

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