Установка настроек для импорта

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

Ответить
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Установка настроек для импорта

Сообщение edd »

В общем проблема импорта из клиент-банка в галку не раз поднималась на форумах. Но решения я так и не нашел.

Нужно в галку сделать импорт комиссий как платежных поручений через банковские выписки. Но это не важно. Формат файла csv, имеет вид
MOVEMENT;"674139RUR401102016";"11.05.2007";"185";"RO0705115563";"11.05.2007";"11.05.2007";"6.000000";"0.000000";"Charges RO0705115563"
Лезу в обмен бизнес-документами, настройка для импорта. В полях заголовка ставлю пустое поле, пустое поле, Дата выписки, Пустое поле, Номер, Дата обработки, Пустое поле, Сумма платежа в НДЕ, Пустое поле, Пустое поле
Меня интересует то, что написано пятым, а именно номер (RO0705115563). Когда фины заносят эти данные ручками, они за номер считают последние 6 цифр, т.е. 115563. Вопрос, почему галактика не понимает, что я имею ввиду, когда в поле Формула напротив "Номер" пишу "Substr(Номер, 7,6)"? Если я пишу не то ( а в справке написано, что туда "Допустим ввод численных значений, арифметических действий и функций, переменных языка VIP"), то что надо писать, какие формулы, функции??? И что такое "Пустое поле", это то, что я понимаю? Что надо эту запись в csv пропустить или что? .
И почему он не заносит даты, хотя формат я установил DD.MM.YYYY ?

Заранее спасибо
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

Даты не идут думаю потому что все в кавычках.
Функции в тупую можно использовать при экспорте. При импорте так не прокатит. Вроде как есть возможность использовать хитрую функцию, но я ее не помню. Вот Эдвард точно помнит.
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

во вроде так нада
Substr(simportField, 7,6)
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

Эдвард пока игнорирует :-)
Получилось кстати с этой функцией, а больше функций для импорта не помните? Хоть где эти функции брать, я бы сам на них с удовольствием посмотрел...
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

Код: Выделить всё

// ObjExpImpScript - вызвается интерфейсами до/после экспорта/импорта документов.
// При экспорте он вызывает после выгрузки данных, при импорте - до загрузки.
// Сторонние разработчики могут написать свои реализации этого объектного интерфейса,
// чтобы привести данные в файле к нужному формату до импорта или после экспорта.
// Все реализации должны начинатся с префикса "ExpImpScript_"
#ifndef __ObjExpImpScript__
#define __ObjExpImpScript__

#ifdef GAL8_0
#component "C_EXPIMP"
#endif

ObjInterface ObjExpImpScript;
  // эта процедура вызвается до того, как файл для экспорта будет открыт
  // sFileName - полный путь к файлу
  // cIEHead - ссылка на настройку экспорта
  procedure BeforeExport(cIEHead : comp; sFileName : string);
  
  // эта процедура вызвается после того, как файл с результатами экспорта закрыт
  // sFileName - полный путь к файлу
  // cIEHead - ссылка на настройку экспорта
  procedure AfterExport(cIEHead : comp; sFileName : string);

  // эта процедура вызвается до того, как файл с данными для импорта будет открыт
  // sFileName - полный путь к файлу
  // cIEHead - ссылка на настройку импорта
  procedure BeforeImport(cIEHead : comp; sFileName : string);

  // эта процедура вызвается после того, как файл с данными для импорта будет закрыт
  // sFileName - полный путь к файлу
  // cIEHead - ссылка на настройку импорта
  procedure AfterImport(cIEHead : comp; sFileName : string);
end;

#end
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

2Ged
Это то я знаю, но хотел использовать "встроенный" галактический инструмент, а не писать свой интерфейс обработки файла для импорта.
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

А другого пути нет.
Нельзя написать какой то универсальный функционал для ВСЕХ.
Все равно гдето будет кривить.
А дату не понимает скорей всего из-за символов обрамления ""
.
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

Я не знаю как обращаться к полям файла через vip. Поэтому мне гораздо проще было бы добавить в галактическом интерфейсе нужные функции обработки полей.
А про дату вы были правы. В общем я встал, ни своего интерфейса написать, ни функций для импорта вставить в галактическом... :cry:
Последний раз редактировалось edd 10 июл 2007, 10:32, всего редактировалось 1 раз.
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

А какие функции нужны-то?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

угу а чего нужно то?
и что за текстовый файл? реестр?
если не реестр и сложная шапка то без предобработки его не обойтись. Из dbf в принципе проще подтягивать на порядок.
simportField - вернет значение текущего по порядку импортируемого поля. Все атлантические функции с ним прекрасно работают.
Как вариант можно написать экспорт, а потом его настройку грузануть в импорт - иногда прокатывает.
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

Мне нужны функции для обработки csv-файла с разделителями. Функции, которые пишутся в настройке импорта, во вкладке "Поля заголовка", столбец "формула".
Шапки как таковой нет, её можно не выводить в файл при экспорте из клиент-банка.
Из dbf уже настроил, но как всегда финансистами понадобилось совсем другое, поэтому счас и работаю с файлом *.csv.
К примеру, в этом файле нет назначения платежа (не выводится), но этот файл всегда содержит в себе только комиссии. Поэтому напрашивается вопрос, а как и какую функцию забить, чтобы она всегда бы вставляла для назначений платежа "комиссия"? Что-то типа simportField='комиссия'.
Какую функцию выбрать, чтобы узнать длину данных в поле? length(simportField) не катит.
Напомню, я говорю об импорте.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1.Нужно точно считать поля, если одно и тоже импортируемое поле поле нужно вставить в несколько мест, то предобработка рулит.
2.Выберите в нужном месте поле "Назначение платежа 1" а в формулу подставте что нужно и все.
3.попробуйте выбирать ""Назначение платежа 2" и в формуле прописать 'DDDD '+string(length(simportfield).
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

edward_K писал(а):...
2.Выберите в нужном месте поле "Назначение платежа 1" а в формулу подставте что нужно и все.
действительно, оказалось достаточно просто прописать 'комиссия'.
И ещё, а почему не тянет сумму платежа? Может опять формат не тот? 6.0000 для галактики не подходит, надо 6,000?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

опять же возможно ошиблись в номере поля.
попробуйте вывести сие в "назначение платежа 2"
6.000 родной формат, а вот запятую придется преобразовывать через replace.
может надо написать trim(simportfield)
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

Сообщение edd »

ОК. Спасибо большое
Ответить