Себестоимость товара в 1С УТ 11: где посмотреть, отчет

Дата: 02.10.2026 23:13:15
себестоимость
УТ 11
закрытие месяца
валовая прибыль
отчеты
запросы
СКД
печатные формы
Комментарий:
0
Платформа:
8.3
Конфигурация:
1С: УТ 11.5
Формы:
Управляемые

Себестоимость товара в 1С УТ 11 появляется не в момент продажи, а после закрытия месяца: реализация записывает количество и выручку, а стоимость проданного товара досчитывает расчёт себестоимости. Поэтому валовая прибыль за текущий месяц обычно равна выручке. Ниже — где смотреть себестоимость, откуда она берётся, почему бывает нулевой или скачет и как вывести её в свой отчёт, печатную форму или список документов.

Названия даны по УТ 11.4 и КА 2.5; в УТ 11.5 и ERP 2.5 механизм устроен так же.

Где посмотреть себестоимость товара в 1С УТ 11

Как посмотреть себестоимость в 1С без программиста: откройте отчёт «Продажи» — в конфигураторе он называется ВыручкаИСебестоимостьПродаж. Себестоимость и валовая прибыль — в его вариантах. Остатки и движение стоимости показывает отдельный отчёт «Себестоимость товаров» (в УТ 11.4 объект АнализСебестоимостиТоваровРасширенный, в КА 2.5 — СебестоимостьТоваров).

Отчет «Валовая прибыль предприятия» с себестоимостью товаров в 1С УТ 11.5
Вариант «Валовая прибыль предприятия» («Продажи → Отчеты по продажам»): параметры, среди них «Данные продаж» (1), себестоимость товаров (2), валовая прибыль и рентабельность (3).
Отчёт и вариантГде найтиЧто показывает
«Продажи»: «Валовая прибыль предприятия», «Валовая прибыль организаций»«Продажи» → «Отчеты по продажам»; «Финансовый результат и контроллинг» → «Отчеты по финансовому результату»Выручка, себестоимость, валовая прибыль и рентабельность по подразделениям, менеджерам, товарам
«Продажи»: «Валовая прибыль по клиентам…», «…по поставщикам»Там жеТо же по клиентам, заказам и поставщикам
«Себестоимость товаров»«Финансовый результат и контроллинг» → «Отчеты по финансовому результату»Остатки, приход и расход в количестве и сумме, цена поступления, средняя цена
«Выручка и себестоимость розничных продаж»«Продажи» → «Отчеты по продажам»Валовая прибыль магазинов и по поставщикам
«Прибыль по оплате отгрузок»Там жеПрибыль только по оплаченным отгрузкам

В документах: заказ клиента — «Отчеты» → «Продажи по заказу», карточка товара — «Продажи номенклатуры», заказ и реализация — «Оценка рентабельности продажи». Последний отчёт оценочный: считает по рассчитанной себестоимости или по нормативному виду цен, выбор задаётся в «НСИ и администрирование» → «Настройка НСИ и разделов» → «Продажи», группа «Оптовые продажи», блок «Стоимость товаров при оценке рентабельности продажи».

Настройка стоимости товаров для оценки рентабельности продажи в 1С УТ 11.5
«Настройка НСИ и разделов → Продажи», группа «Оптовые продажи»: чем оценивать себестоимость в «Оценке рентабельности продажи» (1).

Перед сравнением цифр проверьте параметр «Данные продаж» (в «Себестоимости товаров» — «Данные по себестоимости»): с НДС или без, в валюте упр. или регл. учёта. Варианты «…предприятия» выводят «сквозную» себестоимость по предприятию в целом, «…организаций» — по каждому юрлицу.

Где в 1С хранится себестоимость

ОбъектЧто в нём
Регистр накопления «Выручка и себестоимость продаж» (ВыручкаИСебестоимостьПродаж, обороты)Продажи и возвраты: количество, выручка, стоимость, доп. расходы
Регистр накопления «Себестоимость товаров» (СебестоимостьТоваров, остатки)Стоимость запасов; как вывести её рядом с остатком — в статье об остатках товаров на складе
Регистр сведений «Стоимость товаров» (СтоимостьТоваров, по месяцам)Стоимость единицы за месяц
Документ «Расчет себестоимости товаров»Создаётся закрытием месяца, датирован его концом; признак «Предварительный расчет»
Регистр сведений «Задания к расчету себестоимости»Что изменилось после расчёта и требует пересчёта

