1С Документооборот. Перенос файла из задачи в документ
Нередко возникает ситуация, когда пользователи вкладывают файлы не в карточку документа, а в карточку задачи. При этом файл становится доступным только пользователям в рамках этапа процесса. Остальные пользователи такой файл не видят
Для переноса файла из вспомогательного в основной можно использовать дополнительный обработчик бизнес событий
Выбираем событие «Выполнение задачи» и используем код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Текст = "ВЫБРАТЬ | ЗадачаИсполнителяПредметы.Ссылка КАК Ссылка, | ЗадачаИсполнителяПредметы.Предмет КАК Предмет, | ЗадачаИсполнителяПредметы.РольПредмета КАК РольПредмета, | ТИПЗНАЧЕНИЯ(ЗадачаИсполнителяПредметы.Предмет) КАК Тип |ИЗ | Задача.ЗадачаИсполнителя.Предметы КАК ЗадачаИсполнителяПредметы |ГДЕ | ЗадачаИсполнителяПредметы.Ссылка = &Ссылка"; Запрос = Новый Запрос(Текст); Запрос.УстановитьПараметр("Ссылка", Событие.Источник); Выгрузка = Запрос.Выполнить().Выгрузить(); Если Выгрузка.Количество() > 1 тогда СтруктураПоискаДокумента = Новый Структура; СтруктураПоискаДокумента.Вставить("РольПредмета", Перечисления.РолиПредметов.Основной); СтруктураПоискаДокумента.Вставить("Тип", Тип("СправочникСсылка.ВнутренниеДокументы")); МассивНайденныхСтрок = Выгрузка.НайтиСтроки(СтруктураПоискаДокумента); Если МассивНайденныхСтрок.Количество()>0 Тогда Документ = МассивНайденныхСтрок[0].Предмет; ТЗ1 = Новый ТаблицаЗначений; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("РольПредмета", Перечисления.РолиПредметов.Вспомогательный); ПараметрыОтбора.Вставить("Тип", Тип("СправочникСсылка.Файлы")); ТЗ1 = Выгрузка.Скопировать(ПараметрыОтбора); Для Каждого Строка из ТЗ1 Цикл ФайлОбъект = Строка.Предмет.ПолучитьОбъект(); ФайлОбъект.ВладелецФайла = Документ; ФайлОбъект.Записать(); КонецЦикла; КонецЕсли; КонецЕсли; |

Комментарии закрыты