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

26.02.21

Функциональные - Документооборот и делопроизводство (СЭД)

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Перенос присоединенных файлов в документооборот при бесшовной интеграции:
.cfe 5,99Kb
114
114 Скачать бесплатно

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

А эти файлы нужны для принятия решения по согласованию нашими сотрудниками.

Для решения этой задачи были внесены изменения в процедуру модуля менеджера справочника ПравилаИнтеграциис1сДокументооборотом

ЗаполнитьПечатныеФормы

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

Сейчас это все работает на связке ERP 2.4.13.123 и ДО 2.1.27.1 , платформа 8.3.18.1208.

Ограничение по общему размеру присоединенных файлов сделано из-за ограничений веб-сервера. 

В расширении программный код, который приведен в публикации

См. также

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    108547    121    5    

96

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106905    313    173    

326

Документооборот и делопроизводство (СЭД) Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Продукт "Апрель Софт: Бухгалтерия позаказного производства, ред. 3.0" предназначен для удобного и оперативного управления процессами производства, отгрузок и снабжения в производственных компаниях. Программный продукт открывает новые функциональные возможности для ведения документооборота.

11400 руб.

18.02.2016    22958    1    1    

5

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30270    35    49    

71

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    45653    65    59    

79

Печатные формы Документооборот и делопроизводство (СЭД) Учет документов Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Управленческий учет Платные (руб)

Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.

2000 руб.

05.09.2017    92530    66    98    

100

Документооборот и делопроизводство (СЭД) Роли и права Системный администратор Платформа 1С v8.3 1С:Документооборот Управленческий учет Платные (руб)

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

3000 руб.

23.10.2015    63607    113    25    

127
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. xKEEPERx 3 03.03.21 16:29 Сейчас в теме
Здравствуйте. А после присоединения возможно ли удалять эти файлы из ЕРП?
2. ВикторП 350 03.03.21 17:08 Сейчас в теме
3. Capitullo 28 30.03.21 12:32 Сейчас в теме
А если файл был изменен со стороны ERP, в ДО он не изменится? Создаются полные копии файлов в двух базах но связи между ними нет?
4. ВикторП 350 30.03.21 13:32 Сейчас в теме
Код Вы же видите, этого нет, файлы передаются для запуска бизнес- процесса на стороне ДО с присоединенными файлами.
5. JBoy 2 31.08.21 07:55 Сейчас в теме
Возникла проблема увеличения размера базы (сужу по размеру dt) c 4-5 ГБ разрослась до 22 ГБ. Файлы в ERP хранятся в томах на диске (не в базе). Никак не могу найти причину этого, что надо почистить
6. ВикторП 350 31.08.21 09:13 Сейчас в теме
Присоединенные файлы тут ни при чем
7. JBoy 2 31.08.21 09:24 Сейчас в теме
тогда в чем может быть дело? рост базы связываю с включением этой доработки. Сейчас отключил, буду наблюдать
8. ВикторП 350 31.08.21 12:43 Сейчас в теме
Смотрите по таблицам, может банально версионирование
9. JBoy 2 31.08.21 13:55 Сейчас в теме
не может. объем хранимых версий объектов всего 0.07 Мб. за сутки обьем дт увеличился на 600 Мб. При загрузке выгруженной дт вылетает ошибка
Прикрепленные файлы:
10. JBoy 2 03.09.21 08:23 Сейчас в теме
Вот результаты наблюдений. выгрузки 27.08 и 30.08 доработка была включена, 31.08 в обед ее выключил( закомментировал )1.09 и 3.09 выгрузки базы уже без работающей доработки. Осталось разобраться что за мусор в базе, как его удалить и что поправить в коде, ибо доработка очень нужная
Прикрепленные файлы:
11. JBoy 2 09.09.21 08:25 Сейчас в теме
Разобрался с мусором - накопилось много записей регистра ОчередьСообщенийВ1СДокументооборот. Удалял проблемные, потихоньку вся очередь очистилась. Размер базы стал нормальный. Но вскоре возникла другая проблема - регламентное задание по обмену с документооборотом завершается с ошибкой:
{Расширение_ER Справочник.ПравилаИнтеграцииС1СДокументооборотом.МодульМенеджера(32)}: Ошибка при вызове конструктора (ДвоичныеДанные)
по причине:

