Целевой учет в Галактике 8.10

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

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

Ответить
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Целевой учет в Галактике 8.10

Сообщение Nikos »

Добрый день.
Помогите разобраться с целевым учетом в Галактике 8.10.
Прежде всего хотелось бы воспользоваться интерфейсом 'Целевой учет для позиции спецификации'. Это 'L_SALDOMTR::LINKMTR2SPEC'. Я его вызываю, могу выбирать аналитику, выбор даже запоминается где-то (когда вызываю еще раз высвечивается предыдущий), а вот как получить эти значения не знаю.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Видимо, не многие используют целевой учет...
В документации я нашел такой интерфейс как ObjInterface L_SALDOMTR::OMTRFuncs. По описанию там функции похожи на те, что мне нужны. Как им воспользоваться? vih файла я не нашел, поэтому решил сделать сам (прочитал на форуме). Скопировал содержимое хелпа в текстовый файл, получилось:

#component "L_SALDOMTR"
#ifndef _MTRFuncs_vih_Included
#define _MTRFuncs_vih_Included
!-------------------------------------------------------------------------------
ObjInterface OMTRFuncs;
Procedure CopySpecMTR (SrcTab : Word; SrcSpec : Comp; DstTab : Word; DstSpec : Comp);
//Копирование целевого учета из документа в документ.

Procedure DelSpecMTR (SrcTab : Word; SrcSpec : Comp);
//Удаление целевого учета для позиции спецификации.

Function MTRIsUKS (SrcTab : Word; SrcSpec : Comp) : Boolean;
//Является ли целевой учет позиции спецификации для УКСа.

Function GetObjUKS (SrcTab : Word; SrcSpec : Comp) : Comp;
//Получить NRec объекта строительства из целевого учета позиции спецификации.

Function GetZatrUKS (SrcTab : Word; SrcSpec : Comp) : Comp;
//Получить NRec статьи затрат в строительстве из целевого учета позиции спецификации.

Function GetKau (SrcTab : Word; SrcSpec : Comp; acKau : Word) : Comp;
//Получить NRec системной аналитики из целевого учета позиции спецификации по коду КАУ.

Function GetKitKau (SrcTab : Word; SrcSpec : Comp) : Comp;
//Получить NRec набора аналитик из целевого учета позиции спецификации.

Procedure GenSpecMTRForUKS (SrcTab : Word; SrcSpec : Comp; acObj : Comp; acZatr : Comp);
//Сгенерировать целевой учет в позиции спецификации для УКСа.

Procedure InsSpecMTR (SrcTab : Word; SrcSpec : Comp);
//Сгенерировать целевой учет в позиции спецификации для по сохраненному значению набора аналитик в DSK.

Procedure SaveKitKau (SrcTab : Word; SrcSpec : Comp);
//Сохранить значения набора аналитик в DSK по позиции для даленейшей генерации.

Procedure SaveKitKauForKit (acKit : Comp);
//Сохранить значения набора аналитик в DSK по набору аналитик для даленейшей генерации.

Function GetObjUKSName (SrcTab : Word; SrcSpec : Comp) : String;
//Получить наименование объекта строительства из целевого учета позиции спецификации для УКСа.

Function GetZatrUKSName (SrcTab : Word; SrcSpec : Comp) : String;
//Получить наименование статьи затрат в строительстве из целевого учета позиции спецификации для УКСа.
end;
!-------------------------------------------------------------------------------
VipInterface MTRFuncs implements OMTRFuncs;
!-------------------------------------------------------------------------------
#end // _MTRFuncs_vih_Included

Затем подключаю его:
#include mtrfuncs.vih
Объявляю переменную:
var ob : omtrfuncs;
И использую:
test := ob.GetObjUKSName(PWTABLE,PCSPEC);
Message(test);
Ничего не получается, хоть и компилируется нормально, но при работе выдает ошибку, что ссылка не была инициализирована. Как я понимаю, все-таки vih файл у меня не получился, или в другом проблема?
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

в этом целевом учете можно добавить еще один объект целевого учета кроме объекта строительства?
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

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

Сообщение Seybukan »

Дело не в их количестве.
Разрезов может быть несколько, но для этого надо купить сам целевой учет
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а вот так не пробовали?
var ob : mtrfuncs;
в том виде как вы написали еще и loadvipinterface надо делать.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Попробовал с loadvipinterface - выдает ExObjIfcBadVar. И вообще ситуация аналогична http://www.tyumbit.ru/gal_forum/viewtop ... jifcbadvar, все ошибки те же самые, только я и так явно указываю #component "L_SALDOMTR" , а ошибка не исчезает.
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Переменную бы инициализировать неплохо:
LoadVipRef(ob, 'MTRFuncs')
Потом уж и методы вызывайте. А LoadVipInterface можно применять только к ссылкам на vip-интерфейс. Вы же объявили ссылку на obj-интерфейс.
Виталий
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Я не внимательно читал, что написано. После того как написал var ob : mtrfuncs; ошибка пропала.
Спасибо, буду пробовать дальше.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Практически все, что нужно удалось реализовать. Осталось Ctrl+F2. Вызываю интерфейс L_OSTATKI::GTekOst. Складской разрез получаю, а как добраться до объектов целевого учета не знаю. В описании интерфейса ничего не сказано, как использовать целевой учет:

