Страница 1 из 1
Вызов интерфейса выбора Аналитики
Добавлено: 05 июн 2013, 15:03
niteo
Добрый день, хочу вызвать интерфейс выбора аналитики.
Пытаюсь использовать
F_GETAN::THREEPICKKAU в "Документации на программный интерфейс" написано следующее:
Параметры
Код: Выделить всё
wIntMode : Word
wPickNum : Word
cPlansSch : Comp
sGetSch : String [21]
sGetSub : String [21]
wGetKau : tTabKau
cGetKau : tGetKau
Не пойму назначения первых 3-х полей, откуда брать данные для них?
Пытался вызвать этот интерфейс через
Сервис->Утилиты->Запуск внешнего интерфейса, но ничего не получилось.
Посмотрел файл
xgetkau.vih там описан ряд интерфейсов, но мне не до конца понятно их назначение, хотя параметры они получают похожие. Вот пример:
Код: Выделить всё
wIntMode : word; // режим выбора (см.GloConst.inc)
PickNum : word; // номер элемента для выбора
cPlansSch : comp; // план счетов
с остальными кажется ясно, но вопрос остался, что означают первые 3 поля и что туда подставлять?
Re: Вызов интерфейса выбора Аналитики
Добавлено: 05 июн 2013, 15:30
edward_K
используйте объект GetKau
Плюсы - доступ к любой аналитике, а не только к пользовательской, автоматическая работа с пометкой (все выборы сохраняются в маркер) , не нужно заботиться о конкретный фейсах и так далее. Примеры поищите на форуме.
Re: Вызов интерфейса выбора Аналитики
Добавлено: 07 июн 2013, 13:42
niteo
edward_K писал(а):используйте объект GetKau
Плюсы - доступ к любой аналитике, а не только к пользовательской, автоматическая работа с пометкой (все выборы сохраняются в маркер) , не нужно заботиться о конкретный фейсах и так далее. Примеры поищите на форуме.
Мне необходимо выбрать 6 параметров аналитики для
лицевого счета, в зависимости от критериев
счет/субсчет.
Re: Вызов интерфейса выбора Аналитики
Добавлено: 07 июн 2013, 14:00
edward_K
ну вот вам пример из зарплаты
Код: Выделить всё
#declare Pick_Deb (TableName, SchetField, SubschField, KAUField)
begin
if (CurField = #SchetField) or (CurField = #SubschField)
{
if (CurCommand = cmOpenSearch)
QuickChoiceName := if (CurField = #SchetField, 'qcBuh_SchetAndSub', 'qcBuh_SubSchet');
else
QuickChoiceName := '';
shpzar := PLANSSCH.KOD + #TableName.CSCHETD;
if (RunInterface('GetBuhSchet', word(cgiPick), MyPlansNo, shpzar, #TableName.CSUBSCHD) <> cmCancel)
{
#TableName.cSchetD := SubStr(shpzar, 2, cgSchetLength-1);
var SA: StickyAnalytics;
SA.Stick(shpzar, #TableName.CSUBSCHD, #TableName.TBLD, #TableName.CKAUD);
set #TableName.cSchetD := #TableName.CSCHETD;
}
}
if (CurField = #KAUField)
{
shpzar := PlansSch.Kod + #TableName.cSchetD;
if (iXGetKau.PickKauBuh(
cgiPick, word(0),
shpzar, #TableName.cSubSchD,#TableName.TBLD,#TableName.CKAUD))
set #TableName.CKAUD[1] := #TableName.CKAUD[1];
}
end;
#end //Pick_Deb
Использование
#Pick_Deb(LSchet, #SchetDeb, #SubSchDeb, #NamKaud);
где NamKaud - текстовое значение поля аналитики.
Код: Выделить всё
RTrim(if (GetAnyKau(cgAkSimple, OtpDop.TBLD[1], OtpDop.CKAUD[1]), GivenAnName(cgAnName), '') + '\' +
if (GetAnyKau(cgAkSimple, OtpDop.TBLD[2], OtpDop.CKAUD[2]), GivenAnName(cgAnName), '') + '\' +
if (GetAnyKau(cgAkSimple, OtpDop.TBLD[3], OtpDop.CKAUD[3]), GivenAnName(cgAnName), '') + '\' +
if (GetAnyKau(cgAkSimple, OtpDop.TBLD[4], OtpDop.CKAUD[4]), GivenAnName(cgAnName), '') + '\' +
if (GetAnyKau(cgAkSimple, OtpDop.TBLD[5], OtpDop.CKAUD[5]), GivenAnName(cgAnName), '') + '\' +
if (GetAnyKau(cgAkSimple, OtpDop.TBLD[6], OtpDop.CKAUD[6]), GivenAnName(cgAnName), '') , '\'),
Re: Вызов интерфейса выбора Аналитики
Добавлено: 10 июн 2013, 21:15
niteo
edward_K писал(а):ну вот вам пример из зарплаты
Код: Выделить всё
shpzar := PlansSch.Kod + #TableName.cSchetD;
if (iXGetKau.PickKauBuh(
cgiPick, word(0),
shpzar, #TableName.cSubSchD,#TableName.TBLD,#TableName.CKAUD))
set #TableName.CKAUD[1] := #TableName.CKAUD[1];
Как я понял, мне необходима только
Возникло несколько вопросов, как выйти на табличку
PlansSch (пока заменил на 'Т'),
TableName это
lschet
Еще проблема, при добавлении в проект строчки:
#include xGetKau.vih
компилятор начинает ругаться вот так:
Ошибка: ожидалось : ";" (стр.12, поз.1. в C:\...\INC\XGETKAU.vih)
#Component "F_GetAn"
^ [ Enter-продолжить ] : ok.
Re: Вызов интерфейса выбора Аналитики
Добавлено: 11 июн 2013, 11:01
edward_K
1. PlansSch.Nrec ищется из настройки текущего плана счетов либо из настройки консолидации
"Настройки Галактики \ Бухгалтерский контур \ Текущий план счетов" ( код FIN.USER.CPLANSSCH)
"Настройки Галактики \ Бухгалтерский контур \ Консолидация \ Текущий план счетов" (KONSOLID.CPLANSSCH)
функцией coGetTune(код_настройки), либо по вкусу.Ну а дальше ищите нужную запись и берете из нее код.
Пример приведен для зарплаты - там нет кода плана счетов в таблицах, в бухконтуре есть.
2. У вас ошибка где то выше, а не в vih - ругается на первый символ кода. Ну или версия у вас ниже 810.
Re: Вызов интерфейса выбора Аналитики
Добавлено: 18 июн 2013, 15:55
niteo
Спасибо за Ваши ответы. Еще вот такой момент:
edward_K писал(а):2. У вас ошибка где то выше, а не в vih - ругается на первый символ кода. Ну или версия у вас ниже 810.
Далаю вот так:
Код: Выделить всё
interface iGet6KAU 'Получить КАУ';
//#include GetKau.vih
#include xGetKau.vih
end.
Говорит тоже самое, ругается на содержимое xGetKau.vih (его я беру из папки FRM).
Если, я пытаюсь воспользоваться функцией xGetKau.PickKauBuh без подключения xGetKau.vih,
Код: Выделить всё
interface iGet6KAU 'Получить КАУ';
//#include GetKau.vih
//#include xGetKau.vih
var iXGetKau: XGetKau;
handleevent
cmInit:{
iXGetKau.PickKauBuh();
}
end
end.
то компилятор ругается так:
Что это означает - непонятно. С Интерфейсами мало работал. Подскажите, из-за чего возникает данная ошибка?
Re: Вызов интерфейса выбора Аналитики
Добавлено: 18 июн 2013, 16:13
edward_K
xGetKau это не стандартный тип, который где то нужно описать - объекты описываются в vih(принято так - расширение вообще не важно).
а версия то галки какая? Define все нужные определены? Я обычно включаю galnet.inc в проект - он включает все необходимые определения.
#statusline "statgal"
#include galnet.inc end;
#include glovars.inc
- это у меня во всех проектах
Inc также есть в каталоге frm (его надо собирать из всех файлов патчей), чего не хватит замените пустышками.