При работе с клиентами часто возникает ситуация, когда покупателю предоставляется индивидуальная скидка, однако в печатной форме документа Счет на оплату эту скидку показывать не нужно. Продавцы предпочитают выставлять счет со «чистыми» ценами, которые уже включают в себя дисконт, чтобы не перегружать документ лишней информацией и не вызывать у клиента лишних вопросов.
В этой статье мы подробно разберем, как правильно убрать колонку со скидкой в различных конфигурациях «1С:Предприятие 8», почему нельзя действовать «грубыми» методами и как настроить систему так, чтобы не сломалась математика расчетов.
Среди начинающих специалистов и пользователей часто возникает соблазн решить задачу самым простым путем — например, отредактировать макет печатной формы напрямую, удалить колонку «Скидка» или просто установить ее ширину в ноль. Рассмотрим, почему это категорически не рекомендуется делать.
Представим ситуацию: клиент покупает 10 единиц товара по базовой цене 100 рублей. Вы предоставили ему скидку 10%. Итоговая сумма к оплате составляет 900 рублей. Если вы просто скроете или удалите колонку «Скидка» из печатной формы, клиент увидит следующую строку:
Товар | Кол-во: 10 | Цена: 100 руб. | Всего: 900 руб.
Любой внимательный покупатель сразу же заметит математическую ошибку: 10 умножить на 100 должно быть 1000, а не 900. Это вызовет недоверие к вашей организации и заставит переделывать документы.
Правильное решение задачи должно не просто скрывать колонку, но и автоматически пересчитывать выводимую цену товара с учетом скидки (в нашем примере цена должна отобразиться как 90 рублей, тогда арифметика 10 * 90 = 900 сойдется идеально). Ниже мы рассмотрим, как настроить такой вывод в различных программах 1С.
В современных ERP-решениях разработчики предусмотрели штатную настройку, которая позволяет управлять выводом скидок в печатных формах без привлечения программистов.
Разберем по шагам, где находится эта настройка:
В решениях для малого бизнеса управление выводом скидок реализовано еще более гибко и доступно непосредственно в момент работы с документом. При необходимости можно воспользоваться готовой печатной формой счета-договора без скидки для УНФ и Розницы 3.0.
Выясним, как управлять отображением скидок в этих конфигурациях:
Счет на оплату, на правой боковой панели найдем вкладку настроек печатной формы. Достаточно просто снять флажок «Показать скидки». Программа мгновенно перестроит табличную часть документа, уберет лишний столбец и пересчитает цену за единицу товара.В конфигурации Бухгалтерия предприятия печатная форма счета работает по динамическому принципу. Если в табличной части документа колонка со скидкой не заполнена ни для одной строки, то в печатную форму эта колонка выводиться вообще не будет.
Если же скидка в самом документе указана, но вы не хотите показывать ее на бумаге, рассмотрим два основных пути решения:
Если типовые настройки вас по какой-то причине не устраивают (например, вам требуется выборочно скрывать скидки только для определенной категории партнеров или при определенных условиях сделки), идеальным решением будет создание внешней печатной формы.
Использование внешней печатной формы гарантирует, что ваша конфигурация останется на стандартной поддержке, а последующие обновления 1С пройдут безболезненно, особенно если выполнять автоматическое обновление и обслуживание баз 1С по расписанию.
Проанализируем пример кода, который программист может использовать в модуле внешней печатной формы для корректного пересчета цен при обходе строк табличной части документа:
// Пример программного пересчета цен без вывода скидки в макет
ТаблицаТоваров = СсылкаНаОбъект.Товары.Выгрузить();
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
Если СтрокаТовара.СуммаСкидки > 0 Тогда
// Рассчитываем реальную цену, которую заплатит покупатель
СтрокаТовара.Цена = (СтрокаТовара.Сумма - СтрокаТовара.СуммаСкидки) / СтрокаТовара.Количество;
// Обнуляем скидку, чтобы она не фигурировала в расчетах макета
СтрокаТовара.ПроцентСкидки = 0;
СтрокаТовара.СуммаСкидки = 0;
КонецЕсли;
КонецЦикла;
После такого преобразования данных в коде обработчика печати мы можем выводить полученную таблицу в стандартный макет, предварительно скрыв область колонки скидки. Клиент получит абсолютно корректный документ, где перемножение цены на количество будет в точности давать итоговую сумму строки.
Подключить готовую внешнюю форму в базу данных можно за пару минут через меню НСИ и администрирование -> Печатные формы, отчеты и обработки -> Дополнительные отчеты и обработки.