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