+7 (495) 748-01-13 ещё 5 филиалов
Для включения возможности добавления материалов, авторизуйтесь.
Перейти к авторизации

Пример пользовательской функции в шаблонах документов MS Word

 

Пример пользовательской функции в шаблонах документов MS Word


При необходимости можно настроить более сложное формирование данных, которое будет выводиться в шаблон документа в формате MS Word. Для этого необходимо создать и использовать пользовательскую функцию при настройке шаблона документа. Пользовательская функция - это код, написанный на встроенном языке программирования 1С: Предприятие, возвращающий значение переменной «Результат».

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

Пример файла шаблона MS Word с применением пользовательской функции:

Шаблон коммерческого предложения с ПФ.png

Особенным образом нужно настроить параметр документа «Подпись». В колонке «Функция» нужно выбрать тип данных «Пользовательские функции».

Пример настройки использования пользовательской функции для параметра документа:

Пример настройки шаблона и пользовательской функции.png

Откроется справочник «Пользовательские функции», из которого можно выбрать нужную пользовательскую функцию или создать ее, нажатием на кнопку «Создать» (подробнее о пользовательской функции).

В открывшемся окне создания элемента справочника «Пользовательские функции» нужно заполнить реквизиты:

Название реквизита

Значение реквизита

Наименование

Подпись КП

Текст функции

Менеджер = Данные.Назначение.Менеджер;
Подразделение = Менеджер.Подразделение;
Организация = Данные.Назначение.Организация;
Запрос = новый Запрос("ВЫБРАТЬ
| ЕСТЬNULL(ПользователиКонтактнаяИнформация.Представление, """") КАК Телефон,
| ЕСТЬNULL(ПользователиКонтактнаяИнформация1.Представление, """") КАК Почта
|ИЗ
| Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация
| ПОЛНОЕ СОЕДИНЕНИЕ
Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация1
| ПО (ИСТИНА)
|ГДЕ
| ПользователиКонтактнаяИнформация.Ссылка = &Ссылка
| И ПользователиКонтактнаяИнформация.Тип = &ТипТелефон
| И ПользователиКонтактнаяИнформация.Вид = &ВидТелефон
| И ПользователиКонтактнаяИнформация1.Ссылка = &Ссылка
| И ПользователиКонтактнаяИнформация1.Тип = &ТипПочта
| И ПользователиКонтактнаяИнформация1.Вид = &ВидПочта"
);
Запрос.УстановитьПараметр("ТипТелефон", Перечисления.ТипыКонтактнойИнформации.Телефон);
Запрос.УстановитьПараметр("ТипПочта", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
Запрос.УстановитьПараметр("ВидТелефон", Справочники.ВидыКонтактнойИнформации.ТелефонПользователя);
Запрос.УстановитьПараметр("ВидПочта", Справочники.ВидыКонтактнойИнформации.EmailПользователя);
Запрос.УстановитьПараметр("Ссылка", Менеджер);
Выборка = Запрос.Выполнить().Выбрать();
ТелефонМенеджера ="";
ПочтаМенеджера = "";
Если Выборка.Следующий() Тогда
ТелефонМенеджера = Выборка.Телефон;
ПочтаМенеджера = Выборка.Почта;
КонецЕсли;

Запрос = новый Запрос("ВЫБРАТЬ
| ЕСТЬNULL(ОрганизацииКонтактнаяИнформация.Представление, """") КАК Телефон,
| ЕСТЬNULL(ОрганизацииКонтактнаяИнформация1.Представление, """") КАК Почта
|ИЗ
| Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
| ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация1
| ПО (ИСТИНА)
|ГДЕ
| ОрганизацииКонтактнаяИнформация.Ссылка = &Ссылка
| И ОрганизацииКонтактнаяИнформация.Тип = &ТипТелефон
| И ОрганизацииКонтактнаяИнформация.Вид = &ВидТелефон
| И ОрганизацииКонтактнаяИнформация1.Ссылка = &Ссылка
| И ОрганизацииКонтактнаяИнформация1.Тип = &ТипПочта
| И ОрганизацииКонтактнаяИнформация1.Вид = &ВидПочта"
);
Запрос.УстановитьПараметр("ТипТелефон", Перечисления.ТипыКонтактнойИнформации.Телефон);
Запрос.УстановитьПараметр("ТипПочта", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
Запрос.УстановитьПараметр("ВидТелефон", Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации);
Запрос.УстановитьПараметр("ВидПочта", Справочники.ВидыКонтактнойИнформации.EmailОрганизации);
Запрос.УстановитьПараметр("Ссылка", Организация);
Выборка = Запрос.Выполнить().Выбрать();
ТелефонОрганизации = "";
ПочтаОрганизации = "";
Если Выборка.Следующий() Тогда
ТелефонОрганизации = Выборка.Телефон;
ПочтаОрганизации = Выборка.Почта;
КонецЕсли;

Текст = "С уважением, " + Символ(13);

Текст = Текст + ?(ЗначениеЗаполнено(Менеджер), Строка(Менеджер) + Символ(13),"");
Текст = Текст + ?(ЗначениеЗаполнено(Подразделение), Строка(Подразделение) + Символ(13),"");
Текст = Текст + ?(ЗначениеЗаполнено(Организация), Строка(Организация)+ Символ(13),"");
Текст = Текст + ?(ЗначениеЗаполнено(ТелефонОрганизации), "Тел.: "+ ТелефонОрганизации + Символ(13),"");
Текст = Текст + ?(ЗначениеЗаполнено(ТелефонМенеджера), "Моб.: " + ТелефонМенеджера + Символ(13),"");
Текст = Текст + ?(ЗначениеЗаполнено(ПочтаМенеджера), "E-mail: " + ПочтаМенеджера,""); // + ", " + Символ(13),"");
//Текст = Текст + ?(ЗначениеЗаполнено(ПочтаОрганизации),Строка(ПочтаОрганизации),"");

Результат = СокрЛП(Текст);



Создание и выбор пользовательской функции:

Создание и выбор пользовательской функции.png

После того, как реквизиты были заполнены, необходимо записать элемент справочника «Пользовательские функции» и выбрать его в списке. Колонка «Функция» параметра документа «Подпись» будет заполнена названием пользовательской функции «Подпись КП».

После сделанных настроек нужно записать элемент справочника «Шаблоны документов MS Word». В системе в документе «Коммерческое предложение клиенту» при нажатии на кнопку «Печать – Печать по шаблону (CRM)» буде показан список настроенных шаблонов. Для печати требуется выбрать нужный шаблон.


Выбор настроенного шаблона MS Word в документе «Коммерческое предложение»:

Выбор макета шаблона.png


Пример печати шаблона с применением пользовательской функции:

Пример печати шаблона с применением пользовательской функции.png

Заявка на подбор и запуск CRM

Мы поможем подобрать CRM для вашего бизнеса

Я даю Согласие на обработку персональных данных в соответствии с Политикой Конфиденциальности