Как установить цены с разной наценкой в разных документах в 1С:УТ 11: решаем проблему перехода с УТ 10.3

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

Переход с платформы 1С:Управление торговлей 10.3 на современную 1С:Управление торговлей 11 часто вызывает ступор у опытных пользователей. Один из самых частых вопросов касается гибкой установки цен. В старой редакции 10.3 пользователь мог легко зафиксировать закупочную цену в документе, а затем прямо в табличной части рассчитать розничную цену, просто указав формулу или наценку (например, +20%), хотя сама розничная цена в справочнике была настроена для ручного ввода.

В этой статье мы подробно разберем, почему в УТ 11 изменилась эта логика, и рассмотрим 4 практических способа реализации этой задачи в новых редакциях (включая современные релизы УТ 11.5).

Выясняем причину: почему изменился подход?

В конфигурации 1С:УТ 10.3 расчет цен происходил динамически прямо в документе «здесь и сейчас». Вы могли взять любой тип цен и применить к нему произвольный математический алгоритм в интерактивном режиме. В 1С:УТ 11 разработчики внедрили более строгую методологию. Теперь ценообразование строится вокруг справочника ВидыЦен, в котором правила расчета (формулы, наценки, округления) жестко фиксируются в карточке настройки. По задумке методологов фирмы 1С, менеджер не должен вручную изобретать наценки в каждом отдельном документе — все отклонения должны регулироваться скидками, наценками или строго определенными видами цен.

Тем не менее, в реальном бизнесе постоянно возникают ситуации, когда один и тот же вид цен (например, «Розничная») в одном документе нужно рассчитать как Закупка + 20%, а в другом — как Закупка + 40%. Давайте разберем по шагам, как решить эту задачу штатными и программными средствами.

Способ 1. Разовый расчет по формуле через команду «Изменить цены»

Если ваш вид цены «Розничная» настроен как устанавливаемый вручную (в карточке вида цены выбран способ задания «Ручное назначение»), вы все равно можете быстро рассчитать его на основании другого вида цен прямо в документе установки. Это самый близкий аналог логики работы УТ 10.3.

Рассмотрим пошаговый алгоритм:

  1. Перейдите в раздел CRM и маркетинг — Цены (прайс-лист).
  2. Нажмите кнопку Создать для формирования нового документа УстановкаЦенНоменклатуры.
  3. В открывшемся окне выбора параметров отметьте галочками два вида цен: базовый (например, «Закупочная») и зависимый («Розничная»).
  4. Заполните список товаров и укажите закупочные цены (например, 10 рублей).
  5. Выделите строки в табличной части, для которых необходимо рассчитать розничную цену (можно выделить всё сочетанием клавиш Ctrl + A).
  6. Нажмите на панели кнопку Изменить цены и выберите пункт Рассчитать по формуле (или «Изменить по формуле» в зависимости от релиза конфигурации).
  7. В появившемся диалоговом окне для колонки «Розничная» введите формулу расчета: [Закупочная] * 1.20 (что соответствует наценке 20%).
  8. Нажмите кнопку Выполнить. Система автоматически пересчитает и заполнит розничную колонку нужными значениями.

В следующем документе установки цен вы можете повторить эту процедуру, но указать формулу [Закупочная] * 1.40 (наценка 40%). При этом сам вид цены «Розничная» останется независимым, а формулы будут применяться только для разового расчета в конкретный момент времени.

Способ 2. Изменение формул «на лету» в самом документе (для УТ 11.5+)

В современных версиях 1С:Управление торговлей (начиная с редакции 11.5) появился еще более удобный интерактивный механизм управления расчетами прямо из интерфейса рабочего места ценообразования.

Проанализируем этот вариант:

  1. В окне создания документа УстановкаЦенНоменклатуры в нижней панели найдите и нажмите на гиперссылку Настроить.
  2. В открывшейся форме настройки параметров прайс-листа перейдите на вкладку дополнительных настроек и установите флаг Формулы.
  3. После сохранения настроек в шапке табличной части под названием каждого вида цены появится специальная дополнительная строка, отображающая текущую формулу расчета.
  4. Вы можете кликнуть левой кнопкой мыши по этой строке прямо в поле документа и изменить коэффициент наценки (например, переписать базовый множитель с 1.2 на 1.4 для текущей сессии работы).
  5. Система мгновенно пересчитает всю колонку цен по новому правилу.

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

Способ 3. Создание нескольких видов цен (Классический подход УТ 11)

Если наценки в 20% и 40% — это не случайный хаотичный выбор менеджера, а две устоявшиеся торговые политики (например, обычная розница и розница для отдаленных регионов / акционная розница), правильнее будет создать два самостоятельных элемента в справочнике ВидыЦен:

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

Способ 4. Реализация через внешнюю обработку табличной части (для программистов)

Если бизнес-процессы требуют полной свободы действий и менеджеры хотят вводить произвольный процент наценки прямо в диалоговом окне при заполнении цен, лучшим решением будет подключение внешней обработки заполнения табличной части к документу УстановкаЦенНоменклатуры.

Этот способ позволяет не снимать конфигурацию с поддержки и полностью автоматизировать расчет. Напишем пример кода, который может быть базой для создания команды заполнения цен по произвольному проценту наценки:


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

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

Резюме

Мы рассмотрели различные варианты решения проблемы динамического расчета цен. Для разовых и нерегулярных операций идеально подходит Способ 1 и Способ 2 с использованием штатных инструментов изменения формул в документе. Если же разница в наценках обусловлена системными правилами продаж, настоятельно рекомендуем использовать Способ 3 и разделить виды цен в справочнике для обеспечения порядка в учете и исключения человеческого фактора.

← На главную