Загрузка из 1С вложения в документ MULTIDOC

Відповісти
Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 11 вересня 2020, 16:35

Доброго дня!
Хотелось бы создать обработку для группового создания из 1С Универсальных документов (шаблон MULTIDOC).
Читаю документацию, и не могу найти, как при создании можно передать в документ вложение.
Сохранить у себя можно через GetAppendixSign(), а вот как наоборот, передать вложение в Медок?

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Inkognito » 11 вересня 2020, 17:07

AddAppendix()

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 06 листопада 2020, 11:53

Скажите пожалуйста, а поле "ID" для ИД документа в 1С у него есть?
Или только те поля, которые видны в документе?

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Inkognito » 06 листопада 2020, 12:07

1) exdocid = Строка(Документ.УникальныйИдентификатор()); //узнать ИД документа в 1С. Далее используем его в функции создания документа (и проверки статуса).
2) Передать в Медок можно любые поля, которые в конструкторе шаблона справа (т.е. не только видимые) по имени поля.

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 06 листопада 2020, 18:30

Inkognito писав:
06 листопада 2020, 12:07
1) exdocid = Строка(Документ.УникальныйИдентификатор()); //узнать ИД документа в 1С. Далее используем его в функции создания документа (и проверки статуса).
2) Передать в Медок можно любые поля, которые в конструкторе шаблона справа (т.е. не только видимые) по имени поля.
Это понятно.
Пытаюсь заполнить контрагента.

Код: Виділити все

Если ЗначениеЗаполнено(СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ)) Тогда	
			rsMain.Fields.Item("SIDE_SHORTNAME_K").Value  =  СокрЛП(Документ.Контрагент.Наименование);
			rsMain.Fields.Item("SIDE_EDRPOU_K").Value  =  СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ); 
			Сообщить(СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ));
		Иначе 
			rsMain.Fields.Item("SIDE_SHORTNAME_K").Value  =  СокрЛП(Документ.Контрагент.Наименование);
			rsMain.Fields.Item("SIDE_EDRPOU_K").Value  =  СокрЛП(СведенияОПокупателе.КодПоДРФО);
			Сообщить(СокрЛП(СведенияОПокупателе.КодПоДРФО));

		КонецЕсли;
Данные в 1С выбираются, такого контрагента в справочнике Медка по ОКПО находит, но в документе не заполняется.
Подскажите пожалуйста, что не так

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Inkognito » 07 листопада 2020, 10:19

Если в "Реестре первичных документов" в полях ЕДРПОУ/Наименование (контрагента) отображаются значения, значит передали верно, и в документе просто другие поля отображаются. А если и в "Реестре первичных документов" не отображаются данные контрагента, то это уже мистика - может метод Post() и/или Save() не вызваны в конце кода?

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 09 листопада 2020, 12:30

Вот полный код процедуры и скрин того, что заполнилось.

Код: Виділити все

Процедура Формирование_MULTIDOC (App, pd, orgId, Документ, Бланк, ИД)
	Попытка
		Doc  =  pd.OpenOrCreateDocument(orgId,  Бланк, , ,  ИД,  0);
		Попытка
			Doc.DisableScripts();
		Исключение
			Сообщить(НСТР("ru  =  'Не подключена возможность передачи данных между M.E.Doc и Вашей учетной системой. С условиями подключения можно ознакомиться в разделе «Інтеграція» в M.E.Doc'; uk  =  'Не підключено можливість передачі даних між M.E.Doc та Вашою обліковою системою. З умовами підключення можливо ознайомитись у розділі «Інтеграція» в M.E.Doc'"));
			ВызватьИсключение
		КонецПопытки;
		СведенияОПокупателе =  обПолучитьРеквизитыКонтрагента(Документ.Контрагент, Документ.Дата);
		СведенияОПоставщике =  обПолучитьРеквизитыФирмы(Документ.Фирма, Документ.Дата);
		
		
		rsMain = Doc.DataSets();     	  		  
		rsMain.Edit();              
		rsMain.Append();
		rsMain.Post();
		
		ДатаДокумента =Документ.Дата;
		rsMain.Fields.Item("DOCDATE").Value  =  ДатаДокумента;
		
		rsMain.Fields.Item("NUM").Value = ПолучитьНомерНаПечать(Документ); 
		
		rsMain.Fields.Item("FIRM_NAME").Value = СокрЛП(СведенияОПоставщике.ПолноеНаименование);
		rsMain.Fields.Item("FIRM_EDRPOU").Value  =  СокрЛП(СведенияОПоставщике.КодПоЕДРПОУ); 
		
		Если ЗначениеЗаполнено(СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ)) Тогда	
			rsMain.Fields.Item("SIDE_SHORTNAME_K").Value  =  СокрЛП(Документ.Контрагент.Наименование);
			rsMain.Fields.Item("SIDE_EDRPOU_K").Value  =  СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ); 
			Сообщить(СокрЛП(СведенияОПокупателе.КодПоЕДРПОУ));
		Иначе 
			rsMain.Fields.Item("SIDE_SHORTNAME_K").Value  =  СокрЛП(Документ.Контрагент.Наименование);
			rsMain.Fields.Item("SIDE_EDRPOU_K").Value  =  СокрЛП(СведенияОПокупателе.КодПоДРФО);
			Сообщить(СокрЛП(СведенияОПокупателе.КодПоДРФО));
			
		КонецЕсли;
		
		rsMain.Fields.Item("DOC_NAME").Value  =  "РН "+ПолучитьНомерНаПечать(Документ);
		rsMain.Post();
		Doc.Save();
		Исключение
	КонецПопытки
КонецПроцедуры

Безымянный.jpg
Безымянный.jpg (35.16 Кіб) Переглянуто 1481 раз
Затык именно с полем "Контрагент". Не заполняется ни в документе, ни в журнале

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 09 листопада 2020, 13:06

Если не заполнять поле SIDE_SHORTNAME_K, то перед открытием выгруженного документа код ОКПО виден в журнале электронных документов, потом исчезает

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 09 листопада 2020, 13:57

Да! В справочнике Медка такой контрагент есть, ручным поиском в справочнике по ОКПО находит

Олександр_Р
Повідомлень: 24
З нами з: 11 вересня 2020, 16:21

Re: Загрузка из 1С вложения в документ MULTIDOC

Повідомлення Олександр_Р » 09 листопада 2020, 14:48

Почему не выбирается из справочника по передаваемому значению? Вручную выбирается, через СОМ - нет.
Не тот тип? Принудительно назначал тип "Строка".... тоже не идет.
Не нравится длина строки? У меня восемь символов, поле - 10. Добавлял в конце два пробела, тоже нет.
Возможно, можно принудительно выбрать из справочника через BEFORE_SPR ?

Відповісти

Повернутись до “Электронний документообіг”