Как увидеть и добавить скрытые переменные в шаблоне печатной формы Word для 1С?

Программист IT и автоматизация бизнеса
← На главную

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

Выясним причину невидимых переменных

Шаблоны Word, которые взаимодействуют с 1С, используют не простой текст, а специальные системные поля (коды полей). По умолчанию текстовый процессор скрывает их программный код и показывает только результат вычисления (либо пустоту, если поле еще не заполнено). Поэтому, когда мы выгружаем макет из обработки и открываем его, мы не видим привычных фигурных скобок с наименованиями параметров. Рассмотрим несколько способов отображения таких скрытых элементов.

Способ 1: Быстрый просмотр переменных (Горячие клавиши)

Для мгновенного отображения всех скрытых переменных в документе не обязательно искать глубокие настройки. Давайте воспользуемся встроенными комбинациями клавиш.

  1. Откройте выгруженный шаблон в программе Word.
  2. Нажмите на клавиатуре комбинацию Alt + F9.
  3. Посмотрим на результат: режим отображения переключится. Вместо пустого места или значений вы увидите системные коды полей.

Теперь параметры будут выглядеть примерно так: { DOCVARIABLE Контрагент } или { MERGEFIELD Организация }. Если нужно вернуть обычный вид документа, просто нажмите эту комбинацию повторно.

Способ 2: Включение видимости через настройки Word

Если вы хотите, чтобы поля всегда подсвечивались или отображались особым образом, давайте настроим параметры самого приложения.

  1. Перейдите в главное меню программы и выберите пункт Параметры.
  2. В открывшемся окне перейдите в раздел Дополнительно.
  3. Прокрутите список вниз до блока настроек отображения содержимого документа.
  4. Найдите опцию, отвечающую за затенение полей, и установите значение Всегда. Также здесь можно установить флажок для постоянного показа кодов полей вместо их значений.
  5. Сохраните настройки.

Как правильно добавить свою переменную в шаблон

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

Использование горячих клавиш:

  1. Установите курсор в то место документа, где должен выводиться новый параметр.
  2. Нажмите комбинацию Ctrl + F9.
  3. Появятся специальные фигурные скобки с серым фоном. Обратите внимание, что их нельзя удалить обычным стиранием по одному символу (Backspace удалит все поле целиком).
  4. Внутри скобок впишите команду и имя переменной. Имя должно строго совпадать с тем, что генерируется в коде 1С. Например: DOCVARIABLE СуммаДокумента.

Использование меню Word:

  1. Перейдите на вкладку Вставка.
  2. Найдите кнопку Экспресс-блоки (в некоторых версиях она находится в группе "Текст").
  3. Выберите пункт Поле...
  4. В открывшемся окне в списке категорий выберите DocVariable или MergeField.
  5. В свойствах поля укажите желаемое имя переменной и нажмите "ОК".

Типы полей, с которыми работает 1С

В зависимости от архитектуры вашей обработки, платформа ищет в шаблоне определенные объекты. Рассмотрим подробнее основные типы:

Использование БСП для заполнения шаблонов

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

Посмотрим на пример того, как формируются данные для заполнения такого макета:


Функция ПолучитьДанныеДляПечати(СсылкаНаДокумент)
    
    ДанныеПечати = Новый Структура;
    
    // Имена ключей структуры должны совпадать с именами полей в Word
    ДанныеПечати.Вставить("Организация", СсылкаНаДокумент.Организация.Наименование);
    ДанныеПечати.Вставить("Контрагент", СсылкаНаДокумент.Контрагент.Наименование);
    ДанныеПечати.Вставить("СуммаДокумента", СсылкаНаДокумент.СуммаДокумента);
    ДанныеПечати.Вставить("ДатаДокумента", Формат(СсылкаНаДокумент.Дата, "ДЛФ=DD"));
    
    Возврат ДанныеПечати;
    
КонецФункции

В данном случае, если в вашем шаблоне Word создано поле { MERGEFIELD СуммаДокумента }, подсистема печати сама найдет его и подставит значение из ключа СуммаДокумента нашей структуры. Это значительно упрощает код и делает поддержку внешних печатных форм более предсказуемой.

Используя описанные методы настройки редактора и понимая механику работы полей, вы сможете легко дорабатывать любые шаблоны Word, добавлять новые параметры и быстро находить скрытые ошибки в макетах.

← На главную