Добрый день!
Вот такой :Как экспортировать справочник банков из СЭДа?(в СЭДе банки забиты по другому:крупным шрифтом ит.п.)В СЭДе справочник находится в файле client.mdb,который объединяет несколько таблиц,справочник банков нах-ся в таблице bankru.Оттуда можно сделать экспорт , нужно указать тип файла.Какой тип файла нужно указать(dbase5;dbase III;dbase IV)
и где это импортировать в нашей программе (БЭСТ)?
Подозреваю, что форматы не совпадут. А чем не устраивает стандартный справочник?
И СЭД и БЭСТ берут сведения из одного источника.
Если не устраивает шрифт, можно взять bnkseek.dbf, сделать UPPER() и принять справочник в БЭСТе из файла.
Либо из mdb делать структуру bnkseek.dbf:
Цитата
Nr. Field Name Type Len Dec
==== ========== ========= ===== =====
1 VKEY Character 8 0
2 REAL Character 4 0
3 PZN Character 2 0
4 UER Character 1 0
5 RGN Character 2 0
6 IND Character 6 0
7 TNP Character 1 0
8 NNP Character 25 0
9 ADR Character 30 0
10 RKC Character 9 0
11 NAMEP Character 45 0
12 NAMEN Character 30 0
13 NEWNUM Character 9 0
14 NEWKS Character 9 0
15 PERMFO Character 6 0
16 SROK Character 2 0
17 AT1 Character 7 0
18 AT2 Character 7 0
19 TELEF Character 25 0
20 REGN Character 9 0
21 OKPO Character 8 0
22 DT_IZM Date 8 0
23 CKS Character 6 0
24 KSNP Character 20 0
25 DATE_IN Date 8 0
26 DATE_CH Date 8 0
27 VKEYDEL Character 8 0
Если не устраивает стандартный импорт справочника банков, можно взять плагин и доработать его под свои нужды, в нем попутно делая UPPER() на нужных полях. Плагины есть на форуме.
Что значит стандарный справочник?
Не устраивает то,что у нас БАНКИ в БЭСТе прописными буквами,а в СЭДе -заглавными и названия многих банков не совпадает.
Вот мы и хотим ,чтобы справочники были одинаковыми,т.к.экспортируемый файл из БЭСТа не редактируется в СЭДе.
bnkseek.dbf-это файл БЭСТ?у нас БЭСТ5.3.4.доп19,1-4.Где в базе этот файл находится?
далее приводиться программа перекодировки?
Объясните более подробно.
У Вас в БЭСТе банки откуда берутся? Вы их заносите руками?
Из пояснительной записки к 19 пакету:
Цитата
1. В справочнике банка, кроме импорта данных напрямую через Интернет, предоставлена возможность импорта справочника из файла, соответствующего структуре справочника банка сайта www.pvision.ru. В этом случае импорт осуществляется с помощью пунктов меню "Синхронизация из файла"/"Синхронизация из файла с добавлением" кнопки "Загрузка". При выборе этих пунктов меню предлагается указать путь к файлу *.zip. Правила синхронизации те же, что и через Интернет.
Используете ли вы эту возможность?
Попробуйте, и у вас появится справочник банков такой же как в СЭД и никакой UPPER() не нужен, т.к. там все записи заглавными.
Пробовали закачать с этого сайта справочник-но он не обновился.Почему-не знаем.Может надо полность очистить справочник в БЭСТе ,а потом загрузить с сайта(bestzip.dll)? И потом надо будет перебивать в партнерах банки-на основании нового (закачанного)справочника????
Как вы делали? Обновление через интернет? Или сначала скачали файл и потом обновление через файл?
Можно сделать несколько иначе, но уже с плагинами.
Сейчас у вас есть справочник банков, в котором могут быть и двойные записи, и неиспользуемые и ошибочные. Это так?
Если так, то почитайте эту тему.
Добрый день,Евгений!
Скачала файл и делала обновление через файл,но у нас есть двойные записи(можно сказать тройные)с одним БИКом-отсуда и полно неиспользуемых.По ссылке - программу "Функция optbank" где и как нужно применять,объясните подробнее.Что за файл userbdll.txt? Для чего нужен и где находится ?
ПЕРВЫЙ РАЗ ДЕЛАТЬ НА КОПИИ РАБОЧЕЙ БАЗЫ ДАННЫХ!!! - Открыть БЭСТ-5
- Запустить редактор XBA
- выбрать в левом окне папку BANK
- создать файл, к примеру u_bik.prg
- разместить там текст функции
Код
optbank()
Function optbank()
Local t_bnk_id, t_bnk_code // переменные для сравнивая значений соседних строк по индексу TAG_CODE
dbpush()
Use (Loadpath()+"prt_acnt.dbf") Index('prt_acnt.cdx') New Alias prt_acnt shared
prt_acnt->(ordSetFocus(0))
Use (Loadpath()+"bank.dbf") Index('bank.cdx') New Alias bank shared
bank->(ordSetFocus('tag_code')) // выбираем сортировку по БИКу
DbGoTop() // перемещаем указатель на начало сортированного списка
Do While !EoF() // цикл на перебор записей справочника банков
If Len(AllTrim(bnk_code))<>9 // проверка на корректность значения БИК (9 символов)
//действия при некорректном коде
bank->(DbSkip())
Else //иначе, код равен 9 символам
//действия при корректном коде (по количеству символов)
t_bnk_id:=bank->bnk_id ; t_bnk_code:=bank->bnk_code //Запоминаем значения текущей записи для сравнения с последующими
bank->(DbSkip()) //идем дальше
Do While bank->bnk_code=t_bnk_code // проверка, если по этому БИКу запись повторяется
Select prt_acnt
//замена значения банка в справочнике счетов партнеров
FLock()
Replace prt_acnt->bnk_id With t_bnk_id ;
For prt_acnt->bnk_id=bank->bnk_id
DbUnLock()
Select bank
//Отмечаем запись для удаления в справочнике банков
RLock()
// bank->bnk_name:="D->"+bank->bnk_name
Delete
DbUnLock()
bank->(DbSkip())
EndDo // bank->bnk_code=t_bnk_code // проверка, если по этому БИКу запись повторяется
EndIf // Len(AllTrim(bnk_code))<>9 // проверка на корректность значения БИК (9 символов)
EndDo // !EoF() // цикл на перебор записей справочника банков
//messagebox(str(recno()))
//messagebox(bank->bnk_code)
//sayandwait("Ура! Работает!")
messagebox("Оптимизация справочника банков завершена.")
bank->(DbCloseArea()) //закрываем таблицу
prt_acnt->(DbCloseArea()) //закрываем таблицу
dbpop()
Return .t.
- скомпилировать по клавише F7
- выйти в окно БЭСТа
- открыть модуль Счета в банках
- Открыть книга учета операций
- открыть реестр спецфункций (кнопка функции Настройка спецфункций)
- Добавить запись
- в поле имя файла выбрать u_bik.HRB
- сохранить и выйти из книги операций
- зайти вновь и через кнопку функции запустить на исполнение эту программу
- проверить справочник банков и привязку по организациям (можно выборочно)