При работе в 1С:Зарплата и Управление Персоналом (ЗУП) 3.1 часто возникает необходимость внести правки в печатные формы документов прямо в режиме «1С:Предприятие», не прибегая к помощи программиста и не изменяя конфигурацию. Например, нужно жестко прописать фамилию руководителя или изменить название должности. Однако при попытке просто удалить параметр из ячейки и вписать туда текст, система часто выдает критическую ошибку: «Поле объекта не обнаружено». В этой статье мы подробно разберем, почему это происходит и как правильно редактировать макеты, чтобы сохранить работоспособность программы.
Для начала проанализируем ситуацию с технической точки зрения. В системе 1С заполнение печатных форм происходит программно. Когда вы нажимаете кнопку «Печать», срабатывает код (обычно в модуле менеджера документа), который ищет в макете определенные области и параметры.
Рассмотрим два основных метода, которыми программа заполняет данные:
// Программный код в модуле 1С
ОбластьМакета.Параметры.РеквизитРуководитель = ДанныеПечати.Руководитель;
Если вы удаляете РеквизитРуководитель из макета или меняете тип заполнения ячейки на «Текст», коллекция Параметры данной области больше не содержит этого имени. Программа пытается записать значение в несуществующее поле, что и приводит к ошибке «Поле объекта не обнаружено».
Самый надежный способ — это оставить обязательный параметр в макете, но сделать его невидимым для пользователя при печати. Рассмотрим подробнее, как это реализовать с помощью манипуляций с ячейками.
Допустим, у нас есть ячейка, в которой указан параметр РеквизитРуководитель. Нам нужно, чтобы вместо него всегда печатался «Иванов И.И.». Выполним следующие шаги:
Таким образом, программный код успешно найдет параметр РеквизитРуководитель, запишет в него данные, но на бумаге они не отобразятся.
Существует еще более элегантный метод, который позволяет оставить текст и параметр в одной и той же ячейке. Выясним, как работает режим заполнения «Шаблон».
В свойствах ячейки (правая кнопка мыши — Свойства) в поле «Заполнение» выберем значение «Шаблон». Этот режим позволяет смешивать обычный текст и параметры, которые заключаются в квадратные скобки.
Разберем на примере. Если мы напишем в ячейке:
Иванов И.И. [РеквизитРуководитель]
То программа увидит параметр в скобках, заполнит его данными (например, «Петров П.П.»), и на печати мы получим: Иванов И.И. Петров П.П.
Чтобы скрыть лишнюю фамилию, можно воспользоваться хитростью с оформлением. Мы можем добавить в шаблон очень много пробелов между нашим текстом и параметром, либо использовать перенос строки внутри ячейки (Shift+Enter), чтобы параметр «уехал» за пределы видимости, если для ячейки установлена фиксированная высота и отключено свойство «Размещать: Переносить».
Если макет документа сложный и перенос параметра внутри строки портит форматирование, проанализируем возможность создания «технической» зоны.
Подвал).Этот метод хорош тем, что он не нарушает визуальную структуру основной части документа и гарантирует наличие всех необходимых полей для программного кода 1С.
При редактировании макета в режиме предприятия пользователи часто совершают ошибку, удаляя целые строки или объединяя ячейки на границах областей. Посмотрим, почему это критично.
Весь макет разделен на именованные области (Заголовок, Строка, Подвал и т.д.). Вы можете увидеть их, выбрав в меню Таблица — Имена — Назначенные имена. Если вы случайно удалите строку, которая была границей области, или «поглотите» одну область другой при объединении, программа выдаст ошибку еще на этапе подготовки макета, так как не сможет найти саму область (например, ОбластьПодвал) для вывода на печать.
Совет: Всегда проверяйте, чтобы ваши изменения не удаляли серые линии-разделители областей, которые обычно видны слева и сверху в редакторе макета.
Если в процессе экспериментов печатная форма перестала открываться совсем, не стоит паниковать. Рассмотрим, как восстановить стандартный макет:
После этого система вернется к исходному варианту, заложенному разработчиками в конфигурацию, и вы сможете начать редактирование заново, учитывая правила сохранения обязательных параметров.
Подводя итог, можно сказать: чтобы заменить данные руководителя на свой текст в 1С:ЗУП 3.1 без помощи программиста, придерживайтесь правила «Скрывай, а не удаляй». Программа — это строгий алгоритм, который ожидает найти определенные «крючки» (параметры) в вашем макете. Оставьте ей эти крючки в невидимом виде, и ваша печатная форма будет работать корректно и выглядеть именно так, как вам нужно.