Пересчет сальдо
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
ModifOrd.vih похоже реализован впервые в 8.1. Поэтому подключив один заголовочный файл Вы ничего не добъетесь. Нужна реализация этих функций.
Глянул одним глазом как в 7.12 обрабатывается update текущей записи в панели редактирования спецификации РО
cmupdaterecord {
{ OneSpOrder_update ; OrdScan; }
}
Эти процедуры вызывают кучу других процедур по цепочке похоже.
И это наверняка немало include-файлов чтобы все это дело собрать. Видимо поэтому ребята из галактики и решили написать объект для работы с сальдовыми остатками в 8.1
Глянул одним глазом как в 7.12 обрабатывается update текущей записи в панели редактирования спецификации РО
cmupdaterecord {
{ OneSpOrder_update ; OrdScan; }
}
Эти процедуры вызывают кучу других процедур по цепочке похоже.
И это наверняка немало include-файлов чтобы все это дело собрать. Видимо поэтому ребята из галактики и решили написать объект для работы с сальдовыми остатками в 8.1
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Думаю что нет - это паскалевские функции ПОЛУЧЕНИЯ наличия и средней цены. В основном они реализованы через выгрузки остатков на какую то дату во временную таблицу. Может быть, за исключением averageprice кторая возвращает просто цену на дату по разрезу.PViP писал(а):Den, они(функции) как будто не пересчитываю сальдовые остатки перед тем как среднюю цену рассчитать!
-
- Постоянный гость
- Сообщения: 52
- Зарегистрирован: 28 июн 2006, 08:45
- Откуда: Уфа
Den правильно подметил.
Благодаря товарищу из Минска, у меня появилось следующее
файл ModifSal.vih
//******************************************************************************
// (c) корпорация Галактика
// Галактика 7.12 - Общие функции
// Объект с функциями модификации текущих остатков
//******************************************************************************
// для использования необходимо
// 1) описать переменную fModifSal при помощи #include ModifSal.var
// 2) запускать методы объектного интерфейса через переменную: fModifSal.ModifyDoRes(...
#ifNdef __ModifSal_VIH__
#define __ModifSal_VIH__
//******************************************************************************
#ifdef ComponentVersion
#component "L_Ostatki"
#end
//******************************************************************************
!#doc
!Модификация сальдовых остатков
!#end
ObjInterface ObjModifSalV1;
//******************************************************************************
// public-функции
//
!#doc
!Расчет средней цены для налогового учета РФ
!#end
Function CountSrPriceN(
kolSal_ : double;
priceSal_ : double;
kolOrd_ : double;
priceOrd_ : double;
v : word;
t : word
): double;
!#doc
!Расчет средней цены от двух чисел
!#end
Function CntSrAdd(
kol1_ : double;
price1_ : double;
kol2_ : double;
price2_ : double;
v : word;
t : word
): double;
!#doc
!Модификация сальдовых остатков по входящим параметрам
!#end
Function AddSaldoMC(
SP_ : word;
cMC_ : comp;
cPodr_ : comp;
cMOL_ : comp;
cParty_ : comp;
kol_ : double;
price_ : double;
vPrice_ : double;
cVal_ : comp;
priceN_ : double;
vPriceN : double;
Date_ : date;
minKol_ : double;
del_ : boolean;
wVidOrder : word;
wTipOrd : word
): boolean;
!#doc
!Модификация сальдовых остатков по ордеру
!#end
Function AddSaldoMC_Upd(cSpOrder_: comp; del_: boolean; upd_: boolean): boolean;
//******************************************************************************
end;
//******************************************************************************
//******************************************************************************
VipInterface ModifSalV1 implements ObjModifSalV1
#ifdef ATL51
licensed (FREE)
#end
;
//******************************************************************************
#end
//******************************************************************************
и файл ModifSal.var
//******************************************************************************
// (c) корпорация Галактика
// Галактика 7.12 - Логистика - склад
// Переменная типа интерфейса ModifSal
//******************************************************************************
#ifNdef __ModifSal_var__
#define __ModifSal_var__
#ifNdef __ModifSal_VIH__
#Warning Необходимо подключить ModifSal.VIH
#end
var oModifSal: ModifSalV1;
#end
Вообщем функция
AddSaldoMC_Upd
вроде бы делает то что нужно, только надо еще разобраться с параметрами
cSpOrder_: comp //sporder.nrec
del_: boolean; //вроде бы при true вводит новые остатки в разрезе, без учета предыдущих
upd_: boolean // ?
Может у кого есть еще какие-нибудь варианты пересчета?
[/b]
Благодаря товарищу из Минска, у меня появилось следующее
файл ModifSal.vih
//******************************************************************************
// (c) корпорация Галактика
// Галактика 7.12 - Общие функции
// Объект с функциями модификации текущих остатков
//******************************************************************************
// для использования необходимо
// 1) описать переменную fModifSal при помощи #include ModifSal.var
// 2) запускать методы объектного интерфейса через переменную: fModifSal.ModifyDoRes(...
#ifNdef __ModifSal_VIH__
#define __ModifSal_VIH__
//******************************************************************************
#ifdef ComponentVersion
#component "L_Ostatki"
#end
//******************************************************************************
!#doc
!Модификация сальдовых остатков
!#end
ObjInterface ObjModifSalV1;
//******************************************************************************
// public-функции
//
!#doc
!Расчет средней цены для налогового учета РФ
!#end
Function CountSrPriceN(
kolSal_ : double;
priceSal_ : double;
kolOrd_ : double;
priceOrd_ : double;
v : word;
t : word
): double;
!#doc
!Расчет средней цены от двух чисел
!#end
Function CntSrAdd(
kol1_ : double;
price1_ : double;
kol2_ : double;
price2_ : double;
v : word;
t : word
): double;
!#doc
!Модификация сальдовых остатков по входящим параметрам
!#end
Function AddSaldoMC(
SP_ : word;
cMC_ : comp;
cPodr_ : comp;
cMOL_ : comp;
cParty_ : comp;
kol_ : double;
price_ : double;
vPrice_ : double;
cVal_ : comp;
priceN_ : double;
vPriceN : double;
Date_ : date;
minKol_ : double;
del_ : boolean;
wVidOrder : word;
wTipOrd : word
): boolean;
!#doc
!Модификация сальдовых остатков по ордеру
!#end
Function AddSaldoMC_Upd(cSpOrder_: comp; del_: boolean; upd_: boolean): boolean;
//******************************************************************************
end;
//******************************************************************************
//******************************************************************************
VipInterface ModifSalV1 implements ObjModifSalV1
#ifdef ATL51
licensed (FREE)
#end
;
//******************************************************************************
#end
//******************************************************************************
и файл ModifSal.var
//******************************************************************************
// (c) корпорация Галактика
// Галактика 7.12 - Логистика - склад
// Переменная типа интерфейса ModifSal
//******************************************************************************
#ifNdef __ModifSal_var__
#define __ModifSal_var__
#ifNdef __ModifSal_VIH__
#Warning Необходимо подключить ModifSal.VIH
#end
var oModifSal: ModifSalV1;
#end
Вообщем функция
AddSaldoMC_Upd
вроде бы делает то что нужно, только надо еще разобраться с параметрами
cSpOrder_: comp //sporder.nrec
del_: boolean; //вроде бы при true вводит новые остатки в разрезе, без учета предыдущих
upd_: boolean // ?
Может у кого есть еще какие-нибудь варианты пересчета?
[/b]
-
- Постоянный гость
- Сообщения: 52
- Зарегистрирован: 28 июн 2006, 08:45
- Откуда: Уфа