Как выбрать конфигурацию 1С 8 для небольшой оптовой компании и настроить контроль продаж в убыток?

Руководитель проекта 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При переходе на современную платформу «1С:Предприятие 8» перед небольшими торговыми компаниями (штат до 15 человек, в офисе работают 6 сотрудников, а в программе одновременно находятся 2–3 пользователя) часто встает дилемма: какую конфигурацию выбрать, чтобы она не была избыточной, но при этом закрывала все критически важные бизнес-процессы? Основной выбор обычно разворачивается между тремя решениями: «1С:Бухгалтерия» (БП), «1С:Управление нашей фирмой» (УНФ) и «1С:Управление торговлей» (УТ). Если бухгалтерский учет ведется обособленно, то БП сразу отходит на второй план. Давайте подробно проанализируем, как сделать правильный выбор между УТ и УНФ, а также разберем, как решить одну из самых частых и «болезненных» задач руководства — жесткий запрет продаж ниже себестоимости или закупочной цены.

Сравнение конфигураций: 1С:УНФ против 1С:УТ 11

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

  1. 1С:Управление нашей фирмой (УНФ)

    Эта конфигурация позиционируется как единое решение для малого бизнеса («всё в одной коробке»). Здесь есть CRM, продажи, закупки, склад, учет денежных средств, а также базовые блоки для расчета зарплаты менеджеров и анализа финансового результата (баланс, прибыли и убытки). Программа относительно «легкая», не требует мощных серверов и отлично работает в файловом режиме или в облачном сервисе 1С:Фреш.

    Однако, как отмечают практики, интерфейс и логика УНФ существенно отличаются от классических учетных систем 1С. Для некоторых пользователей она кажется непривычной и неудобной. Кроме того, в базовой поставке механизмы жесткого контроля цен и работы со сложными скидками здесь развиты слабее, чем в старших решениях.

  2. 1С:Управление торговлей (УТ 11)

    Это мощный промышленный стандарт для автоматизации торгового учета. Программа содержит глубоко проработанные механизмы ценообразования, гибкие автоматические и ручные скидки, соглашения с клиентами, детальный партионный учет и развитый блок складской логистики (включая адресное хранение).

    Главные минусы УТ 11 для совсем небольшой компании — это ее высокая требовательность к системным ресурсам и сложность освоения. Архитектурно она гораздо «тяжелее» УНФ, и для ее комфортной работы (даже на 3 пользователя) крайне желательно использовать клиент-серверный вариант работы с СУБД на быстром оборудовании.

Решение задачи контроля продаж «в убыток»

Очень часто руководители небольших компаний требуют внедрить жесткое ограничение: запретить проведение и печать расходных накладных, если цена продажи оказывается ниже определенного порога (например, ниже цены закупки или себестоимости). Рассмотрим, как это можно реализовать технически.

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

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

Вариант 1. Настройка контроля минимальных цен в УТ 11 (типовой функционал)

В конфигурации «1С:Управление торговлей 11» задача контроля цен решается штатными средствами без изменения кода программы. Разберем этот процесс по шагам:

  1. Создадим специальный вид цены, который будет выступать в роли ограничителя. Перейдем в раздел CRM и маркетинг — Настройки и справочники — Виды цен. Создадим новый элемент, назовем его «Минимально допустимая цена продажи».
  2. В способе задания цены укажем, например, Заполнять по данным ИБ (информационной базы) или установим динамическую наценку на цену закупки: Наценка на другой вид цен (Закупочная + 5%).
  3. В карточке правил продаж или в настройках CRM и маркетинга укажем, что созданный вид цены является минимально допустимым.
  4. Перейдем к настройке прав доступа пользователей. Для менеджеров по продажам, которым запрещено продавать в убыток, необходимо отключить роль «Отклонение от условий продаж».

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

Вариант 2. Программная доработка контроля цен (для любой конфигурации)

