Содержание:
В программе 1С Документооборот встроено достаточно большое количество типовых автоподстановок.
Автоподстановки в программе 1С Документооборот
Но на этапе доработок иногда возникает необходимость добавить свои "автоподстановки". Например, в процессе согласования должен участвовать еще какой-нибудь сотрудник. В данной статье будет подробно описано, как решить эту задачу в конфигурации 1С:Документооборот.
1. Постановка проблемы
У предприятия сложная структура подчинения и для эффективности процесса согласования необходимо, чтобы тот или иной документ согласовывал не только руководитель подразделения, но и руководитель направления. Для этого у "Внутреннего документа" добавили дополнительный реквизит документа – Руководитель направления. Но также необходимо добавить и автоподстановку "Руководитель направления". Значение этой "автоподстановки" должны получаться из дополнительного реквизита документа "Руководитель направления".
Добавление дополнительного реквизита документа
2. Решение задачи в 1С:Документооборот
Для разработки в программной части 1С:Документооборот и добавления этой автоподстановки мы создадим расширение "ДополнительныеАвтоподстановки".
Создание расширения в 1С 8 Документооборот
Теперь необходимо описать механизм получения значения нашей автоподстановки. Для этого захватываем в расширение общий модуль "ШаблоныБизнесПроцессовПереопределяемый". Добавляем в него функцию, в которой описываем алгоритм получения автоподстановки.
// Получает руководителя направления из дополнительного значения дополнительного реквизита "Руководитель направления". // // Параметры: // ДокументОбъект - СправочникОбъект.ВнутреннийДокумент, // СправочникОбъект.ВходящийДокумент, // СправочникОбъект.ИсходящийДокумент - создаваемый документ. // // Возвращаемое значение: // СправочникСсылка.Пользователи. // Функция ДАП_РуководительНаправления(ДокументОбъект) Экспорт Если ДокументОбъект.Предметы.Количество()> 0 тогда Предмет = ДокументОбъект.Предметы[0]. Предмет; Если ТипЗнч(Предмет) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВнутренниеДокументыДополнительныеРеквизиты.Значение КАК Значение |ИЗ | Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты |ГДЕ | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &Ссылка | И ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Наименование = ""Руководитель направления"""; Запрос.УстановитьПараметр("Ссылка", Предмет.Ссылка); ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.Значение; КонецЕсли; КонецЕсли; КонецЕсли; Возврат Справочники.Пользователи.ПустаяСсылка();
КонецФункции |
Вызов новой автоподстановки также прописываем в общем модуле "ШаблоныБизнесПроцессовПереопределяемый". Для этого в 1С 8.3 Документооборот аннотацией "Вместо" перехватываем функцию "ПолучитьСписокДоступныхФункций".
&Вместо("ПолучитьСписокДоступныхФункций") Функция ДАППолучитьСписокДоступныхФункций() ДоступныеФункции = ПродолжитьВызов();
ДоступныеФункции.Добавить("ШаблоныБизнесПроцессовПереопределяемый.ДАП_РуководительНаправления(Объект)", НСтр("ru = 'Руководитель направления'")); Возврат ДоступныеФункции; КонецФункции |
С программной частью все готово!
Теперь необходимо зайти в пользовательском режиме работы в 1С:Документооборот.
Открываем выбор автоподстановок и видим, что добавленная автоподстановка в списке не появилась.
Чтобы она появилась в списке, необходимо щелкнуть по нему правой клавишей мышки и выбрать "Обновить автоподстановки". После этого наша автоподстановка подтянется сразу же.
Как обновить автоподстановки в 1С 8 Документооборот?
Специалист компании «Кодерлайн»
Максим Федоров