kostya77 @ Сегодня, 8:52
,
Функция глПолучитьОстатокТМЦ(Конт, ТМЦ, МестоХранения) Экспорт
// проверка остатка
Если (ПустоеЗначение(ТМЦ)=1) Тогда
Возврат "";
КонецЕсли;
Фирма = Конт.Фирма;
Рег = СоздатьОбъект("Регистр.Остатки");
Рег.УстановитьЗначениеФильтра("Фирма",Фирма);
Рег.УстановитьЗначениеФильтра("ТМЦ",ТМЦ);
Рег.УстановитьЗначениеФильтра("МестоХранения",МестоХранения);
//Установить флаг участия регистра во временном расчете.
//Рассчитать все регистры с установленным флагом временного расчета на конец события
Если (Конт.СравнитьТА() = - 1) Тогда //если дата и время документа меньше даты и времени ТА итогов.
Рег.ВременныйРасчет(1);
РассчитатьРегистрыПо(Конт.ТекущийДокумент());
ТекущийОстаток = Рег.Остаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара");
ИначеЕсли (Конт.СравнитьТА() = - 2) И (Конт.ДатаДок < ПолучитьДатуТА()) Тогда //в случае, если новый документ, который сравнивается с ТА,
Рег.ВременныйРасчет(1); //еще не записан - то есть он еще не имеет никакой позиции
РассчитатьРегистрыПо(Конт.ДатаДок); // на оси времени.
ТекущийОстаток = Рег.Остаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара");
ИначеЕсли (Конт.СравнитьТА() = 0) Тогда //если дата и время документа равны дате и времени ТА итогов.
ТекущийОстаток = Рег.Остаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара");
ИначеЕсли (Конт.СравнитьТА() = + 1) Тогда //если дата и время документа больше даты и времени ТА итогов.
ТекущийОстаток = Рег.Остаток(Фирма,ТМЦ,МестоХранения,"ОстатокТовара");
КонецЕсли;
Возврат СокрЛП(Формат(ТекущийОстаток,глФорматКоличестваВформах));
КонецФункции