Страница 1 из 1

7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 12:05
__nogc
Добрый всем день. Раньше у нас была Галактика 5.84. Там в таблице KATKAU было поле COTABLE, однозначно идентифицирующее таблицу, в которой хранилась та или иная аналитика. Теперь у нас Галактика 7.11, с удивлением обнаружил в ней отсутствие поля KATKAU.COTABLE.
Вопрос такой: хранится ли теперь где-нибудь в базе связь КАУ<->Таблица КАУ, или нет, а если да - то где?

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 12:17
Deinis
Попробуй выполнить следующие действия:
1. Инициализация сервиса для работы с КАУ (функция):
Initservkau : Boolean
2. Получение номера таблицы:
Getkaucotable(Word) : Word
3. Завершить сервис для работы с КАУ (процедура):
Doneservkau

Собственно ты эти же действия можешь проделать в любом месте Галактики, вызвав окно "Вычислить и модифицировать" по Ctrl+F4.
Там введи последовательно
Initservkau (должен появиться результат TRUE)
Getkaucotable(15) (должен появиться результат 3000)
Doneservkau

Все вышеописанное актуально для версии 5.8х. Но может быть сработает и на 7.11 (если разработчики просто перенесли куда-то поле coTable, никому об этом не сказав) ;)

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 12:43
__nogc
Деинис, спасибо.
Так я делал раньше. Сейчас идея такая: полностью отказаться от взаимодействия с Галактикой, и брать нужные данные исключительно из БД.

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 13:27
__nogc
Нашёл приемлемое решение. Функция GETKAUCOTABLE находится в dll-ке G_KAU.dll.
Имеет следующий прототип:
static extern Word /*Два байта*/ GETKAUCOTABLE(Word /*Два байта*/);

Никаких данных из БД функция не берёт (делаем вывод, что коды таблиц КАУ прошиты в бинарниках), достаточно в нужный момент подгрузить в своё приложение эту dll-лину и вызвать функцию GETKAUCOTABLE.

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 13:33
__nogc
Ошибочка вышла... Функция всегда возвращает 8512... Что же делать ???

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 14:04
Deinis
8512 - это код таблицы SpKAU ""Пользовательская аналитика"). Может ты этой функции все время подсовываешь код пользовательской аналитики, а не системной?

Re: 7.11: Куда делся код таблицы КАУ из KATKAU?

Добавлено: 13 июл 2004, 14:11
__nogc
Подсовывал
1 (Организации) - системная
2 (Подразделения) - системная
и т.д., всегда возвращает код 8512
Видимо, эта функция для корректного использования на самом деле требует предварительного вызова InitServKau.
А эту функцию просто так не вызовешь. Требуется подключение к БД. Её вызов из произвольной программы обваливается с сообщением "...не удалось загрузить btrv_drv.dll..."