Откуда берётся себестоимость: закрытие месяца

При проведении реализации в регистр продаж попадают количество и выручка, а стоимость остаётся нулевой. Исключение — комиссионный товар: его себестоимость сразу равна выручке, и прибыль по нему нулевая.

В 1С УТ себестоимость товара рассчитывает обработка «Закрытие месяца» («Финансовый результат и контроллинг» → «Закрытие месяца»). Она создаёт документ «Расчет себестоимости товаров» и дописывает строки со стоимостью прямо в движения каждого документа продажи — у них включён реквизит РасчетСебестоимости. Перепроведённый после этого документ регистрирует задание к пересчёту, и месяц приходится закрывать снова.

Закрытие месяца в 1С УТ 11.5: распределение затрат и расчет себестоимости
«Финансовый результат и контроллинг → Закрытие месяца»: режим закрытия, в списке есть и «Предварительное закрытие» (1), операция «Распределение затрат и расчет себестоимости» (2), напоминание «Требуется пересчет с периода…» (3).

Сумму определяет «Метод оценки стоимости товаров» в учётной политике организации. При «Средней за месяц» продажи месяца получают среднюю стоимость единицы по организации, складу и виду запасов. При «ФИФО (взвешенная оценка)» и «ФИФО (скользящая оценка)» она зависит от списанных партий и у двух продаж одного месяца может различаться.

Расчёт идёт, только если включён учёт себестоимости: в УТ 11.5 это флажок «Учет себестоимости товаров ведется с» и дата («Настройка НСИ и разделов» → «Финансовый результат и контроллинг» → группа «Учет товаров»). Продажи до этой даты (кроме месяца ввода остатков) остаются без себестоимости. Партионный учёт (в УТ 11.4 — опция «Использовать партионный учет») добавляет аналитику партий, из неё берётся поставщик товара.

Флажок «Учет себестоимости товаров ведется с» в настройках 1С УТ 11.5
Группа «Учет товаров» в настройках «Финансовый результат и контроллинг»: флажок «Учет себестоимости товаров ведется с» и дата начала (1).

Предварительный расчёт

Оценку до конца месяца даёт предварительный расчёт. В УТ 11.4 для него есть регламентное задание «Расчет предварительной себестоимости товаров» (в поставке выключено): документ расчёта получает признак «Предварительный расчет», а типовые отчёты умножают количество на стоимость единицы из регистра сведений «Стоимость товаров». В УТ 11.5 (с версии 11.5.7), КА 2.5 и ERP 2.5 в закрытии месяца есть режим «Предварительное закрытие» на дату внутри месяца: стоимость пишется в регистры с реквизитом «Режим закрытия месяца», а окончательное закрытие дописывает отклонения.

Почему себестоимость нулевая или скачет

Что видноПричинаЧто сделать
Себестоимость 0, прибыль равна выручкеМесяц не закрыт, предварительного расчёта не былоЗакрыть месяц
Изменилась себестоимость закрытого месяцаПерепровели документы этого или более раннего месяца и закрыли месяц зановоЗакрывать сданный период датой запрета изменения
Ноль у отдельных товаровПоступление без цены, излишки без стоимости, продажа при отрицательном остаткеПроверить «Цену поступления» в «Себестоимости товаров»
Цена единицы меняется от месяца к месяцуМеняются закупочные цены, при ФИФО — партии; доставку распределили позже; возвратыРазложить по месяцам запросом ниже
По комиссионному товару прибыль нольСебестоимость равна выручкеЭто не ошибка
Разные цифры в двух отчётахРазные «Данные продаж» или «предприятие» против «организаций»Сравнивать с одинаковыми настройками

Если расчёт завершился с ошибкой, начните с его протокола в закрытии месяца. Где разошлись данные, покажут отчёты «Сверка данных партионного учета и себестоимости» (профиль «Администратор», включённый партионный учёт) и «Сверка остатков оперативного учета и себестоимости».

Запросы: себестоимость продаж и себестоимость единицы

