В типовых конфигурациях 1С, таких как «Управление торговлей 11», «ERP» или «Комплексная автоматизация», отчет по валовой прибыли строится на основании данных регистров накопления, где в качестве аналитики выступает «Менеджер» (ответственный), указанный в шапке документа. Однако в реальном бизнесе часто возникает ситуация, когда один крупный заказ клиента ведут сразу несколько сотрудников — например, каждый отвечает за свою группу товаров. В этом случае стандартный отчет покажет всю прибыль только на одного «ответственного», что делает систему мотивации несправедливой.
Рассмотрим подробнее, как можно обойти это ограничение и реализовать детальный расчет прибыли по каждой строке заказа.
Это самый основательный и технически правильный метод. Нам необходимо, чтобы информация о менеджере хранилась не только в «шапке» документа, но и в каждой строке его табличной части. Разберем этот процесс по шагам:
Товары документов ЗаказКлиента и РеализацияТоваровУслуг новый реквизит МенеджерСтроки (тип: СправочникСсылка.Пользователи).ВыручкаИСебестоимостьПродаж. Нам нужно через расширение добавить в его измерения новое поле Менеджер.Пример кода, который можно использовать в модуле менеджера или через расширение в процедуре заполнения движений:
// В расширении для документа РеализацияТоваровУслуг
&После("ПодготовитьНаборыДанных")
Процедура ИмяРасширения_ПодготовитьНаборыДанных(СтруктураРегистрации)
// Алгоритм подмены менеджера в таблице движений
Для Каждого Движение Из ЭтотОбъект.Движения.ВыручкаИСебестоимостьПродаж Цикл
// Находим строку ТЧ по номеру строки или идентификатору
ТекущаяСтрока = ЭтотОбъект.Товары.Найти(Движение.НомерСтроки, "НомерСтроки");
Если ТекущаяСтрока <> Неопределено И ЗначениеЗаполнено(ТекущаяСтрока.МенеджерСтроки) Тогда
Движение.Менеджер = ТекущаяСтрока.МенеджерСтроки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
После такой доработки типовой отчет «Валовая прибыль» начнет автоматически группировать данные по новому измерению регистра, так как СКД (система компоновки данных) подхватит измененную структуру регистра.
Если вы не хотите вносить изменения в программный код и конфигурацию, можно воспользоваться встроенными возможностями системы по структуре подчиненности. Выясним, как это работает:
В системе 1С один ЗаказКлиента может быть основанием для нескольких документов РеализацияТоваровУслуг. Вы можете договориться, что каждый менеджер выписывает свою реализацию только на «свои» товары в рамках общего заказа. В каждой реализации в поле «Ответственный» указывается конкретный исполнитель.
Преимущества этого метода:
Недостатки: увеличивается количество печатных форм для клиента (вместо одной накладной он получит несколько), что может быть неудобно при приемке товара.
Проанализируем ситуацию с точки зрения себестоимости. Одной из главных проблем при разделении прибыли по менеджерам является корректное списание себестоимости. При методе FIFO программа списывает партии в порядке очереди. Если два менеджера продают один и тот же товар в одном заказе, первому может достаться старая дешевая партия, а второму — новая дорогая. Это вызовет конфликты при расчете бонусов.
Чтобы этого избежать, можно использовать обособленное обеспечение. В строке заказа можно указать «Назначение». Если настроить систему так, чтобы назначение включало в себя менеджера, 1С будет резервировать и списывать себестоимость строго под конкретную аналитику. Это гарантирует, что менеджер получит прибыль именно от тех остатков, которые он сам закупил или зарезервировал.
Если вы опытный пользователь или программист, можно создать внешний отчет, который будет виртуально соединять данные. Рассмотрим логику запроса:
РеализацияТоваровУслуг.Товары (отсюда берем количество, сумму выручки и нашего «менеджера строки»).ВыручкаИСебестоимостьПродаж по связке Регистратор + Номенклатура.Выручка - Себестоимость.Важный момент: если в одной накладной одна и та же номенклатура встречается дважды (с разными менеджерами), простого соединения по номенклатуре будет недостаточно. В этом случае необходимо использовать поле КлючСвязи, которое присутствует и в табличных частях, и в регистрах сведений/накопления для однозначной идентификации строки.
Реализуя подобную систему, помните о безопасности данных. Проанализируем риски: если менеджеры имеют доступ к редактированию чужих строк в заказе, они могут «перевешивать» прибыльные позиции на себя перед самым закрытием периода.
Рекомендации по внедрению:
Выбор метода зависит от масштаба вашей компании. Для малого бизнеса часто достаточно разделения на разные документы реализации. Для крупных торговых компаний наиболее жизнеспособным решением остается внедрение расширения с доработкой регистра ВыручкаИСебестоимостьПродаж.