Коротко о скриптах в конфигурации 1С:Документооборот

Публикация № 866335

Разработка - Практика программирования

Краткая информация о том, как писать скрипты в конфигурации 1С:Документооборот.

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

Я громко и долго спрашивал гугл, чтобы он выдал хоть какую-нибудь информацию о том, как это делать, но все было тщетно. Далее я нашел книгу по конфигурации, но и там было все очень поверхностно. В итоге мне помогли две вещи:

1) Моя тема на Инфостарте, где я задал вопрос и меня наставили на истинный путь.

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

2) Очень помогла обработка "Эмулятор скриптов". Прям жизнь облегчила и помогла понять, как все это работает.

Взять ее можно тут.

 

Ну что, вводная часть прошла, переходим к практике.

Итак задача стояла следующая:

1) Подставить в форму договора ответственного в родительном падеже

2) Так же подставить его должность в родительном падеже

3) Ну и основание доверенности, которое нужно было взять из связанного с договором документа.

 

Итак реализация:

Заходим в конфигурацию в режиме 1С Документооборот в режиме предприятия. Далее идем в раздел "НСИ", выбираем виды документов и выбираем документ, для которого у вас есть шаблон договора в формате Word. Мой пример на документе договор поставки, поэтому захожу в него и вижу такую картину:

Справа от шаблона есть кнопочка "открыть". Нажимаем.

На вкладке реквизиты, платформа уже сама показывает реквизиты, которые можно вставить в шаблон. То есть отметив галочками нужные и нажав готово, у нас открывается шаблон, где в самом верху появляются отмеченные ранее поля для заполнения. Они выделены серым цветом.(При печати и отправке этот цвет не отображается).

Расставляем параметры в нужные места в документе. Как-то так:

Все бы ничего, но нет нужных мне полей. То есть я могу вытащить ответственного, но он будет в именительном падеже. А вот связанного документа и должности здесь нет совсем.

Вот тут-то и приходят на помощь скрипты.

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

Должность есть в карточке пользователя, а связанный документ находится на вкладке "связи" в договоре.

Теперь пришло время прописать скрипты и вот тут самое интересное, все это можно писать точно также будто мы пишем в конфигураторе, с одним маленьким НО: нужно использовать конструкцию "Файл.ВладелецФайла", тем самым мы будем обращаться к владельцу шаблона, то есть документу, откуда шаблон будет формировать заполненный договор.

Вот какими скриптами я решил поставленную задачу:

1) Итак:

//Вытащить связь с доком
//Конкретно под доверенность
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|    СвязиДокументов.СвязанныйДокумент
|ИЗ
|    РегистрСведений.СвязиДокументов КАК СвязиДокументов
|ГДЕ
|    СвязиДокументов.Документ = &Документ";

Запрос.УстановитьПараметр("Документ", Файл.ВладелецФайла); //Файл.ВладелецФайла - ссылка на договор

Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий();

РезультатОбработки = СтрДоверенность;  // РезультатОбработки это как раз переменная, из которой и будет подставляться значение в параметр.

2) А вот тут, что мне особенно понравилось. В конфигурации, в общем модуле есть функция склонения и в скрипте можно к ней обратиться.

//Скрипт склонения 

Результат = "";
Ответственный = Строка(Файл.ВладелецФайла.Ответственный); //Файл.ВладелецФайла.Ответственный - ссылка на ответственного из документа.
Склонение = ФизическиеЛица.Просклонять(Ответственный), 2, Результат); 
РезультатОбработки = Результат;

3) Аналогичным способом используем функцию из общего модуля для того чтобы получить должность пользователя(ответственного).

//Должность
Результат = "";
Ответсвтенный = Файл.ВладелецФайла.Ответственный;
Должность = Строка(РаботаСПользователями.ПолучитьДолжность(Ответственный));
СклДолжность = ФизическиеЛица.Просклонять(Должность, 2, Результат);
РезультатОбработки = Результат;

И вот он результат:

Вот так все просто. Но шел я к этому в течении нескольких часов. Единственное чего еще хотелось бы, так это вызов конструктора запросов в форме написания скриптов, но это уже мои придирки))).

Еще раз скажу, что мне очень помогла обработка "Эмулятор скриптов". Она работает примерно, как консоль запросов, то есть мы вставляем или пишем в нее наш скрипт и она сразу показывает какое значение получится в результате выполнения скрипта.

