Понадобилось программно "доставать" среднюю цену по разрезу Склад-МОЛ.
Подскажите, пожалуйста, есть ли на этот счет какая-то функция?
Функция определения средней цены МЦ по разрезу
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
-
- заказчик
- Сообщения: 83
- Зарегистрирован: Пн, 10/12/2007 13:24
- Имя Фамилия: Сергей Золотухин
- Откуда: Северо-Западные Магистральные Нефтепроводы
- Контактная информация:
Насколько я понимаю средняя цена расчитывается автоматом согласно методу списания.
Что конкретно надо?
Если сравнить цену по разрезу Склад-Мол-Партия с разрезом Склад-Мол, то вряд ли.
Если нужно получить остаток(текущий или на дату) в разрезе Склад-Мол, то есть 2 функции:
Что конкретно надо?
Если сравнить цену по разрезу Склад-Мол-Партия с разрезом Склад-Мол, то вряд ли.
Если нужно получить остаток(текущий или на дату) в разрезе Склад-Мол, то есть 2 функции:
Код: Выделить всё
1.Store_Run(DateBeg // на дату
, comp( 0)
, comp( 0)
, comp( 0)
, comp( 0)
, if( (typdetal and 1)=1,true,false) //разрез по складам
, if( (typdetal and 2)=2,true,false) //по мол
, if( (typdetal and 4)=4,true,false) //по партиям
);
2.UksStore_Run(...) // тут тоже самое, только + в разрезе ЦУ
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
Надо буквально следующее:Сергей Золотухин писал(а):Что конкретно надо?
Есть определенная задача: создание Акта на разукомплектовку на основании Накладной на внутреннее перемещение.
Так вот если вручную создавать Акт, то цены проставляются в спецификации Акта автоматически, а мне нужно будет программно поля с ценой заполнять.
Собсно отсюда и вопрос, как мне взять среднюю цену по разрезу Склад-МОЛ, т.к. методика списания как раз Склад-МОЛ?
-
- топ-софт
- Сообщения: 15
- Зарегистрирован: Ср, 19/09/2007 10:07
- Имя Фамилия: Сергей Лебедев
- Откуда: ТопСофт
- Контактная информация:
Добрый день.
Используйте функцию StepMCinfo
Ниже приведена последовательность, в которой необходимо осуществлять вызовы:
Если предполагается осуществлять расчет по нескольким МЦ (например, в цикле), InitMCinfo и DoneMCinfo необходимо делать один раз (перед и после цикла соответственно).
Используйте функцию StepMCinfo
Код: Выделить всё
StepMCinfo (cMC:comp, cVal:comp, cPodr:comp, cMol:comp, cParty:comp): comp;
, где
cMC - ссылка на МЦ
cVal - ссылка на валюту, в которой должна рассчитаться средняя цена в валюте
cPodr - ссылка на подразделение/склад
cMOL - ссылка на МОЛ. Чтобы рассчитать по всем МОЛ, надо передать 0.
Чтобы рассчитать только по позициям с неуказанным МОЛ, надо передать "-1"
cParty - ссылка на партию. Чтобы рассчитать по всем партиям, надо передать 0.
Чтобы рассчитать только по позициям с неуказанной партией, надо передать "-1"
Примечания:
* Сама функция StepMCinfo возвращает код валюты, в которой произведен расчет валютной средней цены (значение которой можно получить при помощи AverageVPrice). Если cVal передан отличным от 0, то он и возвращается, если же в качестве cVal передан 0, функция вернет базовую валюту.
* Если методика списания "по предприятию в целом", параметры cPodr, cMOL, cParty будут функцией проигнорированы
* Если методика списания "по подразделению", параметры cMOL, cParty будут проигнорированы
Код: Выделить всё
// РАСЧЕТ ЦЕНЫ СПИСАНИЯ
//
// инициализация объекта расчета цены списания
InitMCInfo(dForm: date); // дата расчета цены списания
// установка расчета для логистики или для производства
SkladProizv(SkPr: word); // 0 - расчет в логистике, 1 - в производстве
// расчет цены списания, возвращает NRec валюты цены списания в валюте
cVal_ := StepMCInfo( cMC_ // NRec МЦ
, 0 // NRec валюты, если 0, то в базовой
, cPodr_ // NRec подразделения
, if(cMol_ = 0, comp(-1), cMol_) // NRec МОЛ, если нужно явно только по неуказанному, то передаем -1
, if(cParty_ = 0, comp(-1), cParty_) // NRec партии, если нужно явно только по неуказанной, то передаем -1
);
// после отработки StepMCinfo можно получить цену списания (для учетной единицы измерения):
cenaSpis := AveragePrice; // цена списания в НДЕ
cenaSpisV := AverageVPrice; // цена списания в валюте cVal_
// вызов деструктора
DoneMCInfo;
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация: