Фукнция рассчета средней цены МЦ!!! Help

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

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

Ответить
PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Фукнция рассчета средней цены МЦ!!! Help

Сообщение PViP »

Необходимо рассчитать среднюю цену МЦ!

Думаю что есть стандартная функция, которая учитывает настройки складского учета чтоб не парится с расчетами!

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

Сообщение edward_K »

PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Сообщение PViP »

До, накладная - сформированы, необходимо посчитать среднюю цену матценности SPSopr.CMCusl и списать ее со склада SklOrder.cPodr с МОЛ SklOrder.cMol.

Галка настроена на списани по средним ценам в разрезе склада и МОЛ, по партиям галка не стоит. Версия 810.
Делаю так

Код: Выделить всё

InitMCInfo (SklOrder.DOrd);
StepMCInfo (SPSopr.CMCusl, SPSOpr.cVal, SklOrder.cPodr, SklOrder.cMol, comp(0));

Par1 := AveragePrice;
Par2 := AverageVPrice;

DoneMcInfo;

Цена возвращается не средняя, а та которая стоит в ДО и в Накладной, причем в до цены берутся из прайса!

ЧТо не так!? Почему не выдает среднюю цену!?
gloomy
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Архангельская область ООО "Фалькон плюс"
Контактная информация:

Сообщение gloomy »

┌──────────────────────────────┐
│ Функции Расчета наличия │
└──────────────────────────────┘
по умолчанию рассчитывается исходящие наличие Мц на дату
т.е. учитывается движение за этот день...

function InitMCInfo (date) : boolean
а) инициализация объекта, открытие таблиц
в) устанавливает дату расчета остатков МЦ

function ReInitMCInfo (date) : boolean
а) только устанавливает дату расчета остатков МЦ

function SkladProizv(word);
для расчета в складском учете(0) или в производстве(1),
по умолчанию - в складском учете. Вызывается перед StepMCinfo
или NalT.

function WasStoppedMCInfo : boolean
если в процессе расчета процесс был прерван возвращает TRUE

procedure DoneMcInfo ;
а) закрытие таблиц, удаление объекта работы с остатками МЦ

function StepMCInfo (cMC,cVal,cPodr,cMol,cParty:comp) : comp
производит расчет цены и количества
(возврат значений через AveragePrice,CountMC)
параметры: 1 МЦ KatMC.NRec (параметр типа 1)
2 Валюта KlVal.NRec
3 Склад KatPodr.NRec (параметр типа 1)
4 МОЛ KatMol.NRec (параметр типа 1)
5 Партия KatParty.NRec (параметр типа 1)
возвращает: 1 код валюты в которой произведен расчет
замечания: автоматически учитывается методика списания МЦ

function NalT (date,cMC,cPodr,cMol,cParty:comp) : comp
производит расчет цены и количества
(возврат значений через AveragePrice,CountMC)
параметры: 1 МЦ KatMC.NRec (параметр типа 1)
2 Склад KatPodr.NRec (параметр типа 1)
3 МОЛ KatMol.NRec (параметр типа 1)
4 Партия KatParty.NRec (параметр типа 1)
возращает: наличие МЦ в разрезе
замечания: не поддерживает методику списания МЦ
поэтому вызывать

procedure TypeOstatki (boolean)
параметры: 1 = TRUE - входящие остатки на дату
FALSE - исходящие остатки на дату

procedure LockValOt (boolean)
параметры: 1 = TRUE - пересчет в базовую
FALSE - пересчет в валюту для отчетов

================================================
после вызова StepMCInfo, NalT - можно вызывать
================================================
function AveragePrice : double
возращает: среднию цену в НДЕ
function AverageVPrice : double
возвращает: среднию цену в Валюте
(валюты которую вернула функция StepMCInfo)
function AveragePrivPrice : double
возращает: среднию цену в НДЕ по приходам
function AveragePrihVPrice : double
возвращает: среднию цену в Валюте по приходам
(валюты которую вернула функция StepMCInfo)
function CountMC : double
возвращает: наличие МЦ (количество)
замечания: корректно возвращает только при методике списания МЦ
"средние по разрезу", во всех остальных случаях
возвращает количество всего на предприятии (не учитывая разрезы)
для подсчета наличия-количества необходимо использовать
функцию NalT
================================================
ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ
================================================
function MCGetCurrency (comp, double, date) : double
пересчет в валюту для отчетов
function MCGetBaseCurrency (comp, double, date) : double
пересчет в базовую валюту
function MCGetAnyCurrency (comp, double, date, comp) : double
пересчет в любую валюту


================================================

procedure SwitchProizOn
включает режим когда при расчете средней цены
расходные ордера в производство не учитываются
(по умолчанию отключен)
используется в производстве
procedure SwitchProizOff
выключает данный режим



Паратметры тип 1 (разрезы Хранения МЦ)

comp(0) - рассчитывается наличие без учета данного разреза
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(0),
то наличие будет вычислено для определенной МЦ,
определенного склада, определенного МОЛ,
но сразу для всех партий используемых в учете...

comp(-1) - рассчитывается наличие только для не заданного разреза
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(-1),
то наличие будет вычислено для определенной МЦ,
определенного склада, определенного МОЛ
и только не заданной Партии...

comp(-2) - рассчитывается наличие по таблице Pick (групповой выбор)
т.е. если в параметрах функции NalTov
указать конкретные значения МЦ, Склад, МОЛ,
но вместо KatParty.NRec - передать comp(-2),
то наличие будет вычислено только для Партий,
которые занесены в таблицу Pick
(с соответствующим кодом поля Pick.wList)
PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Сообщение PViP »

Попробую! Спасибо!
Ответить