Каталог решений - Подготовка к экзамену 1С: Специалист по платформе «1С: Предприятие 8.3» (оперативный учет, задачи 1-12)

Подготовка к экзамену 1С: Специалист по платформе «1С: Предприятие 8.3» (оперативный учет, задачи 1-12)

Подготовка к экзамену 1С: Специалист по платформе «1С: Предприятие 8.3» (оперативный учет, задачи 1-12)

В наличии

В самой публикации будет выполнен разбор задачи по оперативному учету 1.12. В целом, задача неоднозначная, мое решение для меня неоднозначное, и мне бы очень хотелось его обсудить с погруженными в тему людьми.
Во вложении также dt файлы с моим решением задач по оперативному учету с 1 по 12.

Категория:

Описание

Решение задачи 1.12

Подготовка объектов метаданных

  • В свойствах конфигурации устанавливаем режим управления блокировкой данных "Управляемый"
  • Создаём новый справочник "Склады"
  • В документы "Приходная накладная" и "Расходная накладная" добавляем реквизит шапки "Склад" (тип: "СправочникСсылка.Склады") признак "Проверка заполнения" установить в "Выдавать ошибку"
  • В документ "Расходная накладная добавляем реквизит шапки "Менеджер" (тип: "СправочникСсылка.ФизическиеЛица")  признак "Проверка заполнения" установить в "Выдавать ошибку"
  • Для данной задачи можно удалить реквизиты "Цена" и "Сумма" из табличной части, а также реквизит шапки "СуммаПоДокументу" т.к. нет анализа сумм продаж
  • Создаём новый документ "Резервирование товаров". Реквизиты шапки "Менеджер" (тип: "СправочникСсылка.ФизическиеЛица"). Реквизиты табличной части "СписокНоменклатуры": "Номенклатура" и "Количество"
  • Для всех используемых документов добавляю форму, чтобы упростить отладку. В командном интерфейсе в разделе "Перейти" устанавливаем "Видимость" для движений документа по регистрам. Если в табличной части документа есть "Цена" и "Сумма", то добавляю расчет суммы при изменении количества и цены. В модуле объекта в событии "ПередЗаписью" выполняем расчет суммы документа
  • Добавляем периодический регистр сведений "Приоритеты менеджеров"

    • Период: Месяц
    • Измерения: Менеджер (тип: СправочникСсылка.ФизическиеЛица), Ресурсы Приоритет  (тип: Число, длина: 3, точность: 0)
  • Настраиваем регистр "ОстаткиНоменклатуры"

    • Измерение "Номенклатура"
      • Ставим признак "Запрет незаполненных значений"
    • Добавляем измерение "Склад" (тип: "СправочникСсылка.Склады")
      • Ставим признак "Запрет незаполненных значений"
    • Добавляем ресурс "Себестоимость" (тип: Число, длина: 12, точность: 2) // по-умолчанию сумму считаем в рублях
    • Регистраторы:
      • "ПриходнаяНакладная""РасходнаяНакладная"
    • Включаем режим разделения итогов (последняя вкладка)
    • Требуется для Учет в разрезе складов / склад в шапке. Себестоимость рассчитывается как средняя в разрезе складов
  • Добавляем новый регистр "Резервы"
    • Измерения:
      • Номенклатура (тип: СправочникСсылка.Номенклатура)
      • Менеджер(тип: СправочникСсылка.ФизическиеЛица)
    • Ресурсы:
      • Количество (тип: Число, длина: 10, точность: 0)
    • Регистраторы:
      • "Резерв ированиеТоваров""РасходнаяНакладная"
    • Требуется для учета резервов, созданных менеджерами
  • В целом, на этом можно было бы и остановиться, но для упрощения проверок в расходной накладной решила добавить еще один регистр. Задумка заключается также в упрощении и оптимизации выполняемых блокировок к данным.  Добавляем новый регистр "СвободныеОстатки"
    • Измерения:
      • Номенклатура (тип: СправочникСсылка.Номенклатура)
    • Ресурсы:
      • Количество (тип: Число, длина: 10, точность: 0)
    • Регистраторы:
      • "Резерв ированиеТоваров""ПриходнаяНакладная"
    • Требуется для выполнения контроля свободных остатков по номенклатуре

