В работе с платформой 1С:Предприятие 7.7, особенно в конфигурации «Торговля и Склад 9.2», пользователи часто сталкиваются с ситуацией, когда документ «Переоценка (розница)» визуально заполнен товарами, но при попытке вывода на печать формируется пустой лист (только шапка и заголовок). Рассмотрим подробнее, почему это происходит, разберем программный код и выясним, как исправить эту ситуацию.
Проанализируем типовой алгоритм, который отвечает за вывод строк табличной части в печатную форму. В большинстве редакций «Торговли и Склада» код модуля документа содержит жесткое условие фильтрации. Перейдем в конфигуратор и посмотрим на фрагмент кода в модуле формы или в объекте печатной формы:
Пока ПолучитьСтроку() = 1 Цикл
Если ЦенаСтарая = ЦенаНовая Тогда
Продолжить;
КонецЕсли;
НомСтроки = НомСтроки + 1;
ИсхТабл.ВывестиСекцию("Строка");
КонецЦикла;
Разберем, что здесь происходит. Программа перебирает все строки документа с помощью метода ПолучитьСтроку(). Однако внутри цикла стоит условие: Если ЦенаСтарая = ЦенаНовая Тогда Продолжить;. Это означает, что если текущая розничная цена товара совпадает с той ценой, которую вы пытаетесь установить в документе, система просто игнорирует эту строку и не выводит ее на печать.
Выясним причину такого поведения с точки зрения учета. В конфигурации 1С 7.7 учет в рознице ведется по продажным ценам. Любое изменение цены — это финансовое событие, которое меняет остатки в денежном выражении в регистрах (например, в регистре «Розница»).
Если ЦенаСтарая равна ЦенаНовая, то:
Следовательно, печатная форма, которая является первичным документом, не должна содержать строк, не приведших к финансовым изменениям. Поэтому программа «молча» скрывает такие позиции.
Рассмотрим ситуации, когда пользователь уверен, что цены разные, но программа считает иначе:
ЦенаСтарая подтянется уже в обновленном виде.Посмотрим на шаги, которые помогут диагностировать и устранить проблему:
Если ЦенаСтарая = ЦенаНовая Тогда Продолжить; КонецЕсли; в конфигураторе. Однако помните, что это нарушит логику типового решения.Мы выяснили, что «пустая» печатная форма в 1С 7.7 — это не ошибка программы, а следствие работы встроенного фильтра. Программа защищает пользователя от создания «пустых» с финансовой точки зрения документов. Для успешной печати всегда убеждайтесь, что устанавливаемая цена отличается от текущей зафиксированной в системе розничной цены для данного склада.