по причине:
Файл не обнаружен '/tmp/v8_xPBdof_4cf.tmp'
12. ВикторП 350 09.09.21 09:04 Сейчас в теме
Я сразу написал, что присоединенные файлы тут ни при чем ;)
13. JBoy 2 09.09.21 09:19 Сейчас в теме
(12)отчасти. У регистра ОчередьСообщенийВ1СДокументооборот есть ресурс Данные, тип ХранилищеЗначений Есть смутное подозрение что именно туда и попадают данные присоединенных файлов при передаче в ДО
14. JBoy 2 09.09.21 09:21 Сейчас в теме
Баг из (11) тоже пофиксил - в присоединенных файлах обнаружился мусор, немного доработал код
Если ДанныеФайла <> Неопределено Тогда
ДанныеФайла.Записать(ИмяВременногоФайла);
Иначе
Продолжить; //Файл кривой, переходим к следующему
КонецЕсли;
15. ВикторП 350 09.09.21 09:26 Сейчас в теме
Да, это хорошо. У себя тоже изменю
16. UgoChaka 14.09.21 17:32 Сейчас в теме
А обратно из документооборота можно пригнать файл после завершения процесса?
18. UgoChaka 15.09.21 14:11 Сейчас в теме
это сообщение не сюда и оно не удаляется...
17. ВикторП 350 14.09.21 18:03 Сейчас в теме
19. UgoChaka 15.09.21 14:13 Сейчас в теме
20. UgoChaka 21.09.21 12:31 Сейчас в теме
(17) Спасибо, уже не актуально. Придумал более удобный способ редактировать один файл и в ERP и в Документообороте
21. user1668811 23.09.21 09:57 Сейчас в теме
(20) Поделитесь? Тоже пытаюсь решить эту проблему в КА, не совсем устраивает вариант дублирования файлов в разных базах
24. UgoChaka 28.01.22 10:44 Сейчас в теме
(21) Кароче. В ERP делаем хранение файлов в ДО. Соответственно файлы к документу(ну или что там) добавляем через вкладку Документооборот. Теперь файл в ДО. Это значит раз. Если прикрепить теперь этот файл к объекту ДО как файл, то будет вторая копия, а это исключает совместную работу с ним. Поэтому (а файл у нас, напомню, в ДО уже) нужно добавлять связь. Это два. Файл будет на вкладке "Связи" (я просто переименовал в "Файлы", ибо пользователи такие пользователи, а ничего другого там не предполагается) и теперь и ДО и ERP смотрят на один объект. При изменении будет меняться и там и там. Вот такая схема через то самое место. 1С без работы не оставит.
Связь добавляем программно при создании объекта ДО или где нравится, в ДО для данного объекта в настройках связи нужно добавить связь с типом "Содержит ссылку на" и ссылка на "Файл".
d4rkmesa; TigerS74; vit00lya; user1668811; +4 Ответить
22. M_I_V_91 19.01.22 22:04 Сейчас в теме
Спасибо, чуток подогнал под свою буху, но в целом БСП та же, так что стала норм, сэкономил несколько часов работы, высплюсь хоть)))
23. ВикторП 350 20.01.22 09:38 Сейчас в теме
Я рад, что помог. Потом мне кто-то поможет )
25. user1175436 26 09.02.22 14:27 Сейчас в теме
Добрый день, коллеги!

возможно подскажите как массово указать соответствия документов из 1С БП внутренним документам в 1С ДО ?
вручную делать долго, как обработкой/ в каком месте в коде 1С можно покопать?
26. colinsn 10.03.22 15:44 Сейчас в теме
Добрый день. Использовали этот код. Файлы успешно передаются из ЕРП в ДО. Но столкнулись с проблемой. Если пользователи после обмена удаляют присоединенные файлы в ЕРП и добавляют новые, то в документообороте файлы не помечаются на удаление, но добавляются новые. Подскажите, как можно передавать отметку удаления файла?
27. Zircool 297 04.10.23 23:26 Сейчас в теме
На релизе ERP 2.5.12.99 перестала работать функция. Решается проблема следующим образом. Добавлены 2 процедуры
Процедура _нц_ПрисоединитьФайлыИзДокумента(Источник, Форма)
	
	Если ТипЗнч(Источник) = Тип("ДокументСсылка.ЗаявкаНаРасходованиеДенежныхСредств") Тогда 
		МассивФайловЛокальный = РаботаСФайламиСлужебный.ПрисоединенныеФайлыКОбъекту(Источник, Истина);
			Для Каждого ПрисоединенныйФайл Из МассивФайловЛокальный Цикл
				Если ПрисоединенныйФайл.Размер > 0 Тогда   
					
						СтрокаФайлов = Форма.Файлы.Добавить();  
						СтрокаФайлов.АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл.Ссылка, Ложь),Форма.УникальныйИдентификатор);
						СтрокаФайлов.Наименование = ПрисоединенныйФайл.Наименование;
						СтрокаФайлов.Расширение = ПрисоединенныйФайл.Расширение;
						СтрокаФайлов.ИндексКартинки =
							ИнтеграцияС1СДокументооборотБазоваяФункциональность.ИндексПиктограммыФайла(
								ПрисоединенныйФайл.Расширение);
						СтрокаФайлов.ДатаСоздания = ТекущаяДатаСеанса();
						СтрокаФайлов.ДатаМодификацииУниверсальная = ТекущаяДатаСеанса();
						СтрокаФайлов.Размер = ПрисоединенныйФайл.Размер;
						СтрокаФайлов.НомерКартинкиПодписанЗашифрован = -1;  									
				КонецЕсли;
			КонецЦикла;
	КонецЕсли;	
	