Для своего отчёта по себестоимости в 1С на СКД источник — виртуальная таблица оборотов регистра «Выручка и себестоимость продаж». Ниже текст набора данных: выручка, закупка, доп. расходы, себестоимость и валовая прибыль. Проверить его удобно в бесплатной консоли запросов.

// Отчет на СКД «Себестоимость продаж и валовая прибыль»: текст набора данных «Запрос».
// УТ 11.4-11.5, КА 2.5, ERP 2.5. Суммы - в валюте упр. учета без НДС.
// Параметры: НачалоПериода, КонецПериода. Себестоимость появляется после закрытия месяца
// (в УТ 11.5, КА 2.5, ERP 2.5 - и после предварительного закрытия).
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Продажи.Период КАК Месяц,
	Продажи.АналитикаУчетаПоПартнерам.Организация КАК Организация,
	Продажи.АналитикаУчетаПоПартнерам.Партнер КАК Клиент,
	Продажи.Менеджер КАК Менеджер,
	Продажи.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
	Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	Продажи.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
	Продажи.ТипЗапасов КАК ТипЗапасов,
	Продажи.КоличествоОборот КАК Количество,
	Продажи.СуммаВыручкиБезНДСОборот КАК Выручка,
	// стоимость закупки; трудозатраты и постатейные затраты бывают у продукции в КА и ERP
	Продажи.СтоимостьБезНДСОборот
		+ Продажи.ТрудозатратыОборот
		+ Продажи.ПостатейныеПостоянныеБезНДСОборот
		+ Продажи.ПостатейныеПеременныеБезНДСОборот КАК СтоимостьЗакупки,
	// доставка, таможня и другие доп. расходы, распределенные на товар
	Продажи.ДопРасходыБезНДСОборот КАК ДопРасходы,
	Продажи.СтоимостьБезНДСОборот
		+ Продажи.ТрудозатратыОборот
		+ Продажи.ПостатейныеПостоянныеБезНДСОборот
		+ Продажи.ПостатейныеПеременныеБезНДСОборот
		+ Продажи.ДопРасходыБезНДСОборот КАК Себестоимость,
	Продажи.СуммаВыручкиБезНДСОборот
		- Продажи.СтоимостьБезНДСОборот
		- Продажи.ТрудозатратыОборот
		- Продажи.ПостатейныеПостоянныеБезНДСОборот
		- Продажи.ПостатейныеПеременныеБезНДСОборот
		- Продажи.ДопРасходыБезНДСОборот КАК ВаловаяПрибыль
// условие: без продаж между своими организациями и без услуг
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
			&НачалоПериода,
			&КонецПериода,
			Месяц,
			АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
				И НЕ ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга),
					ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.АгентскаяУслуга))) КАК Продажи

Разбор ключевых строк

  • Организация, клиент, склад и товар лежат в ключах аналитики АналитикаУчетаПоПартнерам и АналитикаУчетаНоменклатуры, поэтому поля берутся через точку.
  • Себестоимость — стоимость закупки плюс доп. расходы, как в отчёте «Продажи». Трудозатраты и постатейные затраты в торговле обычно нулевые, в КА и ERP они бывают у собственной продукции.
  • Без НДС с обеих сторон: СуммаВыручкиБезНДС против СтоимостьБезНДС. С НДС — СуммаВыручки, Стоимость, ДопРасходы; для регл. учёта — ресурсы с окончанием Регл.
  • Условие виртуальной таблицы убирает продажи между своими организациями и услуги; комиссионный товар отфильтруйте по ТипЗапасов. Возвраты идут со знаком минус.

В схеме добавьте параметр Период типа «Стандартный период», задайте НачалоПериода и КонецПериода выражения &Период.ДатаНачала и &Период.ДатаОкончания и опишите ресурсы:

ПолеВыражение ресурса
Количество, Выручка, СтоимостьЗакупки, ДопРасходы, Себестоимость, ВаловаяПрибыльСумма(<поле>)
Рентабельность (вычисляемое поле)ВЫБОР КОГДА Сумма(Выручка) = 0 ТОГДА 0 ИНАЧЕ Сумма(ВаловаяПрибыль) / Сумма(Выручка) * 100 КОНЕЦ
СебестоимостьЕдиницы (вычисляемое поле, рассчитывать по Номенклатура, Характеристика)ВЫБОР КОГДА Сумма(Количество) = 0 ТОГДА 0 ИНАЧЕ Сумма(Себестоимость) / Сумма(Количество) КОНЕЦ

