Как вызвать окно предварительного просмотра в 1С, если в интерфейсе отсутствуют системные кнопки

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

При работе с специализированными интерфейсами, такими как Рабочее место кассира (РМК) в старых редакциях «1С:Розница» (например, 1.0 или 2.2 на обычных формах), разработчики часто сталкиваются с проблемой ограниченности функционала. В таких режимах платформа намеренно скрывает системные меню, командные панели и заголовки окон, чтобы кассир не мог случайно закрыть программу или перейти в другие разделы. Однако иногда возникает задача вывести печатную форму (например, этикетку на принтер Zebra или товарный чек) именно с возможностью предварительного просмотра. Рассмотрим подробно, как реализовать эту задачу, если стандартная кнопка «Просмотр» недоступна.

Метод 1. Использование командной панели элемента формы

Если вы создаете собственную обработку или модифицируете существующую форму для вывода печатной формы, наиболее надежным способом будет размещение ТабличныйДокумент непосредственно на форме. Проанализируем, как сделать так, чтобы у этого документа появилась своя командная панель с нужными кнопками.

Для реализации этого метода выполним следующие шаги в конфигураторе:

  1. Добавим на форму реквизит с типом ТабличныйДокумент.
  2. Вынесем этот реквизит на форму в виде элемента «Поле табличного документа».
  3. В свойствах созданного элемента формы найдем раздел «Использование» и установим флажок «Отображать командную панель».
  4. Если стандартный набор кнопок вас не устраивает или кнопка предпросмотра все равно не появилась, в свойствах командной панели можно нажать на лупу в поле «Состав команд» и вручную добавить стандартную команду «Предварительный просмотр».

Разберем ситуацию, когда данные в этот документ выводятся программно. Пример кода для заполнения такого поля:


// Допустим, ТабДок - это реквизит формы, размещенный на экране
ТабДок.Очистить();
Макет = ПолучитьМакет("МакетЭтикетки");
Область = Макет.ПолучитьОбласть("Строка");
// Заполнение параметров области...
ТабДок.Вывести(Область);
// Теперь на форме отобразится документ, а над ним — панель с кнопкой лупы (просмотра)

Метод 2. Программный вызов режима просмотра через метод Напечатать

В платформе 1С:Предприятие 8 существует встроенная возможность вызвать стандартное диалоговое окно предварительного просмотра напрямую из кода, даже если у формы нет никаких кнопок. Для этого используется метод Напечатать() с определенным параметром.

Проанализируем пример кода, который принудительно открывает окно просмотра:


// Создаем объект табличного документа
ТабДок = Новый ТабличныйДокумент;
// ... логика формирования документа (Вывести, Присоединить) ...

// Вызываем окно предварительного просмотра
// Используем системное перечисление РежимИспользованияПечатныхФорм
ТабДок.Напечатать(РежимИспользованияПечатныхФорм.ПредварительныйПросмотр);

Важный момент: этот метод работает в толстом клиенте и позволяет обойти ограничения «пустого» интерфейса, так как открывает модальное или отдельное системное окно, поверх текущего РМК.

Метод 3. Использование метода Показать с параметрами

Иногда требуется просто вывести документ в отдельном окне, которое по умолчанию обладает полным набором системных меню (Файл, Печать, Просмотр). Выясним, как это сделать с помощью метода Показать().

Рассмотрим синтаксис этого метода:

ТабДок.Показать("Печать этикеток", , Истина);

В данном случае третий параметр Истина может помочь в режиме обычных форм сделать окно более «автономным». Если системное меню в конфигурации полностью отключено для роли пользователя, то даже в этом окне кнопок может не быть. В такой ситуации мы возвращаемся к Методу 1 — внедрению документа в форму с собственной командной панелью.

Проверка прав доступа: роль «Вывод»

Если вы добавили кнопку, вызвали метод Напечатать(), но окно не открывается или кнопки печати неактивны («серые»), необходимо проверить права доступа пользователя. В 1С существует специфическое право, без которого любые манипуляции с печатными формами будут блокированы.

Проанализируем настройки в конфигураторе:

  1. Откроем роль, назначенную пользователю (например, «Кассир»).
  2. Перейдем на вкладку «Права».
  3. В корне списка прав (самый верхний уровень — вся конфигурация) найдем право под названием «Вывод» (Output).
  4. Убедимся, что галочка установлена. Если это право снято, 1С блокирует возможность предварительного просмотра, печати и даже сохранения документа в Excel/PDF.

Особенности печати на принтеры этикеток (Zebra и аналоги)

Выясним причину, по которой предварительный просмотр для этикеток может работать некорректно. Принтеры этикеток часто используют специализированные драйверы. Если ваша печатная форма формируется как обычный табличный документ 1С, стандартный просмотр покажет ее корректно.

Однако, если для печати на Zebra используется прямой посыл команд на языке ZPL или EPL (через текстовый файл или компоненту), то стандартный «Предварительный просмотр» 1С будет абсолютно бесполезен, так как он не умеет интерпретировать низкоуровневые команды принтера. В этом случае решением будет формирование «картинки-заглушки» для пользователя в самой форме 1С, имитирующей вид будущей этикетки.

Резюме решения

Подводя итог, если вы работаете в интерфейсе РМК «Розницы 1.0» и вам нужно дать кассиру возможность увидеть документ перед печатью:

  1. Проверьте право «Вывод» у пользователя.
  2. Используйте метод ТабличныйДокумент.Напечатать(РежимИспользованияПечатныхФорм.ПредварительныйПросмотр) для быстрого вызова окна.
  3. Если нужно более плотное встраивание — добавьте ПолеТабличногоДокумента на форму вашей обработки и включите в его свойствах отображение Командной панели. Это даст пользователю локальный набор инструментов для масштабирования и просмотра, не зависящий от глобального меню программы.
← На главную