Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3

Задачи оперативного учета – тема № 11:
Как реализовать списание товаров согласно настроенному приоритету складов

В данной главе будет рассмотрена задача по списанию товаров согласно настроенному приоритету складов. При решении практических задач такая задача вряд ли встретится, но на экзамене она попадается.

Такая подзадача встречается в следующих задачах сборника для подготовки к экзамену «1С:Специалист по платформе»: № 1.21, 1.22, 1.24 и других.

Постановка задачи

Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная». Продажа товаров отражается документом «Расходная накладная». Учет товаров ведется в разрезе складов. Каждый из складов имеет свой приоритет, который может меняться не чаще, чем 1 раз в месяц.

При проведении расходной накладной необходимо контролировать, хватает ли товара в компании. Если товара недостаточно – выдавать соответствующее предупреждение и не позволять проводить документ.

Списание себестоимости товаров должно быть по складам, в зависимости от текущего значения их приоритета и выбранного в документе склада. В первую очередь товар списывается со склада, указанного в шапке документа, далее со склада с минимальным приоритетом и т.д. пока не спишется все необходимое количество. Себестоимость товаров рассчитывается как средняя по складу. В документе «Приходная накладная» склад указывается в шапке документа.

Структура решения

Для решения поставленной задачи потребуются следующие объекты конфигурации:

  • Справочник «Номенклатура»
  • Справочник «Склады»
  • Периодический регистр сведений для хранения значения приоритетов складов
  • Регистр накопления «ОстаткиНоменклатуры»
  • Документ «ПриходнаяНакладная»
  • Документ «РасходнаяНакладная».

Для реализации решения необходимо выполнить следующие действия:

  • Проверить, какие объекты уже имеются в каркасной конфигурации и могут быть использованы для решения поставленной задачи
  • Создать недостающие объекты конфигурации
  • Сформировать процедуру ОбработкаПроведения для документа «ПриходнаяНакладная» (с помощью конструктора движений)
  • Сформировать процедуру ОбработкаПроведения для документа «РасходнаяНакладная»
  • Проверить результаты в режиме «1С:Предприятие».

В решении будет использован справочник «Номенклатура» из каркасной конфигурации.

Для отражения хозяйственных операций, по тексту задачи, требуются документы «Приходная накладная» и «Расходная накладная». Данные документы также уже присутствуют в каркасной конфигурации, но в структуре документов не хватает реквизита Склад:

Рисунок 1 – Необходимые документы в дереве конфигурации

Рисунок 1 – Необходимые документы в дереве конфигурации

Добавим справочник «Склады»:

Рисунок 2 – Справочник «Склады»

Рисунок 2 – Справочник «Склады»

Скорректируем структуру документов, добавив реквизит «Склад»:

Рисунок 3 – Закладка Данные документа «Приходная накладная»

Рисунок 3 – Закладка Данные документа «Приходная накладная»

Рисунок 4 – Закладка Данные документа «Расходная накладная»

Рисунок 4 – Закладка Данные документа «Расходная накладная»

Для экономии времени на решение задачи создавать формы документов не будем.

Из условия задачи следует, что учет остатков и себестоимости товаров ведется по складам. Аналитика учета остатков и себестоимости товаров совпадает. Поэтому для хранения остатков будем использовать уже имеющийся в каркасной конфигурации регистр накопления «Остатки номенклатуры». Вид данного регистра – Остатки:

Рисунок 5 – Закладка Основные РН «Остатки номенклатуры»

Рисунок 5 – Закладка Основные РН «Остатки номенклатуры»

Измерения регистра:

  • Номенклатура (СправочникСсылка.Номенклатура)

Ресурсы:

  • Количество (Число 10, 0)

Для решения учебной задачи добавим:

  • Измерение Склад (СправочникСсылка.Склады)
  • Ресурс Сумма (Число 12, 2).

Рисунок 6 – Закладка Основные РН «Остатки номенклатуры»

Рисунок 6 – Закладка Основные РН «Остатки номенклатуры»

У измерений «Номенклатура», «Склад» включим свойство «Запрет незаполненных значений». Это необходимо так как движения с пустой номенклатурой и складом будут считаться учетной ошибкой.

Регистраторы:

  • «Приходная накладная»
  • «Расходная накладная».

Рисунок 7 – Закладка Регистраторы РН «Остатки номенклатуры»

Рисунок 7 – Закладка Регистраторы РН «Остатки номенклатуры»

Для учета приоритетов складов добавим независимый периодический регистр сведений «Приоритеты складов». Согласно условию задачи установим периодичность равную Месяц.

Рисунок 8 – Закладка Основные РС «Приоритеты складов»

Рисунок 8 – Закладка Основные РС «Приоритеты складов»

Измерения регистра:

  • Склад (СправочникСсылка.Склады).

Ресурсы:

  • Приоритет (Число 2, 0, Неотрицательное).

Рисунок 9 – Закладка Данные РС «Приоритеты складов»

Рисунок 9 – Закладка Данные РС «Приоритеты складов»

Обработка проведения для документа «Приходная накладная»

С помощью конструктора движений необходимо сформировать движения документа «Приходная накладная» по регистру накопления «Остатки номенклатуры» с видом Приход. Как это сделать, подробно рассмотрено в разделе «Общие приемы и механизмы решения задач» в главе «6. Как реализовать поступление товаров в компанию».

Дополнительно для данной задачи необходимо заполнить поля Склад и Сумма.

Рисунок 10 – Формирование движений конструктором

Рисунок 10 – Формирование движений конструктором

Код обработки проведения будет выглядеть следующим образом:

Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ОстаткиНоменклатуры Приход Движения.ОстаткиНоменклатуры.Записывать = Истина; Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество; Движение.Сумма = ТекСтрокаСписокНоменклатуры.Сумма; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии закрыты