Если типовых механизмов контроля цен недостаточно (например, нам нужно сравнивать цену продажи строго с ценой из последнего приходного документа поставщика непосредственно в момент проведения накладной), мы можем реализовать простую программную проверку. Рассмотрим пример кода, который можно внедрить в модуль объекта документа продажи (или реализовать через механизм расширений, что более предпочтительно, так как конфигурация останется на поддержке).

Проанализируем пример кода для проверки цен в документе реализации:


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    // Выполняем проверку только при непосредственном проведении документа
    Если РежимПроведения Тогда
        
        Для Каждого СтрокаТЧ Из Товары Цикл
            
            // Получаем последнюю известную цену закупки для текущего товара
            ПоследняяЗакупочнаяЦена = ПолучитьПоследнююЗакупочнуюЦену(СтрокаТЧ.Номенклатура);
            
            // Если цена продажи оказалась ниже закупочной - блокируем проведение
            Если СтрокаТЧ.Цена < ПоследняяЗакупочнаяЦена Тогда
                
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = "Внимание! Товар """ + СтрокаТЧ.Номенклатура + """ продается в убыток! " + 
                                  "Цена продажи (" + СтрокаТЧ.Цена + ") ниже закупочной (" + ПоследняяЗакупочнаяЦена + ").";
                Сообщение.Поле = "Товары[" + Формат(СтрокаТЧ.НомерСтроки - 1, "ЧГ=0") + "].Цена";
                Сообщение.УстановитьДанные(ЭтотОбъект);
                Сообщение.Сообщить();
                
                Отказ = Истина; // Отменяем проведение документа
                
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецПроцедуры

Для обеспечения работы этого алгоритма нам потребуется вспомогательная функция, которая быстро получает цену последнего поступления из регистра сведений или документов закупки. Посмотрим на пример реализации такой функции:


Функция ПолучитьПоследнююЗакупочнуюЦену(ТекущаяНоменклатура) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
        |ИЗ
        |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура = &Номенклатура И ВидЦены = &ВидЦеныЗакупки) КАК ЦеныНоменклатурыСрезПоследних";
    
    // Задаем параметры запроса
    Запрос.УстановитьПараметр("Номенклатура", ТекущаяНоменклатура);
    
    // В реальной базе здесь должен быть ваш предопределенный или настроечный вид цены закупки
    Запрос.УстановитьПараметр("ВидЦеныЗакупки", Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"));
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если Выборка.Следующий() Тогда
        Возврат Выборка.Цена;
    КонецЕсли;
    
    Возврат 0; // Если цена закупки не найдена, считаем ее равной нулю
    
КонецФункции

Подводные камни жесткого запрета

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

Если внедрить жесткий запрет «намертво», работа менеджеров в такие моменты будет полностью парализована. Правильным решением будет организация двухуровневой системы авторизации. При попытке продать товар ниже минимальной цены программа должна не просто выдавать ошибку, а отправлять запрос на согласование руководителю (в УТ 11 для этого используется типовой бизнес-процесс согласования цен, а в УНФ это можно реализовать через доработку отправки уведомлений в Telegram или на почту).

Резюме и выводы

Для небольшой оптовой компании из 10–15 человек оптимальным выбором станут конфигурации «1С:Управление нашей фирмой» или «1С:Управление торговлей».

Выбирайте 1С:УНФ, если вам нужна простая, быстрая в освоении и нетребовательная к оборудованию программа, которая помимо торговли закроет задачи CRM и управленческого баланса, а контроль цен вы готовы настроить по упрощенной схеме через виды цен продажи.

Выбирайте 1С:УТ 11, если перед вами стоят жесткие задачи контроля цен, разграничения прав менеджеров, работы по сложным индивидуальным соглашениям с покупателями и вы готовы инвестировать ресурсы в хорошее серверное оборудование и регулярное обслуживание системы квалифицированным специалистом.

← На главную