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