Благодаря форумчанам, выкладываю ссылку на ресурсы, где можно почитать подробнее о данном механизме:

Информация с ИТС

Официальная группа в facebook, где можно задать вопросы разработчикам

 

Очень надеюсь, что вам, тем кто до сюда дочитали и не уснули, очень поможет данная информация и сэкономит часы жизни и мыслетопливо. 

Живите свободно, но продуктивно.

Спасибо за внимание.

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. MSK_Step 20 13.07.18 16:29 Сейчас в теме
(0)тут много полезного написано про документооборот и как там работать. На инфостате мало кто знаком с этой конфигурацией.

https://its.1c.ru/db/doccorp21#content:766:1:issogl3_%D0%B0%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BF%D0%BE%D0%­BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0­%BE%D0%BD%D0%BE%D0%B2_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_o­dt_txt_html_htm

тут оф группа https://www.facebook.com/groups/1C.DOC8
alexfps79; sm.artem; D_e_X_T_e_R; +3 Ответить
2. D_e_X_T_e_R 13.07.18 16:36 Сейчас в теме
(1)Спасибо за информацию.
3. kraynev-navi 461 16.07.18 08:34 Сейчас в теме
При использовании кода в коде не забываем писать тесты на проверку работоспособности. Неоднократно наблюдал использование функций из БСП в скриптах ДО приводили к неработоспособности целых бизнес-процессов.

Возможно, неплохим вариантом явилось бы написание отдельных функций и вызов их в одну строку:
ПросклонятьОтветственногоВДоверенности(Параметры)

Но тогда теряется "прелесть" внесения изменений в функционал без изменения конфигурации ))
4. acsent 1149 17.07.18 15:29 Сейчас в теме
По мне так все эти скрипты лучше в расширения выносить
Так хоть отладка будет работать
5. D_e_X_T_e_R 17.07.18 16:09 Сейчас в теме
(4)В плане отладки да, но цель статьи была показать, как писать именно во встроенном механизме.
Для отладки можно использовать еще обработку эмулятор скриптов. В статье об этом тоже упомянуто.
6. acsent 1149 17.07.18 17:40 Сейчас в теме
(5) ну так текст скриптов не меняется, просто хранится в расширении.
Еще плюс - это Хранилище/Гит
7. andrei.k 12.02.20 13:34 Сейчас в теме
Спасибо за статью. Но совсем кратко. И только та информация, которая гуляет по интернету. Есть другой способ использования автозаполняемых файлов, который почему-то редко кто рассматривает. Пост надо дополнять ))
8. D_e_X_T_e_R 515 12.02.20 13:55 Сейчас в теме
(7) Спасибо вам за отзыв. Приму у сведению.
Оставьте свое сообщение

См. также

Эмулятор скриптов в 1С:Документооборот Промо

Документооборот и делопроизводство Инструментарий разработчика Документооборот и делопроизводство v8 ДО Платные (руб)

В 1С:Документообороте можно использовать программный код 1С в пользовательском режиме (не в конфигураторе). Однако если в конфигураторе есть отладчик, то в пользовательском режиме протестировать скрипт достаточно сложно. Внешняя обработка Эмулятор скриптов позволяет вывести результаты скрипта и проверить работу алгоритма на разных документах.

1000 руб.

13.12.2017    13222    91    0    

Отключение создания задачи ознакомления для бизнес-процесса "Согласование" в 1С: Документооборот

Практика программирования Документооборот и делопроизводство v8 v8::Бизнес-процессы ДО Абонемент ($m)

В данной публикации я хочу поделиться расширением, с помощью которого можно отключить создание задачи ознакомления для бизнес-процесса "Согласование" в 1С: Документооборот.

1 стартмани

30.11.2019    4240    6    pavelpribytkin96    4    

1С: Документооборот. Роли, использующие объекты адресации. Конфигурация остается типовой (используется расширение)

Информационная безопасность v8 ДО Абонемент ($m)

Расширение функционала документооборота. Реализована возможность использования ролей с объектами адресации. Конфигурация остается типовой (используется расширение)

5 стартмани

10.01.2019    7347    15    sulig    21    

Видеокурс-самоучитель "1С:Документооборот - ГУРУ" для самостоятельного внедрения

Пользователю системы Документооборот и делопроизводство v8 ДО Платные (руб)

