Отчет по движению товара привязать к документу

18.09.25

Разработка - БСП (Библиотека стандартных подсистем)

Показать движения товаров по всем товарам в табличной части документа. Конфигурация: Управление торговлей, редакция 11 (11.5.24.43). Доработка через расширение.

1. Разбираемся как работает типовой вариант в карточке номенклатуры (для информации)

Отчет называется "ВедомостьПоТоварамНаСкладах". Заходим в модуль менеджера и видим процедуру, которая добавляет команду для вызова этого отчета из карточки номенклатуры


Далее в справочнике Номенклатура в модуле менеджера в процедуре "ДобавитьКомандыОтчетов" находим вызов этой процедуры, собственно и она и добавляет команду отчета на форму в подменю Отчеты

 

Также важно обратить внимание на первый скрин и найти КлючВарианта - там задается имя предопределенного варианта отчета в схеме СКД. Т.е зайдя в схему СКД мы увидим такой вариант отчета. Соответственно этот вариант отчета запускается при вызове команды в справочнике Номенклатура.


Параметры, которые передаются при открытии данного варианта отчета находятся в процедуре "ПриСозданииНаСервере" модуля объекта нашего отчета. ИмяКоманды на первом скрине статьи.

 

2. Добавляем этот отчет в документ "Приобретение товаров и услуг"

Нас почти устраивает вариант отчета, но необходимо в него добавить группировку по номенклатуре, отредактировать заголовок отчета и передать в параметры формирования список товаров а не один товар.

2.1 Отчет "ВедомостьПоТоварамНаСкладах" новый предопределенный вариант отчета

Заимствуем схему СКД в расширение, открываем, переходим на вкладку Настройки и копируем вариант "ПоНоменклатуреКонтекст". Далее новый наш вариант переименовываем как "ПоНоменклатуреДокумента"
Добавляем группировку по номенклатуре.

2.1 Отчет "ВедомостьПоТоварамНаСкладах" модуль менеджера

Добавляем в модуле менеджера в расширении новую экспортную процедуру. Скопирована как по номенклатуре, но изменили наименование процедуры, Представление, ИмяКоманды (поставили всё во множественном числе) и КлючВарианта.

Функция ДобавитьКомандуДвиженияПоСпискуТоваров(КомандыОтчетов) Экспорт

	Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ВедомостьПоТоварамНаСкладах) Тогда
		
		КомандаОтчет = КомандыОтчетов.Добавить();
		
		КомандаОтчет.Менеджер = Метаданные.Отчеты.ВедомостьПоТоварамНаСкладах.ПолноеИмя();
		КомандаОтчет.Представление = НСтр("ru= 'Движения товаров на складах'");
		
		
		КомандаОтчет.Важность = "Обычное";
		КомандаОтчет.МножественныйВыбор = Ложь;
		
		КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "ДвиженияТоваров");
		
		КомандаОтчет.КлючВарианта = "ПоНоменклатуреДокумента";
		
		Возврат КомандаОтчет;
		
	КонецЕсли;

	Возврат Неопределено;

КонецФункции

2.2 Документ "Приобретение товаров и услуг"

В расширение импортируем процедуру "ДобавитьКомандыОтчетов" с аннотацией "&ИзменениеИКонтроль" и добавляем почти в конце вставку кода с вызовом нашей новой процедуры

 

2.3 Отчет "ВедомостьПоТоварамНаСкладах" модуль объекта

Заимствуем в расширение процедуру "ПриСозданииНаСервере" и делаем вставку нашего кода с параметром, в котором передаем список номенклатуры

&ИзменениеИКонтроль("ПриСозданииНаСервере")
Процедура РасшОПТ_ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка)

	Параметры = ЭтаФорма.Параметры;

	Если Параметры.Свойство("ПараметрКоманды") Тогда

		Если Параметры.Свойство("ОписаниеКоманды")
			И Параметры.ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда

			Если Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ДвиженияТовара" Тогда
				ЭтаФорма.ФормаПараметры.Отбор.Вставить("Номенклатура", Параметры.ПараметрКоманды);
			ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ТоварыВПроцессеОтгрузки" Тогда
				СкладДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ПараметрКоманды, "Склад");

				ЭтаФорма.ФормаПараметры.Отбор.Вставить("Склад",       СкладДокумента);
				ЭтаФорма.ФормаПараметры.Отбор.Вставить("Регистратор", Параметры.ПараметрКоманды);
#Вставка
            ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ДвиженияТоваров" Тогда
				СписокТоваров = Параметры.ПараметрКоманды.Товары.ВыгрузитьКолонку("Номенклатура");
				
				ЭтаФорма.ФормаПараметры.Отбор.Вставить("Номенклатура", СписокТоваров);
#КонецВставки
			КонецЕсли;
		КонецЕсли;

	КонецЕсли;

КонецПроцедуры

ГОТОВО. Запускаемся. Заходим в список Приобретений товаров и услуг -> подменю Отчеты -> Движения товаров на складах -> Результат на скрине.

 

 

Вступайте в нашу телеграмм-группу Инфостарт

доработка отчеты документ БСП товары УТ привязать СКД схема

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    213909    1177    413    

1050

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    8951    41    24    

46

БСП (Библиотека стандартных подсистем) Роли и права Программист 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Наткнулся на костыль по работе с ролями. Хочу поделиться, как не попасть на это странное поведение БСП.

07.05.2025    6987    dsdred    32    

88

СКД Программист 1С v8.3 Система компоновки данных Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    12573    ovetgana    50    

91

Механизмы типовых конфигураций Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Расчет себестоимости в типовых конфигурациях 1С – для многих «черный ящик», работающий по жестко зашитым в него алгоритмам. Реализация этого «черного ящика» может меняться в зависимости от конкретной конфигурации – УПП, БП 3.0, ERP. Но принцип работы везде одинаковый. Расскажем о том, как устроен расчет себестоимости, как его дорабатывать, и какие методы могут быть эффективны и без доработок.

27.12.2024    19493    Begemoth80    32    

91

Механизмы типовых конфигураций Программист 1С v8.3 1C:ERP Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    11540    SergDobrodelov    40    

125

БСП (Библиотека стандартных подсистем) Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    13984    John_d    15    

103
Для отправки сообщения требуется регистрация/авторизация