Автоматическое обновление файлов данными владельца в документообороте

11.10.20

Задачи пользователя - Адаптация типовых решений

Обновление данных файлов, созданных по шаблону в ДО 2.1.13.

Наверное, многие в ДО сталкивались с такой проблемой - при изменении существующего документа данные в файлах (из шаблона документа) не обновляются данными документа. Для того, чтобы обновить данные в файле, приходится нажимать кнопку "Заполнить файл данными документа" для каждого файла:

В данной статье я хочу поделиться своим способом решения данной проблемы. 

После записи на сервере я добавил свою процедуру, в которой проверяется, изменился ли документ, если есть изменения, тогда вызывается код для обновления данных файлов, созданных по шаблону:

&НаСервере
Процедура пп_ОбновитьДанныеФайлов()
    
    Если ПолучитьФункциональнуюОпцию("ИспользоватьАвтозаполнениеФайлов") Тогда
        
        Если Не Объект.Ссылка.Пустая() И Не НовыйДокумент
            И Модифицированность Тогда
            
            мРасширения = пп_ДоступныеРасширения();
            
            Для Каждого СтрокаТЗ Из Файлы Цикл
                
                Если СтрокаТЗ.Редактирует = ПользователиПустаяСсылка И
                    Не СтрокаТЗ.ПометкаУдаления И
                    мРасширения.Найти(СтрокаТЗ.Расширение) <> Неопределено И
                    СтрокаТЗ.СозданИзШаблона Тогда
                    
                    #Если НЕ ВебКлиент Тогда
                        ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(
                        Ложь,
                        СтрокаТЗ.Ссылка,
                        Истина,
                        УникальныйИдентификатор,
                        Объект.Ссылка);
                    #Иначе
                        ДанныеВыполнения = ЗаполнитьФайлДаннымиДокументаСервер(СтрокаТЗ.Ссылка);
                    #КонецЕсли
                    
                    Если Не ДанныеВыполнения.Результат Тогда
                        ВызватьИсключение(ДанныеВыполнения.Описание);
                    КонецЕсли;
                    
                КонецЕсли;
                
            КонецЦикла;
            
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры

Изменение данных проверяю через свойство формы "Модифицированность" (в моем расширении //infostart.ru/public/1183187/ изменение данных выполняется по реквизитам объекта, если хотя бы 1 реквизит шапки или табличной части был изменен, то выполняется обновление файлов, которые были созданы по шаблону). Автозаполнение поддерживается только для определенных форматов, поэтому в условии нужно дополнительно проверить расширение файла. 

Код функции с доступными расширениями:

&НаСервере
функция пп_ДоступныеРасширения()
	
	мДоступныеРасширения = Новый Массив;
	
	мДоступныеРасширения.Добавить("doc");
	мДоступныеРасширения.Добавить("docx");
	мДоступныеРасширения.Добавить("dot");
	мДоступныеРасширения.Добавить("dotx");
	мДоступныеРасширения.Добавить("txt");
	мДоступныеРасширения.Добавить("html");
	мДоступныеРасширения.Добавить("odt");
	
	Возврат мДоступныеРасширения;
	
Конецфункции

Работоспособность этого кода проверялась на форме элемента справочника "ВнутренниеДокументы". Версия конфигурации 2.1.13.28.

документооборот автозаполнение шаблонов файлов обновление данными владельца

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4374    8    4    

17

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2899    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1121    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

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

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    1937    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2023    21    progmaster    7    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lev1nson 26.11.19 17:39 Сейчас в теме
Круто! Спасибо!
pavelpribytkin96; +1 Ответить
2. ImHunter 312 27.11.19 08:46 Сейчас в теме
(0) А почему не через бизнес-события?
У меня есть предположения. Но хотелось бы получить ответ Автора.
3. pavelpribytkin96 582 27.11.19 09:12 Сейчас в теме
(2) Произошедшие бизнес-события обрабатываются регламентым заданием. Пользователи хотят сразу после изменения документа работать с обновленным файлом. Плюс в бизнес-событии будет труднее определить был ли модифицирован документ для того, чтобы не обновлять все файлы.
4. ImHunter 312 27.11.19 09:18 Сейчас в теме
(3) Ага, спасибо. Все, как я и предполагал.
pavelpribytkin96; +1 Ответить
5. user1496306 24.06.22 08:14 Сейчас в теме
добрый день. скажите, возможно ли реализовать данную обработку в виде расширения к Документообороту 2.1.30.4?
6. Slipper 03.08.22 19:21 Сейчас в теме
(5) Конечно можно. Добавьте в расширение процедуру "ПослеЗаписиНаСервере()" с инструкцией "После" и укажите вызов процедуры из поста "пп_ОбновитьДанныеФайлов()".
7. okbmikron 15.08.22 05:34 Сейчас в теме
Вот в этом куске кода

#Иначе
ДанныеВыполнения = ЗаполнитьФайлДаннымиДокументаСервер(СтрокаТЗ.Ссылка);
#КонецЕсли

упоминается функция "ЗаполнитьФайлДаннымиДокументаСервер".

Это написанная автором функция? Где можно посмотреть её описание?
8. VFrrol 04.09.22 07:07 Сейчас в теме
Спасибо. Начали работать с ДО, Поддержка бесценная.
9. Alex_BLR 7 17.03.23 08:08 Сейчас в теме
Как можно реализовать механизм "Обновление данных файлов, созданных НЕ по шаблону в ДО" ?
Оставьте свое сообщение