Как подключить такой отчёт без изменения конфигурации — в статье про внешний отчёт 1С.

Себестоимость единицы товара по месяцам

Себестоимость номенклатуры в 1С за месяц — это себестоимость продаж, делённая на проданное количество. Запрос раскладывает её на закупку и доп. расходы и отмечает, есть ли окончательный расчёт: сразу видно, выросла закупка, добавилась доставка или месяц просто не закрыт.

// Себестоимость единицы товара по месяцам: закупка, доп. расходы и состояние расчета.
// Параметры: Номенклатура, НачалоПериода, КонецПериода. УТ 11.4-11.5, КА 2.5, ERP 2.5.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Продажи.Период КАК Месяц,
	Продажи.АналитикаУчетаПоПартнерам.Организация КАК Организация,
	СУММА(Продажи.КоличествоОборот) КАК Количество,
	СУММА(Продажи.СтоимостьБезНДСОборот) КАК СтоимостьЗакупки,
	СУММА(Продажи.ДопРасходыБезНДСОборот) КАК ДопРасходы
ПОМЕСТИТЬ ВТПродажи
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
			&НачалоПериода,
			&КонецПериода,
			Месяц,
			АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
				И ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)) КАК Продажи

СГРУППИРОВАТЬ ПО
	Продажи.Период,
	Продажи.АналитикаУчетаПоПартнерам.Организация
;

////////////////////////////////////////////////////////////////////////////////
// Месяцы с окончательным (не предварительным) расчетом себестоимости
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	НАЧАЛОПЕРИОДА(Расчет.Ссылка.Дата, МЕСЯЦ) КАК Месяц,
	Расчет.Организация КАК Организация
ПОМЕСТИТЬ ВТРасчеты
ИЗ
	Документ.РасчетСебестоимостиТоваров.Организации КАК Расчет
