Рассмотрим пример создания простейшей системы складского учета для нескольких складов, которая позволит приходовать и отпускать материалы, а также формировать отчет по остаткам материалов.
В конфигурации потребуется создать следующие объекты:
Экранная форма документа Приход выглядит следующим образом:
Модуль проведения:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.ОстаткиМатериалов.Материал = Материал;
Регистр.ОстаткиМатериалов.Склад = Склад;
Регистр.ОстаткиМатериалов.Количество = Количество;
Регистр.ОстаткиМатериалов.ДвижениеПриходВыполнить();
КонецЦикла;
КонецПроцедуры
Экранная форма документа Расход выглядит следующим образом (отличается только названием):
Модуль проведения:
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.ОстаткиМатериалов.Материал = Материал;
Регистр.ОстаткиМатериалов.Склад = Склад;
Регистр.ОстаткиМатериалов.Количество = Количество;
Регистр.ОстаткиМатериалов.ДвижениеРасходВыполнить();
КонецЦикла;
КонецПроцедуры
Экранная форма диалога отчета выглядит следующим образом:
Шаблон печатной формы (в Конфигураторе):
Модуль отчета:
Процедура Сформировать()
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Материал = Регистр.ОстаткиМатериалов.Материал;
|Склад = Регистр.ОстаткиМатериалов.Склад;
|Количество = Регистр.ОстаткиМатериалов.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Материал;
|Группировка Склад;
|Условие (Материал в ВыбрМатериалГруппа);
|Условие (Склад в ВыбрСклад);
|";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
...Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Заголовок");
Пока Запрос.Группировка(1) = 1 Цикл
Если Запрос.Материал.ЭтоГруппа()=1 Тогда
... Таб.ВывестиСекцию("Группа");
Иначе
Таб.ВывестиСекцию("Материал");
Если Фл_НеВыводитьСклады = 0 Тогда
...Пока Запрос.Группировка(2) = 1 Цикл
......Таб.ВывестиСекцию("Склад");
...КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Таб.Опции(0);
Таб.Показать("ОстаткиМатериалов", "");
КонецПроцедуры
Примеры работы отчета:
В следующем примере отключена детализация по складам:
2012-01-11 • Просмотров [ 1847 ]