Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3
Задачи оперативного учета – тема № 11:
Как реализовать списание товаров согласно настроенному приоритету складов
В данной главе будет рассмотрена задача по списанию товаров согласно настроенному приоритету складов. При решении практических задач такая задача вряд ли встретится, но на экзамене она попадается.
Такая подзадача встречается в следующих задачах сборника для подготовки к экзамену «1С:Специалист по платформе»: № 1.21, 1.22, 1.24 и других.
Постановка задачи
Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная». Продажа товаров отражается документом «Расходная накладная». Учет товаров ведется в разрезе складов. Каждый из складов имеет свой приоритет, который может меняться не чаще, чем 1 раз в месяц.
При проведении расходной накладной необходимо контролировать, хватает ли товара в компании. Если товара недостаточно – выдавать соответствующее предупреждение и не позволять проводить документ.
Списание себестоимости товаров должно быть по складам, в зависимости от текущего значения их приоритета и выбранного в документе склада. В первую очередь товар списывается со склада, указанного в шапке документа, далее со склада с минимальным приоритетом и т.д. пока не спишется все необходимое количество. Себестоимость товаров рассчитывается как средняя по складу. В документе «Приходная накладная» склад указывается в шапке документа.
Структура решения
Для решения поставленной задачи потребуются следующие объекты конфигурации:
- Справочник «Номенклатура»
- Справочник «Склады»
- Периодический регистр сведений для хранения значения приоритетов складов
- Регистр накопления «ОстаткиНоменклатуры»
- Документ «ПриходнаяНакладная»
- Документ «РасходнаяНакладная».
Для реализации решения необходимо выполнить следующие действия:
- Проверить, какие объекты уже имеются в каркасной конфигурации и могут быть использованы для решения поставленной задачи
- Создать недостающие объекты конфигурации
- Сформировать процедуру ОбработкаПроведения для документа «ПриходнаяНакладная» (с помощью конструктора движений)
- Сформировать процедуру ОбработкаПроведения для документа «РасходнаяНакладная»
- Проверить результаты в режиме «1С:Предприятие».
В решении будет использован справочник «Номенклатура» из каркасной конфигурации.
Для отражения хозяйственных операций, по тексту задачи, требуются документы «Приходная накладная» и «Расходная накладная». Данные документы также уже присутствуют в каркасной конфигурации, но в структуре документов не хватает реквизита Склад:
Рисунок 1 – Необходимые документы в дереве конфигурации
Добавим справочник «Склады»:
Рисунок 2 – Справочник «Склады»
Скорректируем структуру документов, добавив реквизит «Склад»:
Рисунок 3 – Закладка Данные документа «Приходная накладная»
Рисунок 4 – Закладка Данные документа «Расходная накладная»
Для экономии времени на решение задачи создавать формы документов не будем.
Из условия задачи следует, что учет остатков и себестоимости товаров ведется по складам. Аналитика учета остатков и себестоимости товаров совпадает. Поэтому для хранения остатков будем использовать уже имеющийся в каркасной конфигурации регистр накопления «Остатки номенклатуры». Вид данного регистра – Остатки:
Рисунок 5 – Закладка Основные РН «Остатки номенклатуры»
Измерения регистра:
- Номенклатура (СправочникСсылка.Номенклатура)
Ресурсы:
- Количество (Число 10, 0)
Для решения учебной задачи добавим:
- Измерение Склад (СправочникСсылка.Склады)
- Ресурс Сумма (Число 12, 2).
Рисунок 6 – Закладка Основные РН «Остатки номенклатуры»
У измерений «Номенклатура», «Склад» включим свойство «Запрет незаполненных значений». Это необходимо так как движения с пустой номенклатурой и складом будут считаться учетной ошибкой.
Регистраторы:
- «Приходная накладная»
- «Расходная накладная».
Рисунок 7 – Закладка Регистраторы РН «Остатки номенклатуры»
Для учета приоритетов складов добавим независимый периодический регистр сведений «Приоритеты складов». Согласно условию задачи установим периодичность равную Месяц.
Рисунок 8 – Закладка Основные РС «Приоритеты складов»
Измерения регистра:
- Склад (СправочникСсылка.Склады).
Ресурсы:
- Приоритет (Число 2, 0, Неотрицательное).
Рисунок 9 – Закладка Данные РС «Приоритеты складов»
Обработка проведения для документа «Приходная накладная»
С помощью конструктора движений необходимо сформировать движения документа «Приходная накладная» по регистру накопления «Остатки номенклатуры» с видом Приход. Как это сделать, подробно рассмотрено в разделе «Общие приемы и механизмы решения задач» в главе «6. Как реализовать поступление товаров в компанию».
Дополнительно для данной задачи необходимо заполнить поля Склад и Сумма.
Рисунок 10 – Формирование движений конструктором
Код обработки проведения будет выглядеть следующим образом:
Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ОстаткиНоменклатуры Приход Движения.ОстаткиНоменклатуры.Записывать = Истина; Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество; Движение.Сумма = ТекСтрокаСписокНоменклатуры.Сумма; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии закрыты