1С Отель - внешняя печатная форма
2025-09-08
Информация в этой статье подходит для конфигурации 1с Отель 9.2.4.80
Конфигурация Отель, значительно отличается от привычных конфигураций типа розницы, УТ, ЗУП...
Во первых она не использует БСП
Во вторых код написан на английском
В третьих очень мало информации по доработкам и расширениям
В четвертых разный функционал у обычных и управляемых формах
Дальше - малоинформативные отчеты, запутанный интерфейс, ну в общем вы поняли мое отношение.
Не смотря на все недостатки, приходится с ней работать(что купили то и есть). Заказ был - добавить новую печатную форму.
После некоторого времени мучений и разбирательств - предлагаю инструкцию по добавлению своей собственной печатной формы.
Первым делом открываем настройки - внешние обработки.

Открывается список внешних обработок, добавляем новую, называем как хочется, конкретно в моем случае я назвал ПечатьСогласияПД. Также указываем тип обработки - Обработка.


А дальше нужно загрузить обработку, которая сформирует печатную форму.
Не знаю откуда, но у меня где-то взялся файлик PrintGuestForm.epf(Возможно я его выгрузил из демо базы "1с отель"). Вот именно его я взял за основу для будущей печатной формы.
Переключимся в конфигуратор 1с отель и откроем эту обработку. Здесь нас интересует несколько вещей.
Первое, с чем нужно определиться - тип реквизита InputParameter. В моем случае, печатная форма будет выводиться непосредственно из карточки гостя, поэтому я выбрал тип CatalogObject.Clients(Справочник.Клиенты).

Дальше, в формах GuestForm(обычная форма) и tcGuestForm(управляемая), добавляем нужные реквизиты(я добавил Client с типом CatalogRef.Clients). В процедуре ПриОткрытии() в этот реквизит заполняется значением InputParameter.
Procedure OnOpen() ThisForm.Style = StyleLib[SessionParameters.StyleName]; SelLanguage = ObjectPrintingForm.Language; Client = InputParameter.Ref; SelObjectPrintForm = ObjectPrintingForm; // Draw form PrintGuestForm(); EndProcedure //OnOpen
После чего, в этой процедуре вызывается pmPrintGuestForm(), находящийся в модуле объекта, а там уже делается заполнение параметров и вывод макета.
Вот, обработка почти готова, осталось только подредактировать макет.

Сохраняем обработку и возвращаемся в 1с предприятие. Напомню, что нужно открыть "Настройки - Внешние обработки" и добавить обработку. Указываем название, тип - обработка и теперь выбираем файл только что созданной обработки(Жмем загрузить).
Сохраняем нажав на кнопку "ОК".
Следующий этап - добавление печатной формы. Переходим в "Настройки - Печатные формы объектов". Открывается список печатных форм используемых в 1с отель.
В левой колонке у нас есть папки, выбираем подходящую(у меня это Клиент) и добавляем новую форму. Вводим название, выбираем внешнюю обработку, которую создали в базе 1с отель перед этим, и указываем параметр - "CatalogObject.Clients". Так мы передадим самого клиента в параметр.


Сохраняем, переходим в гостя(клиента), и видим, что у него в меню печать появилась новая печатная форма ПерсональныеДанные. Для теста конечно же проверим как печатается наша печатная форма.

