Думал, что писал об этом, а оказалось, что думал о том, чтобы написать ;) Так или иначе, имеется небольшой скриптик, который в связке с когда-то упомянутым incron'ом занимается перекодировкой (практически "на лету") выгружаемой информации из клиент-банка из UTF-8 в CP-1251 для последующей загрузки оной в 1Сv8.1.
Создать его пришлось вследствие нежелания 1С-ки кушать выгруженные из клиент-банка (java-апплет ibank2, доступ через Firefox) данные, ибо они отдаются и сохраняются в UTF-8, тогда как 1C-ка (запущена под Wine@Etersoft) понимает только CP-1251.
Описанный костыль работает следующим образом: демоном incrond мониторится папочка:
incrontab -l
/exchange/банк/экспорт IN_CLOSE_WRITE /usr/local/bin/bank_tr_ex.sh $#
Как только в ней сохраняется файл (флаг IN_CLOSE_WRITE), запускается скрипт bank_tr_ex.sh:
#!/bin/bash
ICONV=/usr/bin/iconv
DIR=/home/exchange/банк/экспорт
OLDDIR=/home/exchange/банк/экспорт/old
FILE="$@"
ENC=`enca -i $DIR/$FILE`
if [ "$ENC" == "UTF-8" ]; then
#echo $FILE
sleep 1
mv $DIR/$FILE $OLDDIR/$FILE.utf
$ICONV -o $OLDDIR/$FILE -f UTF-8 -t CP1251 $OLDDIR/$FILE.utf
mv $OLDDIR/$FILE $DIR/$FILE
fi
Задача скрипта: забекапить загруженный файл ($FILE.utf), транскодировать его в CP1251, подсунуть перекодированный файл вместо изначального.
После этого 1С-ка кушает выгрузку за милую душу ;)
Комментариев нет:
Отправить комментарий