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

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

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

Для отправки шаблона документа:

  1. Зайдите в контекст организации.

  2. Вызовите метод Box.CreateTemplateSendTask().

  3. Заполните полученный объект.

  4. Вызовите метод TemplateSendTask.Send().

Можно отправлять как однотитульные документы, так и двухтитульные документы. Для этого у отправляемого шаблона есть методы TemplateToSend.LoadSellerTitleFromFile() и TemplateToSend.LoadBuyerTitleFromFile().

Сами титулы при этом компонента не готовит. Пользователь самостоятельно подготавливает контент.

Примечание

Документы, доступные в ящике организации без дополнительных настроек не поддерживают отправку второго титула в виде шаблона. В примере используем УПД СчфДоп для того чтобы не вводить новые понятия.

// dd_Organization - объект организации, в которой идёт работа

Функция ОтправитьШаблонУПДСЧФДОП(BoxId_ПолучателяШаблона,
                                 BoxId_ОтправителяДокумента,
                                 BoxId_ПолучателяДокумента,
                                 ПутьДоФайлаТитулаПродавца,
                                 ПутьДоФайлаТитулаПокупателя)

    dd_TemplateSendTask = dd_Organization.CreateTemplateSendTask();
    dd_TemplateSendTask.ToBoxId          = BoxId_ПолучателяШаблона;
    dd_TemplateSendTask.MessageFromBoxId = BoxId_ОтправителяДокумента;
    dd_TemplateSendTask.MessageToBoxId   = BoxId_ПолучателяДокумента;

    dd_TemplateToSend = TemplateSendTask.AddTemplate("UniversalTransferDocument");
    dd_TemplateToSend.Function = "СЧФДОП";
    dd_TemplateToSend.LoadSellerTitleFromFile(ПутьДоФайлаТитулаПродавца);
    dd_TemplateToSend.LoadBuyerTitleFromFile(ПутьДоФайлаТитулаПокупателя);

    Возврат dd_TemplateSendTask.Send();

КонецФункции

Как получить документы, созданные из отправленного шаблона

После отправки шаблона, вернётся объект Template, который содержит идентификатор шаблона. Зная этот идентификатор, можно запросить шаблон повторно. Если из шаблона был создан документ, то в соответствующей коллекции будут указаны ID таких документов. Далее можно вызвать метод Box.GetDocumentById():

// SentTemplate - объект ранее отправленного шаблона
Функция ПолучитьШаблонныеДокументы(SentTemplate)

    TemplateId = SentTemplate.TemplateId;

    RefreshedTemplate = Organization.GetTemplate(TemplateId);
    FirstTemplateSellerTitle = RefreshedTemplate.Entities.GetItem(0);
    ИдентификаторыДокументовСозданныхИзШаблона = FirstTemplateSellerTitle.CreatedDocumentIds;

    // Идентификаторы можно использовать в методе GetDocumentById
    Возврат ИдентификаторыДокументовСозданныхИзШаблона;

КонецФункции