Модификаторы для шаблонов - https://dev.1c-bitrix.ru/api_d7/bitrix/documentgenerator/modifiers.php Про шаблоны - https://helpdesk.bitrix24.ru/open/7622241/ Пример от битрикса генерации документа https://dev.1c-bitrix.ru/api_d7/bitrix/documentgenerator/example.php Примеры работы с шаблонами через апи: Кастомизация полей при генерации генерации документов Сгенерировать автоматом файл по шаблону и положить его в поле в сделки |
{TotalDiscount} - Сумма скидки
{TotalSum} - Общая сумма
Модификаторы для "денег"
|
1200.00руб. - {TotalSum~WZ=N, NS=N}
1200.00 - {TotalSum~WZ=N, NS=Y}
1200руб. - {TotalSum~WZ=Y, NS=N}
1200 - {TotalSum~WZ=Y, NS=Y}
Одна тысяча двести рублей 00 копеек {TotalSum~W=Y}
Для счета
{RequisiteHomeAddressText} - адрес регистрации
{RequisiteRegisteredAddressText} - юридический адрес
Поставщик: {MyCompanyRequisiteRqCompanyName}, ИНН {MyCompanyRequisiteRqInn}, КПП {MyCompanyRequisiteRqKpp}, {MyCompanyRequisiteRegisteredAddressText}, тел.: {MyCompanyPhone}
Покупатель (физ лицо): {ContactLastName} {ContactName} {ContactSecondName}
Покупатель (юр лицо): {RequisiteName}, ИНН {RequisiteRqInn}
Товары
{ProductsIndex} - №
{ProductsProductName} - Товары (работы, услуги)
{ProductsProductQuantity} - Кол-во
{ProductsProductMeasureName} - Единица
{ProductsProductPriceRaw~WZ=Y} - Цена
{ProductsProductPriceRawSum~WZ=Y} - Сумма
{ProductsProductDiscountTotal~WZ=N } - Сумма скидки в товаре
Доставка для заказа
{PriceDelivery~WZ=X}
Дата
для форматирования даты https://www.php.net/manual/ru/datetime.format.php |
{DocumentCreateTime~”j” F Y}г. > "7" октября 2021г.
Форматирование имени
{FormattedName~Format=#TITLE# #LAST_NAME# #NAME# #SECOND_NAME#}
- #TITLE# - обращение;
- #NAME# - имя;
- #LAST_NAME# - фамилия;
- #SECOND_NAME# - отчество;
- #NAME_SHORT# - первая буква имени с точкой;
- #LAST_NAME_SHORT# - первая буква фамилии с точкой;
- #SECOND_NAME_SHORT# - первая буква отчества с точкой.
{AssignedFormattedName} - ответственный
Падежи
{FormattedName~Case=0} выведет имя в родительном падеже.
- Case=-1 - именительный;
- Case=0 - родительный;
- Case=1 - дательный;
- Case=2 - винительный;
- Case=3 - творительный;
- Case=4 - предложный
{Address~Format=3,Separator=3}
Format (формата адреса, принятый в стране)
- Format=1 - Европа;
- Format=2 - Великобритания;
- Format=3 - Северная Америка;
- Format=4 - Россия (улица -> страна);
- Format=5 - Россия (страна -> улица).
Separator (разделитель строк)
- Separator=1 - запятая;
- Separator=2 - без разделителя;
- Separator=3 - перевод строки.
{ClientPhone~format=E.164}
- format=E.164 +79535851309
- format=International +7 953 585-13-09
- format=National 8 (953) 585-13-09
Важно! Шаблоны документов не поддерживают множественные поля с типом Файл и Привязка к элементам CRM. |
{MyField~mfirst=n}
- mfirst=y - выводить только первое значение
- mfirst=n - выводить все значения
{MyCompanyRequisiteRqCompanyFullName}, именуемое в дальнейшем «Лицензиар»,
в лице директора {MyCompanyRequisiteRqDirector~Format=#LAST_NAME# #NAME# #SECOND_NAME#,Case=0}, действующего на основании
Устава, с одной стороны, и {RequisiteName}, именуемое в дальнейшем «Лицензиат», в лице {UfCrm1614686800} {ContactFormattedName~Format=#LAST_NAME# #NAME# #SECOND_NAME#,Case=0}, действующего на основании {UfCrm1614513805}, с другой стороны,
заключили настоящий Договор о нижеследующем
Для договора с ИП
{MyCompanyRequisiteRqCompanyFullName}, именуемое в дальнейшем «Лицензиар», в лице директора {MyCompanyRequisiteRqDirector~Format=#LAST_NAME# #NAME# #SECOND_NAME#,Case=0}, действующего на основании Устава, с одной стороны, и {RequisiteName}, именуемое в дальнейшем «Лицензиат», с другой стороны, заключили настоящий Договор о нижеследующем
Реквизиты в договоре с ООО
Лицензиар | Лицензиат |
{MyCompanyRequisiteRqCompanyName} ИНН {MyCompanyRequisiteRqInn}, КПП {MyCompanyRequisiteRqKpp}, Адрес: {MyCompanyRequisiteRegisteredAddressText}, Р/с {MyCompanyBankDetailRqAccNum} {MyCompanyBankDetailRqBankName} БИК {MyCompanyBankDetailRqBik} Корр.счет {MyCompanyBankDetailRqCorAccNum} тел.: {MyCompanyPhone} | {RequisiteName} ИНН {CompanyRequisiteRqInn}, КПП {CompanyRequisiteRqKpp}, Адрес:{CompanyRequisiteRegisteredAddressText} Р/с {CompanyBankDetailRqAccNum} {CompanyBankDetailRqBankName} БИК {CompanyBankDetailRqBik} Корр.счет {CompanyBankDetailRqCorAccNum} тел.: {ClientPhone}
|
_________________________ /{MyCompanyRequisiteRqDirector~Format=#LAST_NAME# #NAME_SHORT# #SECOND_NAME_SHORT#}/ М.П. | _______________/{ContactFormattedName~Format=#LAST_NAME# #NAME_SHORT# #SECOND_NAME_SHORT#}/ М.П. |
Реквизиты в договоре с ИП
Лицензиар | Лицензиат |
{MyCompanyRequisiteRqCompanyName} ИНН {MyCompanyRequisiteRqInn}, КПП {MyCompanyRequisiteRqKpp}, Адрес: {MyCompanyRequisiteRegisteredAddressText}, Р/с {MyCompanyBankDetailRqAccNum} {MyCompanyBankDetailRqBankName} БИК {MyCompanyBankDetailRqBik} Корр.счет {MyCompanyBankDetailRqCorAccNum} тел.: {MyCompanyPhone} | {RequisiteName} ИНН {CompanyRequisiteRqInn}, Адрес:{CompanyRequisiteRegisteredAddressText} Р/с {CompanyBankDetailRqAccNum} {CompanyBankDetailRqBankName} БИК {CompanyBankDetailRqBik} Корр.счет {CompanyBankDetailRqCorAccNum} тел.: {ClientPhone}
|
_________________________ /{MyCompanyRequisiteRqDirector~Format=#LAST_NAME# #NAME_SHORT# #SECOND_NAME_SHORT#}/ М.П. | _______________/{RequisiteName}/ М.П. |
Обработчик для коробки, который заполняет поля в предложении для шаблона КП
Есть поля-константы, которые должны периодически заполняться менеджером по качеству. Например, "количество внедренных проектов". Данные поля используются в нескольких видах КП. Править вручную все шаблоны не хочется. |
тут как кастомизировать генерацию документов https://dev.1c-bitrix.ru/api_d7/bitrix/documentgenerator/customization.php |
- Сделала нужные поля в Предложении, указала их в шаблонах
- Сделала предложение-шаблон с заполненными данными полями.
- Завела глобальную переменную в БП с указанием ID данного предложения-шаблона
- Сделала БП с php-кодом, которая при создании Предложения запускает функцию FillingCP,
- Сделала фукнцию FillingCP в init.php, которая проставляет в новом предложении значения из предложения-шаблона
function FillingCP($id,$idSample){ if(!empty($id)&& !empty($idSample) && ($id !=$idSample) && CModule::IncludeModule('crm')){ $arFilter = array( "ID"=>$idSample, //выбираем определенную сделку по ID "CHECK_PERMISSIONS"=>"N" //не проверять права доступа текущего пользователя ); $arSelect = array( "ID", "UF_CRM_QUOTE_1634559317377", // постоянных клиентов "UF_CRM_QUOTE_1634559336425", //возраст компании "UF_CRM_QUOTE_1634559363042", //количество сертификатов "UF_CRM_QUOTE_1634559439169",//количество специалистов компании "UF_CRM_QUOTE_1634562568132",//положительных отзывов "UF_CRM_QUOTE_1634567328573",//внедренных решений ); $res = CCrmQuote::GetList(Array(), $arFilter,false,false, $arSelect); if($arQuote = $res->Fetch()){ unset($arQuote["ID"]); $quote = new CCrmQuote(false); $arOptions = array("CURRENT_USER"=> 1); //из под кого обновляем $upRes = $quote->Update($id, $arQuote, true, true, $arOptions); } } } |