Цитата: oleg-x от 06 мар 2018, 13:03
ИсправьРезультатОбработки = Строка(Адресат.Подразделение) + " " + Адресат.Наименование;
или что за ошибка еще?
Ошибка:
Следующие реквизиты или скрипты настройки заполнения файла «Служебная записка» заданы не корректно: Скрипт «Адресат»
Побывал отдельно создать доп реквизит Адресат1 тип строка и через него опубликовать, но такая же ошибка. Без скрипта могу сформировать запрос и вывести всю необходимую информацию, а через скрипт никак не получается
Добавлено: 06 мар 2018, 13:15
У поля Адресат в документообороте есть все реквизиты, но как через скрипт это сделать
ВЫБРАТЬ
ВнутренниеДокументы.Адресат.Ссылка,
ВнутренниеДокументы.Адресат.ВерсияДанных,
ВнутренниеДокументы.Адресат.ПометкаУдаления,
ВнутренниеДокументы.Адресат.Наименование,
ВнутренниеДокументы.Адресат.Недействителен,
ВнутренниеДокументы.Адресат.Подразделение,
ВнутренниеДокументы.Адресат.ПредставлениеВДокументах,
ВнутренниеДокументы.Адресат.РазрешенныеВебСерверы,
ВнутренниеДокументы.Адресат.ФизЛицо,
ВнутренниеДокументы.Адресат.ФизическоеЛицо,
ВнутренниеДокументы.Адресат.Комментарий,
ВнутренниеДокументы.Адресат.Служебный,
ВнутренниеДокументы.Адресат.Подготовлен,
ВнутренниеДокументы.Адресат.ИдентификаторПользователяИБ,
ВнутренниеДокументы.Адресат.ПредставлениеВПереписке,
ВнутренниеДокументы.Адресат.ПредставлениеВПерепискеСРангом,
ВнутренниеДокументы.Адресат.Помещение,
ВнутренниеДокументы.Адресат.КодЯзыка,
ВнутренниеДокументы.Адресат.ИдентификаторПользователяСервиса,
ВнутренниеДокументы.Адресат.СвойстваПользователяИБ,
ВнутренниеДокументы.Адресат.Предопределенный,
ВнутренниеДокументы.Адресат.ИмяПредопределенныхДанных,
ВнутренниеДокументы.Адресат.Представление,
ВнутренниеДокументы.Адресат.ДополнительныеРеквизиты.(
Ссылка,
НомерСтроки,
Свойство,
Значение,
ТекстоваяСтрока
),
ВнутренниеДокументы.Адресат.КонтактнаяИнформация.(
Ссылка,
НомерСтроки,
Тип,
Вид,
Представление,
ЗначенияПолей,
Страна,
Регион,
Город,
АдресЭП,
ДоменноеИмяСервера,
НомерТелефона,
НомерТелефонаБезКодов,
ВидДляСписка
) КАК Адресат1
ИЗ
Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
Краткая информация о том, как писать скрипты в конфигурации 1С:Документооборот.
Приветствую вас, читающие это статью. Раз уж так вышло, что вы попали сюда, значит вас, как и меня, занесла нелегкая познакомиться-таки с конфигурацией 1С:Документооборот. И скорее всего дошло до того, что нужно написать какой-нибудь скрипт, чтобы облегчить кому-то жизнь и что-нибудь автоматизировать. Именно так случилось и со мной пару-тройку дней назад.
Я громко и долго спрашивал гугл, чтобы он выдал хоть какую-нибудь информацию о том, как это делать, но все было тщетно. Далее я нашел книгу по конфигурации, но и там было все очень поверхностно. В итоге мне помогли две вещи:
1) Моя тема на Инфостарте, где я задал вопрос и меня наставили на истинный путь.
Обсуждение оказалось довольно коротким, то есть люди знают о скриптах, но увы на форуме я больше информации не нашел, ну или плохо искал, посему решил поделиться своим личным опытом в этой статье.
2) Очень помогла обработка «Эмулятор скриптов». Прям жизнь облегчила и помогла понять, как все это работает.
Взять ее можно тут.
Ну что, вводная часть прошла, переходим к практике.
Итак задача стояла следующая:
1) Подставить в форму договора ответственного в родительном падеже
2) Так же подставить его должность в родительном падеже
3) Ну и основание доверенности, которое нужно было взять из связанного с договором документа.
По идее задача простая, если скажем реализовать такое, скажем, в бухгалтерии. Но как оказалось, в документообороте все еще проще, но давайте по порядку:
Заходим в конфигурацию в режиме предприятия. Далее идем в раздел «НСИ», выбираем виды документов и выбираем документ, для которого у вас есть шаблон договора в формате Word. Мой пример на документе договор поставки, поэтому захожу в него и вижу такую картину:
Справа от шаблона есть кнопочка «открыть». Нажимаем.
На вкладке реквизиты, платформа уже сама показывает реквизиты, которые можно вставить в шаблон. То есть отметив галочками нужные и нажав готово, у нас открывается шаблон, где в самом верху появляются отмеченные ранее поля для заполнения. Они выделены серым цветом.(При печати и отправке этот цвет не отображается).
Расставляем параметры в нужные места в документе. Как-то так:
Все бы ничего, но нет нужных мне полей. То есть я могу вытащить ответственного, но он будет в именительном падеже. А вот связанного документа и должности здесь нет совсем.
Вот тут-то и приходят на помощь скрипты.
На вкладке где отмечали реквизиты, переходим на вкладку скрипты и добавляем свои поля, после того как их заполним, снова откроется шаблон и нам нужно будет их расставить по местам.
Должность есть в карточке пользователя, а связанный документ находится на вкладке «связи» в договоре.
Теперь пришло время прописать скрипты и вот тут самое интересное, все это можно писать точно также будто мы пишем в конфигураторе, с одним маленьким НО: нужно использовать конструкцию «Файл.ВладелецФайла», тем самым мы будем обращаться к владельцу шаблона, то есть документу, откуда шаблон будет формировать заполненный договор.
Вот какими скриптами я решил поставленную задачу:
1) Итак:
//Вытащить связь с доком
//Конкретно под доверенность
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвязиДокументов.СвязанныйДокумент
|ИЗ
| РегистрСведений.СвязиДокументов КАК СвязиДокументов
|ГДЕ
| СвязиДокументов.Документ = &Документ";
Запрос.УстановитьПараметр("Документ", Файл.ВладелецФайла); //Файл.ВладелецФайла - ссылка на договор
Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий();
РезультатОбработки = СтрДоверенность; // РезультатОбработки это как раз переменная, из которой и будет подставляться значение в параметр.
2) А вот тут, что мне особенно понравилось. В конфигурации, в общем модуле есть функция склонения и в скрипте можно к ней обратиться.
//Скрипт склонения
Результат = "";
Склонение = ФизическиеЛица.Просклонять(Строка(Файл.ВладелецФайла.Ответственный), 2, Результат); //Файл.ВладелецФайла.Ответственный - ссылка на ответственного из документа.
РезультатОбработки = Результат;
3) Аналогичным способом используем функцию из общего модуля для того чтобы получить должность пользователя(ответственного).
//Должность
Результат = "";
Должность = РаботаСПользователями.ПолучитьДолжность(Файл.ВладелецФайла.Ответственный);
СклДолжность = ФизическиеЛица.Просклонять(Строка(Должность), 2, Результат);
РезультатОбработки = Результат;
И вот он результат:
Вот так все просто. Но шел я к этому в течении нескольких часов. Единственное чего еще хотелось бы, так это вызов конструктора запросов в форме написания скриптов, но это уже мои придирки))).
Еще раз скажу, что мне очень помогла обработка «Эмулятор скриптов». Она работает примерно, как консоль запросов, то есть мы вставляем или пишем в нее наш скрипт и она сразу показывает какое значение получится в результате выполнения скрипта.
Благодаря форумчанам, выкладываю ссылку на ресурсы, где можно почитать подробнее о данном механизме:
Информация с ИТС
Официальная группа в facebook, где можно задать вопросы разработчикам
Очень надеюсь, что вам, тем кто до сюда дочитали и не уснули, очень поможет данная информация и сэкономит часы жизни и мыслетопливо.
Живите свободно, но продуктивно.
Спасибо за внимание.
Современные ECM-системы (системы управления электронным документооборотом) поддерживают различные механизмы автоматизации большого числа ручных операций, что позволяет минимизировать человеческий фактор и значительно сократить количество ошибок, влияющих на скорость и качество принятия управленческих решений.
Один из таких механизмов, более всего востребованный в системах управления корпоративным контентом – автоматическое заполнение шаблонов файлов.
Что позволяет реализовать этот механизм и для чего он необходим в корпоративных СЭД?
Автоматическое заполнение шаблонов файлов (автозаполнение файлов) – это перенос текущих значений реквизитов из карточки документа в ранее определенные места в шаблоне прикрепленного файла.
Возьмем для примера шаблон бланка исходящего письма. Это очень актуально в условиях учета нескольких организаций в системе, а также при наличии большого числа контрагентов и их контактных лиц, а также жестких требований при оформлении официальных исходящих документов, особенно для переписки с государственными учреждениями и органами исполнительной власти.
Другим очень важным применением автозаполнения является механизм типовых договоров. Для использования типовых договоров, с одной стороны, необходимо наличие строго определенных условий и требований, а с другой – типовые договоры обеспечивают неизменность предопределенного и уже согласованного шаблона договора, что значительно сокращает сроки согласования таких документов, количество ошибок и непременный человеческий фактор, при этом повышая качество управленческих решений.
Настройка автозаполнения типового шаблона договора в 1С:Документооборот
Рассмотрим самый простой пример настройки и реализации автозаполнения шаблонов в документообороте. Предварительно в настройках программы включим функциональную опцию «Использовать автозаполнение шаблонов файлов» в подразделе «Настройка программы-Настройка работы с файлами».
В уже созданном шаблоне типового договора нужно перейти на вкладку «Файлы».
На данной вкладке находятся шаблоны файлов, которые автоматически добавляются в документ при его формировании из данного шаблона документа. Необходимо отметить, что у каждого вида документа может быть несколько шаблонов документов (например, каждый из шаблонов с определенным шаблоном файла), и в каждом шаблоне документа может быть несколько шаблонов файлов. В случае с договорами это может быть, например, шаблон самого договора, спецификация к нему, протокол разногласий и т.д. При этом для каждого шаблона файла существует индивидуальная настройка автозаполнения. При переходе по ссылке «Открыть в Настройке автозаполнения» открывается форма настроек.
Для корректной настройки механизма автозаполнения необходимо знать, что типовое реквизитное автозаполнение, т.е. обращение к реквизитам через точку, работает только для файлов формата *.doc. Это формат Word, используемый более ранними версиями MS Office. Основной минус при использовании данного формата файлов для автозаполнения заключается в том, что в веб-клиенте такое автозаполнение не работает.
Бесплатная
консультация
эксперта
Анна Викулина
Руководитель Центра
сопровождения 1С
Спасибо за Ваше обращение!
Специалист 1С свяжется с вами в течение 15 минут.
Более современным и универсальным форматом является *.docx. Он представляет собой специальным образом заархивированный стандартный формат XML. Для его автозаполнения используются скрипты – выражения на встроенном языке.
Пример скрипта для автозаполнения реквизита ФИО сотрудника выглядит так:
Если НЕ Файл.Пустая()
И НЕ Файл.ВладелецФайла = Неопределено И НЕ Файл.ВладелецФайла.Пустая()
И НЕ Файл.ВладелецФайла.Ссылка = Неопределено И НЕ Файл.ВладелецФайла.Ссылка.Пустая() Тогда Для Каждого ДопРеквизит Из Файл.ВладелецФайла.Ссылка.ДополнительныеРеквизиты Цикл
Если (Строка(ДопРеквизит.Свойство) = "Работник")
Или (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДопРеквизит.Свойство, "Заголовок") = "Работник") Тогда
РезультатОбработки = ДопРеквизит.Значение;
КонецЕсли;
КонецЦикла;КонецЕсли;
Для заполнения данными из карточки документа шаблон файла предварительно необходимо соответствующим образом разметить.
После разметки автозаполняемых реквизитов шаблона файла и подготовки соответствующих скриптов автозаполнения проверим полученный результат. Для этого по команде «Проверить настройку заполнения» откроем подходящий существующий документ данного вида.
Далее в шаблоне документа запрещаем изменение и удаление шаблонов файлов, чтобы быть уверенными, что будет использоваться именно этот файл шаблона договора, подготовленный и согласованный юридическим отделом и руководством компании.
Так можно настроить автозаполнение всех необходимых реквизитов в файле и подготовить типовой договор или иной документ, который в дальнейшем будет заполняться автоматически и не потребует длительного согласования большим количеством согласующих подразделений или ответственных лиц компании, минимизировав при этом человеческий фактор и возможные ошибки, а также сроки согласования таких документов.
Функционал автозаполнения шаблонов позволяет автоматизировать формирование различных видов документов, таких как договора, исходящие письма, служебные записки, приказы и др. Настройки шаблонов задаются для каждого вида документа отдельно, что позволяет сделать тонкую настройку под любые требования к файлу.
Автозаполнение файлов по шаблону способствует стандартизации документооборота в организации, а также упрощает и ускоряет работу сотрудников с типовыми формами. Рассмотрим, как работает автозаполнение документов на примере конфигурации «1С:Документооборот»
В типовой конфигурации «1С:Документооборот» присутствует функционал автозаполнения файлов из карточки документа в 1С. Этот функционал позволяет автоматически заполнить шаблон файла в формате Word данными из реквизитов карточки документа 1С.
Как настроить автозаполнение шаблонов
Возможность автозаполнения шаблонов файлов включает администратор.
Настройка и администрирование – Настройки программы – Работа с файлами – Использовать автозаполнение шаблонов файлов.
Рисунок 1 — Включение функционала автозаполнения шаблонов файлов
В ранее созданном шаблоне документа настраиваем автозаполнение. Переходим в Нормативно-справочная информация — Виды документов, выбираем из списка необходимый нам документ. Переходим на закладку Файлы и открываем настройки заполнения.
Рисунок 2 — Настройки заполнения документа
Чтобы настроить настроить автозаполнение в форме Настройка заполнения файла на закладке Реквизиты указываем, какими реквизитами карточки документа необходимо заполнять файл.
Рисунок 3 — Выбор реквизитов для автозаполнения документов
Настроить заполнение поля можно и с помощью скрипта, написанного на языке программирования 1С.
Переходим на вкладку Скрипты и добавляем необходимый нам скрипт. Использование скриптов позволяет получить любое значение как из карточки документа, так и из вложенных справочников. Кроме того, при настройке через скрипт можно указать необходимую логику заполнения.
Рисунок 4 — Добавление скриптов для автозаполнения документов
После настройки автозаполняемых реквизит можно проверить результат, для этого нажимаем кнопку Проверить настройку заполнения и выбираем документ данного вида.
Рисунок 5 — Проверка настройки автозаполнения
Последним действием мы можем запретить изменение реквизитов из шаблона и удаление файлов шаблона. Таким образом мы будем уверены в использовании именно заданного нами шаблона документа пользователями системы.
Рисунок 6 — Запрет изменения и удаления шаблонов
Таким способом можно настроить автозаполнение для множества документов организации. Автоматическое заполнение документов позволяет:
- сократить время согласования и формирования файлов;
- исключить пользовательские ошибки при вводе данных;
- контролировать соблюдение регламента.
Настройка данного функционала в конфигурациях 1С не требует проектного внедрения и может быть настроена нами в рамках технической поддержки.
Автоподстановки для документов и процессов теперь можно добавлять/изменять в пользовательском режиме. Раньше это можно было делать только через переопределяемый модуль.
Аналогичная возможность появилась и для метрик.
В справочнике Алгоритмы (меню раздела Настройка и администрирование) можно сохранять свои алгоритмы для использования в автоподстановках, настройках автозаполнения файлов и других скриптах.
Появилась единое окно Все скрипты (меню раздела Настройка и администрирование – Сервис), в котором можно посмотреть все элементы с написанным пользователем кодом: автоподстановки, метрики, условия маршрутизации, настройки автозаполнения файлов и пр.