При переходе на новые версии программных продуктов 1С, таких как Управление торговлей 11.4 или Розница 2.2, пользователи часто сталкиваются с тем, что привычные печатные формы (счет на оплату, заказ клиента, товарный чек) выглядят иначе, чем в старых редакциях (например, 10.3). Одной из самых распространенных проблем является отсутствие колонок со скидками, даже если в самом документе скидки рассчитаны. Рассмотрим подробно, как управлять отображением этих данных и решать сопутствующие технические сложности.
В современных конфигурациях 1С на управляемых формах многие параметры вывода данных управляются не через прямое редактирование макета, а через функциональные опции в настройках системы. Если в печатной форме «Заказ клиента» или «Счет на оплату» не отображаются колонки «Скидка» и «Сумма без скидки», проанализируем настройки программы.
Для включения этой возможности выполним следующие шаги:
Разберем, что происходит «под капотом» системы. После установки этой настройки константа ОтображениеСкидокВПечатныхФормахДокументовПродажи принимает значение «Истина». При формировании печатной формы менеджер документа проверяет это значение. Если оно включено, алгоритм выбирает области макета, содержащие параметры СуммаБезСкидки и Скидка (например, область СтрокаТаблицыСоСкидкой).
Иногда возникают ситуации, когда флаг в настройках установлен, но колонки так и не появились. Проанализируем основные причины такой ситуации:
СтрокаТаблицы. Чтобы проверить это, попробуйте временно вернуться к стандартному макету.СтрокаТаблицыСНДССоСкидкой и СтрокаТаблицыСоСкидкой.Часто пользователи жалуются, что в колонке «Цена» выводится уже конечная стоимость за единицу с учетом всех скидок. Это вводит покупателя в заблуждение, так как он не видит базовую цену по прайсу. Рассмотрим, как это изменить.
В типовом коде 1С подготовка данных для печати часто выполняется через запрос, который рассчитывает цену «на лету»:
// Пример упрощенной логики в модуле менеджера
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ВыводитьСкидки Тогда
ОбластьМакета.Параметры.Цена = Выборка.Цена; // Исходная цена
ОбластьМакета.Параметры.Скидка = Выборка.СуммаСкидки;
Иначе
ОбластьМакета.Параметры.Цена = Выборка.Сумма / Выборка.Количество; // Цена со скидкой
КонецЕсли;
КонецЦикла;
Для исправления этой ситуации в 1С:Розница или УТ без изменения конфигурации лучше всего использовать Внешнюю печатную форму. В ней следует переопределить запрос к табличной части Товары, чтобы параметр Цена всегда заполнялся из соответствующего реквизита документа, а не вычислялся делением суммы на количество.
Рассмотрим ситуацию, когда необходимо печатать товарный чек не на обычном принтере А4, а на узкой чековой ленте, используя обычный принтер чеков (не фискальный регистратор). Это актуально для выдачи нефискальных документов покупателям.
Выясним порядок действий для настройки такой печати в 1С:УТ 11.4:
0. Выберите размер бумаги, соответствующий вашей ленте (например, 58mm x Roll или 80mm x Roll).Если вы печатаете из рабочего места кассира (РМК), убедитесь, что в настройках РМК указано использование принтера чеков для печати товарных чеков, иначе система будет постоянно выдавать ошибку отсутствия фискального накопителя.
Проанализируем лучший способ внесения изменений в логику печати. Начиная с версии 8.3, крайне не рекомендуется менять типовую конфигурацию. Рассмотрим использование Расширений конфигурации.
Преимущества использования расширений для редактирования печатных форм:
Печать в модуле менеджера с помощью аннотации &Вместо или &После и добавить туда свою логику расчета цен или вывода дополнительных колонок.Например, чтобы добавить в макет уникальный параметр, которого нет в типовой поставке, в расширении можно использовать метод ЗаполнитьЗначенияСвойств(), предварительно подготовив структуру данных с вашими значениями.
Таким образом, большинство проблем с печатными формами в 1С:УТ 11.4 решаются либо через глубокое изучение настроек в разделе НСИ и администрирование, либо через создание внешних печатных форм и расширений, что позволяет сохранить чистоту кода и корректность учета.