0
Zhuravlik
22.11.11
✎
16:26
|
Здравствуйте. Конфигурация - ТИС, заходтелось несколько видоизменить справочник, показывать там остатки по складу на дату. Для этого в форме списка ввел три диалога - выбор фирмы, выбор даты, выбор склада.
Код Формы списка:
Перем ОстаткиТМЦ;
Перем прРозничныйТипЦен;
Процедура ПересчетРегистров() далее
Функция ВернутьОстаток()
ОстатокНаСкладе = ОстаткиТМЦ.СводныйОстаток(Фирма,ТекущийЭлемент(),Склад,,"Количество");
Возврат ?(ПустоеЗначение(ОстатокНаСкладе) = 1, "", СокрЛП(Формат(ОстатокНаСкладе,"Ч014.3")));
КонецФункции
//======================================================================
Функция ВернутьЦену()
Возврат глПолучитьЦенуП(ТекущийЭлемент(), прРозничныйТипЦен, Склад, выбДата);
КонецФункции // ВернутьЦену
Процедура ПересчетРегистров()
ОбщРег = СоздатьОбъект("Регистры");
// Расчитываются "временные" регистры, чтобы колонка остатков лишний раз не перерисовывалась
ВремОстаткиТМЦ = ОбщРег.ОстаткиТМЦ;
Если ПустоеЗначение(Фирма) = 0 Тогда
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Фирма",Фирма,1);
Иначе
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Фирма",,0);
КонецЕсли;
Если ПустоеЗначение(Склад) = 0 Тогда
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Склад",Склад,1);
Иначе
ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Склад",,0);
КонецЕсли;
Если выбДата < ПолучитьДатуТА() Тогда
ВремОстаткиТМЦ.ВременныйРасчет();
ОбщРег.РассчитатьРегистрыНа(выбДата);
КонецЕсли;
ОстаткиТМЦ = ВремОстаткиТМЦ;
КонецПроцедуры // ПересчетРегистров()
Процедура ПриОткрытии()
Фирма = глПользователь.ОсновнаяФирма;
Склад = глПользователь.ОсновнойСклад;
выбДата = РабочаяДата();
ПересчетРегистров();
спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
Если спрТипыЦен.НайтиПоКоду("00004", 0) = 1 Тогда
прРозничныйТипЦен = спрТипыЦен.ТекущийЭлемент();
КонецЕсли;
КонецПроцедуры // ПриОткрытии
|
|