Настройка отображения одного текста в зависимости от отображения другого (непосредственно в самом Word)

3 1

Решила поделиться с вами интересным кейсом, возможно, вам тоже будет полезно: в самом Word есть возможность настроить отображение одного текста в зависимости от отображения другого (и да, я об этом не знала).

Кейс

  • Есть заявление на выплату по ЛНА.
  • Сотрудник оформляет его через ЛК (HR Pro).
  • Сам шаблон создается в стандартном справочнике RX, а не через JSON-ки HR-ных заявлений (вот такой у нас проект, ничего не спрашивайте, так надо было).
  • Все параметры "зашиты" в коде, на вкладке Параметры в шаблоне мы ничего не настраиваем.

И вот принимая во внимание все эти вводные, Заказчик хочет, чтобы в шаблоне документа текст был гибким в следующей части:

  • Если сотрудник в ЛК при оформлении выбирает Тип выплаты 1 или 2 (там очень много буков, не буду наименования полные писать), то в шаблоне следом дополнительно должен отображаться следующий текст: "в связи с: <Причина>" (Причину также указывает сам сотрудник текстом).
  • Для других же типов выплат этот текст отображаться не должен.
  • Для Типа выплаты и для Причины созданы в разработки нужные параметры для настройки в шаблоне.

Подходим к самой сути и кульминации моего спича: как же это настроить?

Как настроить шаблон в Word

Для решения задачи использовали механизм полей MS Word, почитать подробнее можно в статье из Базы знаний самого разработчика Microsoft, там же описано, какие вообще поля можно менять.

Теперь по шагам. Чтобы в Word настроить условие, нужно:

  1. В нужном месте документа тыкаем Ctrl+F9 (на маке это кажется Fn+F9, на моем странном ноуте сработала комбинация Ctrl+Fn+F9).
  2. Появляются красивые жирненькие (у кого-то может и нет) фигурные скобочки {} (ОЧЕНЬ ВАЖНО эти скобочки ставить именно через комбинацию клавиш, иначе Word не понимает и считает это просто текстом, а не какой-то магической формулой).
  3. Внутри заполняем вот таким значением:

{ IF "{ DOCPROPERTY  "Field_Тип выплаты" }" = "Материальная помощь в исключительных случаях" "в связи с: { DOCPROPERTY  "Field_Причина" \* MERGEFORMAT }"
"{ IF "{ DOCPROPERTY  "Field_Тип выплаты" }" = " Материальная помощь при материальном ущербе в связи с экстремальной ситуацией" "в связи с: { DOCPROPERTY  "Field_Причина" \* MERGEFORMAT }"
"" }" }

Не забываем ни одну скобочку, ни одну кавычку, ни один пробел, конкретно это условие проверено и работает, на собственных ошибках научились)) с новой строки здесь указала специально, чтобы разграничить хоть как-то, а так у меня сплошняком написано.

Что это значит, и что из этого я поняла:

  • IF — условие ЕСЛИ, думаю, тут и так все понятно
  • DOCPROPERTY — указываем именно это поле, только с ним работает, хотя ИИ выдает другое наименование. Думаю, это связано с тем, что именно в этой группе созданы наши поля разработкой
  • MERGEFORMAT — эта штука нужна, чтобы текст прописывался в едином стиле
  • Последняя строка с пустыми кавычками означает, что в других ситуациях никакой текст не ставится, будет пусто.

 

Если развернуть в Word коды/ значения полей (ПКМ по тесту), то визуально это будет выглядеть вот так:

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

Минусы

Из минусов отмечу:

  • Если вы настраиваете такой вариант впервые и ничего не понимаете в этих красивых и странных словах, как я, то процесс может затянуться (помочь могут разработчики, именно к ним я и обращалась);
  • Если нужна мега-гибкость, то будьте готовы, что без нужных параметров, а соответственно, дополнительной разработки, у вас ничего не получится;
  • Вам придется объяснять и доносить до Заказчика первые два пункта, особенно второй, потому что если через полгода ему захочется добавить еще одно (НОВОЕ! например, указывать еще сумму) условие, то из-за отсутствия нужных параметров это сделать будет невозможно.

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

 

За сим, позвольте откланяться. вопросы пишите в комментариях, попробую ответить)

Алексей Семакин

Привет.

Интересно, как пришли к такому решению. Может, был уже опыт применения, и это очень пригодилось тут. Суперкруто было бы обобщить опыт и описать задачи, которые удобно/правильно решать именно так.

А еще любопытно, как обстоит дело за пределами Word, например, в LibreOffice Writer или других пакетах - тот же самый документ ведь может быть открыт и там. Всё сломается, и это ограничение? Или без проблем?

Алексей Семакин: обновлено 09.02.2026 в 14:48

Авторизуйтесь, чтобы написать комментарий