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

07.09.22

Разработка - Механизмы типовых конфигураций

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

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

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

1) Итак:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1291    PROSTO-1C    0    

17

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1389    Vidz    0    

10

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    977    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4221    Serg2000mr    32    

105

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    956    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    811    tango    5    

4

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

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

08.04.2024    1087    tango    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vasvas05 27 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
ivangrant; user660224_laa; alexfps79; sm.artem; D_e_X_T_e_R; +5 Ответить
2. D_e_X_T_e_R 575 13.07.18 16:36 Сейчас в теме
(1)Спасибо за информацию.
3. kraynev-navi 678 16.07.18 08:34 Сейчас в теме
При использовании кода в коде не забываем писать тесты на проверку работоспособности. Неоднократно наблюдал использование функций из БСП в скриптах ДО приводили к неработоспособности целых бизнес-процессов.

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

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

после слова "ответственный " лишняя скобка.

И еще,где я могу обучалку по подобным скриптам для автозаполнения,или может быть,готовые скрипты подобные этим?
D_e_X_T_e_R; +1 Ответить
10. user1507562 11.12.20 14:37 Сейчас в теме
Спасибо за статью. А если в 1с в договоре есть табличная часть, ее можно с помощью скрипта поместить в файл ворд?
11. D_e_X_T_e_R 575 11.12.20 19:18 Сейчас в теме
(10)Честно говоря, не пробовал, но не вижу причин, почему может не получиться.
12. graphbuh 255 26.02.21 14:34 Сейчас в теме
Кто нибудь знает как скопировать (перенести) скрипты одного файла для другого файла. Если скриптов, допустим, больше 20, заниматься копи пастом дело утомительное. (команды скопировать файл в видах документов нет).
13. Sardukar 58 09.04.21 08:49 Сейчас в теме
А вот я столкнулся с тем, что при перемещении полей в файле и сохранении скрипты исчезают. Пока еще не понял как это побороть.
14. nikvik79 27.05.21 18:41 Сейчас в теме
(13) Переносить нужно -> Вырезать/Вставить . При копировании в самом деле слетает.
15. Suslik_Johns 26.08.22 09:30 Сейчас в теме
Эмулятор скриптов - ссылка неактивна... есть рабочая ссылка?
16. Suslik_Johns 26.08.22 09:31 Сейчас в теме
За статью - спасибище!)
17. Flipp 06.09.22 09:48 Сейчас в теме
РезультатОбработки = СтрДоверенность; //
Не поняла, а как вы сюда результат запроса положили и что такое за переменная стрДоверенность.
Программа ругается на запросы в шаблоне, а без них никак.
D_e_X_T_e_R; +1 Ответить
18. D_e_X_T_e_R 575 07.09.22 10:17 Сейчас в теме
(17)Скорее всего ошибка, по логике там должно быть РезультатОбработки = Результат.СвязанныйДокумент;
19. Alex_BLR 9 07.11.22 17:57 Сейчас в теме
Как скриптами (как будут выглядеть) вывести данные утверждения (ФИО, Дата утверждения, Комментарий утверждения), статус выводится стандартными средствами.
20. Al-X 07.06.23 10:53 Сейчас в теме
Добрый день !
Подскажите, а можно управлять колонтитулами? Мне требуется подставить реквизит в колонтитул word-документа. Но не получается. Все поля заполнения в колонтитуле не работают.
22. WWWolfy 131 14.09.23 10:23 Сейчас в теме
(20) в Колонтитулах надо пользоваться заменой текста
21. пользователь 19.07.23 09:41
Сообщение было скрыто модератором.
...
23. user1780973 20.09.23 11:31 Сейчас в теме
(13) Создайте отдельно роль и администратора под этот роль с нужными правами Аминистрирование и все. а у остальных снять галочку на эту позиции
24. Alex_BLR 9 29.02.24 12:38 Сейчас в теме
Добрый день, подскажите как должен выглядеть скрипт склонения ФИО адресата, если адресатом выступает женщина.

К примеру фамилия Ляшук, а мой скрипт выдает "Ляшуку".
Прикрепленные файлы:
25. D_e_X_T_e_R 575 29.02.24 13:09 Сейчас в теме
(24) Хороший вопрос. Интересная фамилия. Дело в том, что писал статью давно, сейчас уже не помню штатные возможности склонения 1С. Но в любом случае, если штатных возможностей не хватает, тогда можно использовать сервис склонения морфер, насколько я помню его можно интегрировать в 1С.
Оставьте свое сообщение