После обновления конфигураций «1С:Управление торговлей» (начиная с релизов ветки 11.4.9.х), «1С:Комплексная автоматизация» или «1С:ERP», многие пользователи столкнулись с неожиданным изменением в поведении программы. При попытке распечатать привычный Счет на оплату, вместо детализированной табличной части с наименованиями продукции, количеством и ценами, в документе выводится лишь краткая фраза: «Оплата по реализации №...» или «Доплата по заказу...».
В этой статье мы подробно разберем, почему так происходит, проанализируем внутреннюю логику системы и выясним, какие настройки необходимо изменить, чтобы вернуть в печатную форму привычный список товаров. Мы пройдем путь от простых настроек пользователя до проверки технических нюансов в модулях программы.
Для начала нам необходимо понять, что данное поведение не является ошибкой или «багом» системы. Это штатная логика, заложенная разработчиками 1С для разделения двух разных по смыслу документов:
Проанализируем ситуацию: система автоматически переключает макет счета с «товарного» на «текстовый», если определяет, что сумма в счете не соответствует итоговой сумме товаров в документе-основании (например, в Заказе клиента). Это происходит, когда пользователь запрашивает частичную оплату или оплату уже отгруженного товара.
Наиболее частая причина изменения вида печатной формы — это установленный флаг или признак частичной оплаты в самом документе. Рассмотрим, как это работает в типовых сценариях.
Если в документе Счет на оплату (или в связанном с ним заказе) система видит, что требуется оплатить не 100% стоимости товаров, она считает такой счет «финансовым требованием». В этом случае алгоритм печати подавляет вывод таблицы товаров. Выясним, как это исправить:
Счет на оплату, который печатается некорректно.Проанализируем следующий важный параметр — поле Назначение платежа. В современных версиях УТ 11.4 логика печатной формы настроена таким образом, что ручное заполнение этого поля имеет приоритет над автоматическим выводом списка номенклатуры.
Если в документе Счет на оплату на вкладке Дополнительно (или непосредственно в поле назначения на главной вкладке) заполнен текст, программа «думает», что пользователь хочет видеть в печатной форме именно это сообщение. Разберем по шагам, что нужно сделать:
Назначение платежа.Товары.Часто проблема кроется глубже — в настройках Заказа клиента, на основании которого создан счет. Рассмотрим ситуацию, когда в заказе используется график оплаты (например, «Аванс 30%» и «Кредит 70%»).
Если мы пытаемся напечатать счет только на один из этапов (допустим, на доплату после отгрузки), 1С справедливо полагает, что мы просим деньги за «долг», а не за «товары». Чтобы вернуть товары в печатную форму в такой ситуации, нам придется либо пересмотреть правила оплаты в заказе, либо воспользоваться механизмом печати счета на всю сумму заказа сразу.
Проверим вкладку Правила оплаты в исходном заказе. Если там разбиты платежи, то при печати счета из формы списка заказов система может автоматически подтягивать настройки ближайшего неоплаченного этапа, что и приводит к скрытию таблицы товаров.
Если вышеуказанные действия не помогли, нам следует убедиться, что в системе не используются измененные макеты или внешние печатные формы. Посмотрим на ситуацию глазами администратора:
Счет на оплату подключена внешняя форма, она может подменять стандартную логику даже при «правильных» настройках в самом документе.Для тех, кто хочет глубже понять, как система принимает решение о виде счета, проанализируем фрагмент логики, который обычно располагается в Модуле менеджера документа СчетНаОплату. Программа проверяет условия в процедуре ПечатьСчетаНаОплату.
Примерная логика условий выглядит следующим образом:
Если СуммаДокумента <> СуммаПоСтрокамТовары Тогда
// Система считает оплату частичной
ПараметрыПечати.ВариантВывода = "ТекстовоеНазначениеПлатежа";
ИначеЕсли ЗначениеЗаполнено(Документ.НазначениеПлатежа) Тогда
// Пользователь сам указал, что писать
ПараметрыПечати.ВариантВывода = "ТекстовоеНазначениеПлатежа";
Иначе
// Стандартный вывод таблицы товаров
ПараметрыПечати.ВариантВывода = "ТаблицаТоваров";
КонецЕсли;
Этот код объясняет, почему при малейшем расхождении суммы счета с итогом товарной части (даже на копейку из-за округлений) таблица может исчезнуть. Также это подтверждает, что заполненное поле НазначениеПлатежа является «выключателем» товарной части.
Чтобы оперативно вернуть таблицу товаров в печатную форму Счета на оплату в 1С:УТ 11.4.9+, воспользуемся следующим алгоритмом:
Соблюдение этих простых правил позволит вам гибко управлять внешним видом документов и избежать недопонимания со стороны клиентов, которые привыкли видеть детальный перечень товаров в получаемых счетах.