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

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

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

Добавлено: 19 сен 2007, 10:35
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 файл у меня не получился, или в другом проблема?

Добавлено: 19 сен 2007, 13:31
san
в этом целевом учете можно добавить еще один объект целевого учета кроме объекта строительства?

Добавлено: 19 сен 2007, 13:34
Nikos
Да, там 10 уровней предусмотрено. У нас используются 3.

Добавлено: 19 сен 2007, 18:51
Seybukan
Дело не в их количестве.
Разрезов может быть несколько, но для этого надо купить сам целевой учет

Добавлено: 20 сен 2007, 01:43
edward_K
а вот так не пробовали?
var ob : mtrfuncs;
в том виде как вы написали еще и loadvipinterface надо делать.

Добавлено: 20 сен 2007, 12:54
Nikos
Попробовал с loadvipinterface - выдает ExObjIfcBadVar. И вообще ситуация аналогична http://www.tyumbit.ru/gal_forum/viewtop ... jifcbadvar, все ошибки те же самые, только я и так явно указываю #component "L_SALDOMTR" , а ошибка не исчезает.

Добавлено: 21 сен 2007, 02:37
Screw
Переменную бы инициализировать неплохо:
LoadVipRef(ob, 'MTRFuncs')
Потом уж и методы вызывайте. А LoadVipInterface можно применять только к ссылкам на vip-интерфейс. Вы же объявили ссылку на obj-интерфейс.

Добавлено: 21 сен 2007, 11:28
Nikos
Я не внимательно читал, что написано. После того как написал var ob : mtrfuncs; ошибка пропала.
Спасибо, буду пробовать дальше.

Добавлено: 01 окт 2007, 09:51
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

но в тех же накладных на внутреннее перемещение используется этот интерфейс и все нормально выбирается. Может, у кого есть более полное описание?

Добавлено: 01 окт 2007, 10:44
edward_K
ну дык попробуйте по Ctrl+F4 повычислять параметры вызова раз вы их знаете.

Добавлено: 01 окт 2007, 10:58
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

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