Interface L_OSTATKI::GTekOst
Интерфейс просмотра текущих остатков по матценности с УКСом

Параметры
PMC : Comp
POTPED : Comp
PODRPARAM : Comp
KATPODR.NREC : Comp
KATMOL.NREC : Comp
KATPARTY.NREC : Comp

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

Сообщение edward_K »

ну дык попробуйте по Ctrl+F4 повычислять параметры вызова раз вы их знаете.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

С параметрами вызова проблем-то нет - здесь все понятно. Целевой учет вычислять нужно как-то по-другому. Через маркеры или еще как-то. Например Ctrl+F3 расписано хорошо:
Interface L_MCU::GetTekSaldoParty
Назначение: Интерфейс наличия МЦ по разрезам с групповым выбором Параметры: pGroup - групповой или единичный выбор pfixedKol - давать ли вводить кол-во pMCNonOst - давать ли возможность выбирать МЦ, не имеющие текущих остатков pWhatKol - При ед.выборе выбираем (1-МЦ; 2-Партия; 3-Объект) --Ограничения/Позиционирование(возвращаемы при ед.выборе)- pPodr - по подразделению pMol - по МОЛ (только если pPodr <>0) pMC - по МЦ pParty - по Партии pObj - по Объекту строительства (при pSaldoTbl = 1) pKol - кол-во для одиночного выбора pNotEdRazr - Режимы выбора по Подр/Мол/МЦ: 0 - разрезы менять можно, при смене разрезов выбор не обнуляется; 1 - разрез Подр/Мол/МЦ менять не разрешено; 2 - разрез менять можно только по МЦ, при смене МЦ выбор не обнуляется; 3 - выбирать только с одного Подр., при смене Подр. выбор обнуляется; 4 - разрезы менять можно, выбирать только с одного подр. и Мол-а, при смене разрезов МОЛ и Подр. выбор обнуляется; 5 - разрезы менять можно, при смене разрезов выбор не обнуляется (при инициализации маркеры не обнуляются) 6 - разрезы менять можно, при смене разрезов выбор не обнуляется. Временно (только при открытии) параметры принимают значения: - не использовать разрез МЦ ( = FALSE) - не использовать разрезы Склад/МОЛ ( = TRUE) --------Используемые разрезы при выборе------------------- pSaldoTbl - 0-TekSaldo; 1-по объектам стр.; 100-любой (Возвращаемый параметр. Если = 100, то по локальной настройке с возможностью изменения разреза выбора, вернет последний используемый разрез) -------------------------Режимы работы------------------------------------- pRazrObj - Доп. режимы выбора по Объекту стр. (при pSaldoTbl = 1): 0 - разрез Объекта менять можно, при смене разреза - выбор не обнуляется В зависимости от параметра pSaldoTbl, при множественном выборе используются следующие возвращаемые маркеры: ------------------------------------------------------------------------------- При pSaldoTbl = 0: 'GTSPC_MarkerTekSaldo' - ссылки на разрезы тек.ост. (TekSaldo.NRec) 'GTSPC_MarkerKolTekSaldo' - их выбранное кол-во дополнительно при pMCNonOst = TRUE: 'GTSPC_MarkerTekSaldo_MCNonOst' - ссылки на МЦ, не имеющих остатков (KatMC.NRec) 'GTSPC_MarkerKolTekSaldo_MCNonOst' - их выбранное кол-во При pSaldoTbl = 1: 'GTSPC_MarkerTekSaldo' - ссылки на разрезы тек.ост. (TekSaldo.NRec) 'GTSPC_MarkerKolTekSaldo' - их выбранное кол-во дополнительно при pMCNonOst = TRUE: 'GTSPC_MarkerTekSaldo_MCNonOst' - ссылки на МЦ, не имеющих остатков (KatMC.NRec) 'GTSPC_MarkerKolTekSaldo_MCNonOst' - их выбранное кол-во дополнительно (раскладывает на Объекты 'GTSPC_MarkerTekSaldo'): 'GTSPC_MarkerTekSaldoObj' - ссылки на МЦ имеющие тек.ост. по Объектам (SaldoObj.NRec) 'GTSPC_MarkerKolTekSaldoObj' - их выбранное кол-во 'GTSPC_MarkerTekSaldoObj_Non' - ссылки на разрезы тек.ост. (TekSaldo.NRec), не имеющие тек.ост. по Объектам 'GTSPC_MarkerKolTekSaldoObj_Non' - их выбранное кол-во

Параметры
PGROUP : Boolean
PFIXEDKOL : Boolean
PMCNONOST : Boolean
PWHATKOL : Word
PPODR : Comp
PMOL : Comp
PMC : Comp
PPARTY : Comp
POBJ : Comp
PKOL : Double
PNOTEDRAZR : Word
PSALDOTBL : Word
PRAZROBJ : Word

Видимо, здесь что-то аналогичное, но почему-то описания нет.
Ответить