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