ГДЕ
	Расчет.Ссылка.Проведен
	И НЕ Расчет.Ссылка.ПредварительныйРасчет
	И Расчет.Ссылка.Дата МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Продажи.Месяц КАК Месяц,
	Продажи.Организация КАК Организация,
	Продажи.Количество КАК Количество,
	ВЫБОР
		КОГДА Продажи.Количество = 0
			ТОГДА 0
		ИНАЧЕ ВЫРАЗИТЬ(Продажи.СтоимостьЗакупки / Продажи.Количество КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК ЗакупкаНаЕдиницу,
	ВЫБОР
		КОГДА Продажи.Количество = 0
			ТОГДА 0
		ИНАЧЕ ВЫРАЗИТЬ(Продажи.ДопРасходы / Продажи.Количество КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК ДопРасходыНаЕдиницу,
	ВЫБОР
		КОГДА Продажи.Количество = 0
			ТОГДА 0
		ИНАЧЕ ВЫРАЗИТЬ((Продажи.СтоимостьЗакупки + Продажи.ДопРасходы) / Продажи.Количество КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК СебестоимостьЕдиницы,
	ВЫБОР
		КОГДА Расчеты.Месяц ЕСТЬ NULL
			ТОГДА ЛОЖЬ
		ИНАЧЕ ИСТИНА
	КОНЕЦ КАК МесяцЗакрыт
ИЗ
	ВТПродажи КАК Продажи
		ЛЕВОЕ СОЕДИНЕНИЕ ВТРасчеты КАК Расчеты
		ПО Продажи.Месяц = Расчеты.Месяц
			И Продажи.Организация = Расчеты.Организация

УПОРЯДОЧИТЬ ПО
	Организация,
	Месяц

В УТ 11.5, КА 2.5 и ERP 2.5 добавьте в условие Расчет.Ссылка.РежимЗакрытияМесяца = ЗНАЧЕНИЕ(Перечисление.РежимыЗакрытияМесяца.ОкончательноеЗакрытие), чтобы предварительное закрытие не считалось окончательным; в УТ 11.4 такого реквизита нет.

Продажи с нулевой себестоимостью

Функция находит документы, где собственный товар продан без себестоимости, и подсказывает причину. Записи в регистре «Задания к расчету себестоимости» за этот или более ранний месяц значат, что расчёт устарел. Если заданий нет, ищите ошибку в данных: поступление без цены, оприходование без стоимости, отрицательный остаток.

// Продажи собственных товаров без себестоимости и подсказка, где искать причину.
// Серверный код: модуль внешней обработки или общий серверный модуль. УТ 11.4+, КА 2.5.
Функция ПродажиБезСебестоимости(НачалоПериода, КонецПериода) Экспорт

	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Продажи.Регистратор КАК Документ,
	|	НАЧАЛОПЕРИОДА(Продажи.Период, МЕСЯЦ) КАК Месяц,
	|	Продажи.АналитикаУчетаПоПартнерам.Организация КАК Организация,
	|	Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	|	СУММА(Продажи.Количество) КАК Количество,
	|	СУММА(Продажи.СуммаВыручкиБезНДС) КАК Выручка
	|ПОМЕСТИТЬ ВТПродажи
	|ИЗ
	|	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК Продажи
	|ГДЕ
	|	Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|	И Продажи.Активность
	|	И Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
	|
	|СГРУППИРОВАТЬ ПО
	|	Продажи.Регистратор,
	|	НАЧАЛОПЕРИОДА(Продажи.Период, МЕСЯЦ),
	|	Продажи.АналитикаУчетаПоПартнерам.Организация,
	|	Продажи.АналитикаУчетаНоменклатуры.Номенклатура
	|
	|ИМЕЮЩИЕ
	|	СУММА(Продажи.Количество) > 0
	|	И СУММА(Продажи.СтоимостьБезНДС + Продажи.ДопРасходыБезНДС) <= 0
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|// Самый ранний месяц, по которому после расчета менялись документы
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	МИНИМУМ(Задания.Месяц) КАК Месяц
	|ПОМЕСТИТЬ ВТЗадания
	|ИЗ
	|	РегистрСведений.ЗаданияКРасчетуСебестоимости КАК Задания
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	Продажи.Документ КАК Документ,
	|	Продажи.Месяц КАК Месяц,
	|	Продажи.Организация КАК Организация,
	|	Продажи.Номенклатура КАК Номенклатура,
	|	Продажи.Количество КАК Количество,
	|	Продажи.Выручка КАК Выручка,
	|	ВЫБОР
	|		КОГДА Задания.Месяц ЕСТЬ NULL
	|			ТОГДА ""Расчет актуален: проверьте поступление, цену и остаток товара""
	|		ИНАЧЕ ""Расчет не выполнен или устарел: закройте месяц""
	|	КОНЕЦ КАК Подсказка
	|ИЗ
	|	ВТПродажи КАК Продажи
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТЗадания КАК Задания
	|		ПО (Задания.Месяц <= Продажи.Месяц)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Месяц,
	|	Документ";

	Возврат Запрос.Выполнить().Выгрузить();

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

Доработка: себестоимость в печатной форме и списке документов

После закрытия месяца себестоимость лежит в движениях самого документа продажи — её можно вывести в накладную для внутреннего контроля или колонкой в журнал.

Данные для печатной формы

Себестоимость в регистре хранится по товару и характеристике, а не по строке документа, поэтому стоимость единицы умножается на количество строки. Вызывайте функцию один раз для всех печатаемых документов; как подключить такую форму, описано в статье о внешней печатной форме на БСП.

// Строки реализаций с себестоимостью и наценкой для печатной формы.
// Себестоимость единицы берется из движений документа после закрытия месяца
// и умножается на количество строки (в единицах хранения).
// Сумма строки - в валюте документа, себестоимость - в валюте упр. учета, обе без НДС.
Функция ДанныеПечатиССебестоимостью(МассивДокументов) Экспорт

	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Продажи.Регистратор КАК Документ,
	|	Продажи.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	|	Продажи.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
	|	СУММА(Продажи.Количество) КАК Количество,
	|	СУММА(Продажи.СтоимостьБезНДС + Продажи.ДопРасходыБезНДС) КАК Себестоимость
	|ПОМЕСТИТЬ ВТСебестоимость
	|ИЗ
	|	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК Продажи
	|ГДЕ
	|	Продажи.Регистратор В (&МассивДокументов)
	|	И Продажи.Активность
	|
	|СГРУППИРОВАТЬ ПО
	|	Продажи.Регистратор,
	|	Продажи.АналитикаУчетаНоменклатуры.Номенклатура,
	|	Продажи.АналитикаУчетаНоменклатуры.Характеристика
	|
	|ИМЕЮЩИЕ
	|	СУММА(Продажи.Количество) > 0
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Товары.Ссылка КАК Документ,
	|	Товары.НомерСтроки КАК НомерСтроки,
	|	Товары.Номенклатура КАК Номенклатура,
	|	Товары.Характеристика КАК Характеристика,
	|	Товары.Количество КАК Количество,
	|	Товары.СуммаСНДС - Товары.СуммаНДС КАК СуммаБезНДС,
	|	ВЫРАЗИТЬ(Товары.Количество * ЕСТЬNULL(Себестоимость.Себестоимость / Себестоимость.Количество, 0)
	|		КАК ЧИСЛО(15, 2)) КАК Себестоимость
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК Товары
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТСебестоимость КАК Себестоимость
	|		ПО Товары.Ссылка = Себестоимость.Документ
	|			И Товары.Номенклатура = Себестоимость.Номенклатура
	|			И Товары.Характеристика = Себестоимость.Характеристика
	|ГДЕ
	|	Товары.Ссылка В (&МассивДокументов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Документ,
	|	НомерСтроки";

	Данные = Запрос.Выполнить().Выгрузить();

	// Наценка строки, %: прибыль к себестоимости
	Данные.Колонки.Добавить("Наценка", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 1)));
	Для Каждого СтрокаДанных Из Данные Цикл
		Если СтрокаДанных.Себестоимость > 0 Тогда
			СтрокаДанных.Наценка = Окр((СтрокаДанных.СуммаБезНДС - СтрокаДанных.Себестоимость)
				/ СтрокаДанных.Себестоимость * 100, 1);
		КонецЕсли;
	КонецЦикла;

	Возврат Данные;

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

Колонка в списке документов

Соединение запроса динамического списка с регистром продаж на большом журнале тормозит. Удобнее событие таблицы ПриПолученииДанныхНаСервере (8.3.10+): оно получает только показываемые строки и позволяет дописать в них значения.

  1. В расширении формы добавьте в запрос списка поля-заглушки Расш_Себестоимость и Расш_Наценка и выведите их колонками. В УТ 11.4 реализации обычно открывают из журнала «Документы продажи» — дорабатывайте ту форму, которой пользуются.
  2. Запретите по этим полям отбор и сортировку (УстановитьОграниченияИспользованияВОтборе, ...ВПорядке): значения подставляются после выборки. Метод заменяет список ограничений целиком.
  3. Назначьте таблице обработчик из листинга.
// Модуль формы списка в расширении: колонки «Себестоимость» и «Наценка, %».
// В запрос динамического списка добавлены поля-заглушки
//     ВЫРАЗИТЬ(0 КАК ЧИСЛО(15, 2)) КАК Расш_Себестоимость,
//     ВЫРАЗИТЬ(0 КАК ЧИСЛО(10, 1)) КАК Расш_Наценка,
// а таблице назначен обработчик события ПриПолученииДанныхНаСервере (8.3.10+).

&НаСервереБезКонтекста
Процедура Расш_СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)

	// Документы видимых строк. В списке документов и в журнале «Документы продажи»
	// поле Ссылка есть в выборке; ключ строки журнала - запись регистра, а не документ.
	Документы = Новый Массив;
	Для Каждого ЭлементСтроки Из Строки Цикл
		Документы.Добавить(ЭлементСтроки.Значение.Данные.Ссылка);
	КонецЦикла;

	Суммы = Расш_ВыручкаИСебестоимость(Документы);

	Для Каждого ЭлементСтроки Из Строки Цикл
		ДанныеСтроки = ЭлементСтроки.Значение.Данные;
		СтрокаСумм = Суммы.Найти(ДанныеСтроки.Ссылка, "Документ");
		Если СтрокаСумм = Неопределено Тогда
			Продолжить; // месяц не закрыт или в документе нет собственных товаров
		КонецЕсли;
		ДанныеСтроки.Расш_Себестоимость = СтрокаСумм.Себестоимость;
		Если СтрокаСумм.Себестоимость > 0 Тогда
			ДанныеСтроки.Расш_Наценка = Окр((СтрокаСумм.Выручка - СтрокаСумм.Себестоимость)
				/ СтрокаСумм.Себестоимость * 100, 1);
		КонецЕсли;
	КонецЦикла;

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

&НаСервереБезКонтекста
Функция Расш_ВыручкаИСебестоимость(Документы)

	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Документы", Документы);
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Продажи.Регистратор КАК Документ,
	|	СУММА(Продажи.СуммаВыручкиБезНДС) КАК Выручка,
	|	СУММА(Продажи.СтоимостьБезНДС + Продажи.ДопРасходыБезНДС) КАК Себестоимость
	|ИЗ
	|	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК Продажи
	|ГДЕ
	|	Продажи.Регистратор В (&Документы)
	|	И Продажи.Активность
	|	И Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
	|
	|СГРУППИРОВАТЬ ПО
	|	Продажи.Регистратор
	|
	|ИМЕЮЩИЕ
	|	СУММА(Продажи.СтоимостьБезНДС + Продажи.ДопРасходыБезНДС) <> 0";

	Результат = Запрос.Выполнить().Выгрузить();
	Результат.Индексы.Добавить("Документ");
	Возврат Результат;

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

Подробнее — в статьях про динамический список 1С и расширение конфигурации.

Типичные ошибки

  • «Поле не найдено "Продажи.СтоимостьОборот"» — запрос читает основную таблицу регистра, а имена взяты из виртуальной таблицы. В основной таблице ресурсы без окончания (СтоимостьБезНДС), в Обороты(...) — с ним (СтоимостьБезНДСОборот).
  • «Поле объекта не обнаружено (Расш_Себестоимость)» в обработчике списка — поле не добавлено в запрос динамического списка или в выборке нет Ссылка. Другие причины — в статье «Поле объекта не обнаружено».
  • Себестоимость документа через ЗаказКлиента. При продаже по заказу в измерении хранится заказ, и все его реализации сливаются. Для документа отбирайте по Регистратор.
  • Сумма в разы больше реальной. Стоимость единицы умножили на КоличествоУпаковок, а регистр хранит количество в единицах хранения.
  • В своём отчёте ноль, в типовом — сумма. В УТ 11.4 за месяц есть только предварительный расчёт: типовой отчёт берёт тогда стоимость единицы из регистра «Стоимость товаров», а ваш запрос — нет.

Частые вопросы

Почему в реализации не видно себестоимости?

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

Как узнать себестоимость товара до закрытия месяца?

Только оценочно: предварительным расчётом или предварительным закрытием на дату, по средней цене остатка в отчёте «Себестоимость товаров» или по нормативному виду цен в оценке рентабельности. Окончательная цифра появится после закрытия месяца.

Чем рентабельность в отчёте отличается от наценки?

Рентабельность в «Продажах» — валовая прибыль к выручке, наценка — прибыль к себестоимости. Купили за 100, продали за 125 без НДС: прибыль 25, рентабельность 20 %, наценка 25 %.

Почему себестоимость не равна цене закупки?

В неё входят доп. расходы — доставка, таможня и другие услуги, распределённые на товар. Кроме того, средняя усредняет цены разных поставок, а ФИФО списывает более ранние партии.

Можно ли пересчитать себестоимость прошлого месяца?

Да: исправьте документы и закройте месяц заново, а за ним — все следующие, потому что остатки переходят из месяца в месяц. Если стоит дата запрета изменения, её придётся сдвинуть.

Когда проще заказать

Если нужен отчёт по валовой прибыли под ваши правила или себестоимость в накладной и журнале продаж, поручите это программисту, который знает механизм расчёта себестоимости УТ 11. Опишите задачу на странице отчётов и обработок 1С или сразу разместите задачу: оценка бесплатная, ответ в течение рабочего дня. Если закрытие месяца идёт часами, это отдельная работа — см. услугу «1С тормозит».

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.