КонецПроцедуры  

//Используется при запуске процесса
Функция _нц_ПрисоединитьФайлыИзДокументаПоПравилу(Источник,КонтрольОтправкиФайлов,ТолькоОбновление,ИдентификаторФормы = Неопределено) 
	
	Результат = Новый Массив;

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

					
				Файл = Новый Файл(ИмяВременногоФайла);
				
				ТекущийФайл = ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиентСер­вер.ДанныеФайла(
					ПрисоединенныйФайл.Наименование,
					Неопределено,
					"DMFile",
					ПрисоединенныйФайл.Расширение,
					Неопределено);
				ТекущийФайл.Размер = Файл.Размер();
				ТекущийФайл.ДатаМодификации = Файл.ПолучитьВремяИзменения();
				ТекущийФайл.ДатаМодификацииУниверсальная = Файл.ПолучитьУниверсальноеВремяИзменения();
				
				ПараметрыСозданияФайла =
					ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиентСер­вер.НовыеПараметрыСозданияФайла(ТекущийФайл);
				ПараметрыСозданияФайла.АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(
					Новый ДвоичныеДанные(ИмяВременногоФайла),
					ИдентификаторФормы);
				ПараметрыСозданияФайла.Владелец = Источник;

				Результат.Добавить(ПараметрыСозданияФайла);
				
				Файл = Неопределено;
				УдалитьФайлы(ИмяВременногоФайла);	
					
	
			КонецЕсли;
		КонецЦикла;
	КонецЕсли; 
	
	Возврат Результат;
	
КонецФункции

Показать


Первая процедура добавляется в конце процедуры ЗаполнитьФормуОбъектаДОПоПравилу, вторая в конце процедуры ЗаполнитьСтруктуруРеквизитовОбъектаДОПоПравилу
vit00lya; +1 Ответить
28. ВикторП 350 05.10.23 09:42 Сейчас в теме
29. Christina_Nosik 10.01.24 16:30 Сейчас в теме
Коллеги, привет!

Читаю ИТС:
Команда «ИнтеграцияС1СДокументооборотПрисоединенныеФайлы»
Тип параметра этой команды определяет, для каких объектов интегрируемой конфигурации будет доступен список присоединенных файлов, хранящихся в «1С:Документообороте». Добавьте нужные объекты метаданных в состав типов параметра команды, и в их панели навигации появится команда Файлы

Делаю:
У меня:
Версия БИД - 3.0.2.5
Интеграция ERP 2.5 - ДО 3.0

Ищем в интегрируемой системе общую команду "ИнтеграцияС1СДокументооборотПрисоединенныеФайлы" и корректируем тип параметра, указываем документ/справочник, который хотим заинтегрировать в части файлов.
Вуаля! Все получилось.
При этой реализации файлы добавляются и хранятся на стороне Документооборота.
30. progersan 6 24.04.24 19:38 Сейчас в теме
Всем привет ! Апну тему! )))
может у кого есть опыт как включить правильно интеграцию бесшовную, чтобы видно было файлы в БП 3 из СЭД 2 ?
Есть константы вроде "Использовать присоединенные файлы докуемнтооборота" - это включил. Может что-то еще ?
31. user1013153 18.11.24 10:37 Сейчас в теме
Добрый день.
Надо файлы хранить на стороне ЕРП , т к они должны быть доступны большому количеству пользователей,1С:Предприятие 8.3 (8.3.24.1548),С:ERP Управление предприятием 2 (207) (2.5.17.134) (http://v8.1c.ru/erp/).
Документооборот 1С:Предприятие 8.3 (8.3.24.1548),Документооборот 8 КОРП, редакция 2.1 (548) (2.1.33.11) (http://v8.1c.ru/doc8).
Присоединенные файлы со стороны ЕРП не видны в Документообороте. Веб-сервера нет.
Оставьте свое сообщение