Самый детальный и самый полный самоучитель по программе 1С:Документооборот, в котором Вы научитесь правильно работать, настраивать, администрировать и внедрять конфигурацию 1С:Документооборот. Все уроки курса построены на последовательном заполнении пустой базы 1С:Документооборот КОРП в клиент-серверном варианте.

89000 руб.

30.10.2018    21007    8    0    

Перенос документов и процессов между двумя базами 1С:Документооборота Промо

Обработка документов Перенос данных из 1C8 в 1C8 Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Платные (руб)

Обработка по переносу документов поможет перенести документы и процессы из одной базы 1С:Документооборот в другую. Версии двух баз должны совпадать, а релизы конфигураций 1С:Документооборот могут быть различными. Главное, чтобы была синхронизирована НСИ.

21000 руб.

09.06.2016    20249    8    4    

Вывод всей истории в задаче комплексного процесса

Практика программирования v8::Бизнес-процессы ДО УУ Бесплатно (free)

В статье описывается, какие изменения нужно сделать, чтобы в задаче комплексного процесса выводилась вся история (по всем процессам), а не только история текущего процесса.

08.08.2018    6299    0    E_Babaylova    7    

Печать pdf документа со штампом ЭЦП

Печатные формы документов Документооборот и делопроизводство Документооборот и делопроизводство v8 v8::УФ ДО Абонемент ($m)

Печать pdf файла, прикрепленного к внутреннему документу, подписанному ЭЦП, с установкой отметки о подписании.

1 стартмани

24.05.2018    14272    94    App0st0l    14    

Нанесение штампа на PDF файл при регистрации (входящий номер и дата)

Практика программирования v8 ДО Бесплатно (free)

Данный код реализует возможность автоматического нанесения штампа на PDF файл при регистрации (входящий номер и дата).

14.05.2018    14075    0    aabogachev    39    

Ограничения запуска процессов в 1С:Документооборот

Обработка документов Обработка справочников v8 ДО Платные (руб)

Расширение "Ограничение запуска процессов" позволяет для разных групп пользователей убрать не нужные типы процессов для запуска для разных видов документов.

21000 руб.

03.04.2017    10883    33    0    

Управление договорами в 1С:Документооборот

Управление бизнес-процессами (BPM) Документооборот и делопроизводство Пользователю системы Бухгалтерский учет Документооборот и делопроизводство v8 ДО УУ Бесплатно (free)

В 1С:Документооборот в релизах 2.1.7 и 2.1.8 концепция учета договоров продолжила свое развитие (появились стороны договора). Это повлияло и на бизнес-процессы (теперь вместо процесса Утверждение надо пользоваться процессом Подписание для договоров). Рассмотрим основные моменты, на которые надо обратить внимание при внедрении управления договорами в 1С:Документооборот.

24.01.2017    33833    0    vlush78    0    

Блокировка повторного запуска комплексного процесса в 1С: Документооборот 2

Администрирование данных 1С Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Абонемент ($m)

Острой проблемой при работе документооборота стал повторный запуск комплексного процесса. Пользователи несколько раз  запускали один и тот же комплексный процесс по документу, не убедившись, что этот же процесс уже запущен. В результате наступил хаос, все возмущались и недоумевали, почему один и тот же документ приходил на согласование и исполнение несколько раз. 

2 стартмани

04.10.2016    19915    73    zabaluev    25    

Права доступа в 1С:Документооборот 2.1

Информационная безопасность Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    71096    0    vlush78    0    

Новое в 1С:Документооборот ред. 2.1

Пользователю системы Управленческий учет (прочее) Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Бесплатно (free)

Фирма 1С не стоит на месте и продолжает радовать нас своими новыми версиями конфигурации 1С:Документооборот. В конце мая 2016 года вышла новая редакция 2.1, которая содержит как принципиально новые возможности, так и улучшение старых функций. В данной статье будут рассмотрены отличия конфигурации 1С:Документооборот редакции 2.1 по сравнению с редакцией 2.0.

15.06.2016    32278    0    vlush78    7    

Нагрузочное тестирование 1С:Документооборот

Производительность и оптимизация (HighLoad) Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

Перед запуском 1С:Документооборот для средних и крупных внедрений крайне желательно провести нагрузочное тестирование, чтобы проверить корректность и скорость работы системы электронного документооборота в условиях максимальной нагрузки. В данной статье пойдет речь о том, как провести нагрузочное тестирование в 1С:Документооборот без использования 1С:КИП.

28.12.2015    20898    0    vlush78    1