Третий регистр является избыточным и дулирует уже имеющуюся информацию, но при этом он упрощает и минимизирует количество блокировок в системе. На мой вгляд, оно того стоит. Фиксируем приход в регистре при проведении приходной накладной, а расход при проведении резервирования товаров. При формировании движений по регистру никаких блокировок делать не нужно, т.к. никакого контроля отстатков по этому регистру мы выполнять не будем, но при выполнении проверок на свободные остатки в расходной накладной мы будем блокировать данные на момент проведения накладной по номенклатуре документа.

 

Подготовка отчета

Обычно, после проектирования регистров я приступаю в разработке отчетов, это позволяет потом проще отлаживать проведение документов.

Отчет "Остатки товаров"

Разберем первый отчет более подробно. Запрос отчета. 

ВЫБРАТЬ
	ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
	ОстаткиНоменклатурыОстатки.Склад КАК Склад,
	ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Количество,
	0 КАК Приоритет
ПОМЕСТИТЬ ВТ
ИЗ
	РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	РезервыОстатки.Номенклатура,
	"Резерв",
	РезервыОстатки.КоличествоОстаток,
	1
ИЗ
	РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ.Номенклатура КАК Номенклатура,
	ВТ.Склад КАК Склад,
	ВТ.Количество КАК Количество,
	ВТ.Приоритет КАК Приоритет
ИЗ
	ВТ КАК ВТ

УПОРЯДОЧИТЬ ПО
	Номенклатура,
	Приоритет

Далее на закладке "Ресурсы" указываем "Количество" как Сумма(Количество).

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

 

 

Не забудьте установить признак "Выводить параметры" в значение "Не выводить" на закладке "Другие настройки", т.к. параметры отчета будут выведены в заголовке. Подробное оформление заголовка отчета рассказано в статье [Шпаргалка] Свой заголовок отчету на СКД с параметрами, картинками (без программирования)

Дополнительно, в отчете добавлен макет для вывода в шапке названия склада (убираем информацию о приоритете, которую мы добавили для правильной сортировки) и выставляем саму сортировку

 

 

Устанавливаем имя для группировки "Склад, Приоритет" — Шапка. Будем его использовать при создании макета шапки отчета. На закладке "Макеты":

 

 

  1. Добавить макет группировки,
  2. Выбрать имя группировки "Шапка"
  3. В любой доступной ячейки добавьте "Склад" со свойствами ячейки как на картинке
  4. "Заполнение" в свойствах установите "Параметр"
  5. Получаем адрес "Имя" настроенного шаблона шапки склада
  6. Устанавливаем адрес в качестве области, т.е. источник для добавленной группировки макета в шаге 1.
  7. После установки адреса параметры макета будут заполнены автоматически.

Дополнительно в условное оформление отчета всегда добавляю центрирование горизонтального положения для ресурсов отчета

 

 

 

Отчет "Резервирование товаров"

Подход к настройкам отчета аналогичный, приведу только запрос отчета:

ВЫБРАТЬ
	РезервыОстатки.Номенклатура КАК Номенклатура,
	РезервыОстатки.Менеджер КАК Менеджер,
	РезервыОстатки.КоличествоОстаток КАК КоличествоОстаток,
	ЕСТЬNULL(ПриоритетыМенеджеровСрезПоследних.Приоритет, 0) КАК Приоритет
ПОМЕСТИТЬ ВТ
ИЗ
	РегистрНакопления.Резервы.Остатки КАК РезервыОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПриоритетыМенеджеров.СрезПоследних КАК ПриоритетыМенеджеровСрезПоследних
		ПО РезервыОстатки.Менеджер = ПриоритетыМенеджеровСрезПоследних.Менеджер

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ОстаткиНоменклатурыОстатки.Номенклатура,
	"Остаток",
	ОстаткиНоменклатурыОстатки.КоличествоОстаток,
	-1
ИЗ
	РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ.Номенклатура КАК Номенклатура,
	ВТ.Менеджер КАК Менеджер,
	ВТ.КоличествоОстаток КАК КоличествоОстаток,
	ВТ.Приоритет КАК Приоритет
ИЗ
	ВТ КАК ВТ

УПОРЯДОЧИТЬ ПО
	КоличествоОстаток УБЫВ

На данном этапе все объекты задачи созданы и можно добавить подсистему "Оперативный учет", включив туда все объекты, участвующие в задаче. 

 

Настройка документа "Приходная накладная"

Для ускорения процесса первичные движения создаем через конструктор движений

 

 

has been added to your cart:
Оформление заказа