Имя: Пароль:
1C
1С v8
Мутабельное значение при интеграции ЗУП и ДО
,
0 Масянька
 
20.06.24
12:29
День добрый!
Из ЗУП нужно создать и заполнить (обязательные поля) в Документообороте.
Валится с ошибкой (картинка).
Код ЗУП:
&НаСервере
Процедура СоздатьСЗ_СЗ_ЭДО()	 
	
	БазаДО = ПодключитьсяКБазе();
	
	Если (БазаДО = Неопределено) Тогда
		Возврат;
	КонецЕсли;
	
	ДокументСсылка = БазаДО.Справочники.ВнутренниеДокументы.ПолучитьСсылку();

	Если(ДокументСсылка.ПолучитьОбъект() <> Неопределено) Тогда
		Возврат;
	КонецЕсли;

	Структура = Новый Структура;
	Структура.Вставить("Ответственный",	Объект.Ответственный.Наименование);
	Структура.Вставить("Подписант", 	Объект.НЛЭ_Подписант.Наименование);
	Структура.Вставить("Подразделение", Объект.НЛЭ_Подразделение.Наименование);
	Структура.Вставить("Год", 			Год(Объект.Дата));
	
	ШаблонДокумента = БазаДО.Порт_ОбщегоНазначенияСерверПовторноеИспользование.ПолучитьПредопределенные("ШаблонВнутреннегоДокумента_СлужебнаяЗаписка");
	
	ДокументОбъект  = БазаДО.Справочники.ВнутренниеДокументы.СоздатьЭлемент();
	
	ДокументОбъект.УстановитьСсылкуНового(ДокументСсылка);
	
	БазаДО.ШаблоныДокументов.ЗаполнитьРеквизитыДокументаПоШаблону(ШаблонДокумента, ДокументОбъект);
	
	ЗаполнитьВнутреннийДокумент(БазаДО, ДокументОбъект, Структура);
	
	ДокументОбъект.ГрифыУтверждения.Добавить();

	//ВБумажномВиде 			= БазаДО.Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("В бумажном виде", Истина);	
	//ПредопределенныеДанные 	= БазаДО.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Способ отправки служебной записки на рассмотрение", Истина);	
	//БазаДО.Порт_ОбщегоНазначенияСервер.ЗаписатьДопСвойство(ДокументОбъект, ПредопределенныеДанные, ВБумажномВиде);
	
	ДокументОбъект.Записать();

Код ДО (на что ругается - дописанный (не нами) общий модуль):
Порт_ОбщегоНазначенияСервер.ПолучитьПредварительныРегистрационныйНомер(ЭтотОбъект);
Сама процедура:
#Область СобытияВнутреннегоДокумента
Процедура ПолучитьПредварительныРегистрационныйНомер(ОбъектЗаписи) Экспорт 
	
	Если ОбъектЗаписи.Порт_НеРегистрируется Или ЗначениеЗаполнено(ОбъектЗаписи.Порт_РегистрационныйНомер) Тогда
		Возврат;
	КонецЕсли;
	
	СписокДоговоров = Порт_ОбщегоНазначенияСерверПовторноеИспользование.ПолучитьПредопределенные(
		"ВидВнутреннегоДокумента_ДоговорСПокупателем,
		|ВидВнутреннегоДокумента_ДоговорСПоставщиком", "Массив");
	
	Если СписокДоговоров.Найти(ОбъектЗаписи.ВидДокумента) <> Неопределено Тогда 
		
		ОбъектЗаписи.ДатаРегистрации = ТекущаяДатаСеанса();
		
		// числовой номер
		СтруктураПараметров = НумерацияКлиентСервер.ПолучитьПараметрыНумерации(ОбъектЗаписи);
		Нумерация.СформироватьЧисловойНомерДокумента(СтруктураПараметров, ОбъектЗаписи.ЧисловойНомер);
	
		// строковый номер
		СтруктураПараметров = НумерацияКлиентСервер.ПолучитьПараметрыНумерации(ОбъектЗаписи);
	
		ОписанияОшибок = Новый СписокЗначений;
		Нумерация.СформироватьСтроковыйНомерДокумента(СтруктураПараметров, ОбъектЗаписи.РегистрационныйНомер, ОписанияОшибок);
		
		ОбъектЗаписи.Порт_РегистрационныйНомер = ОбъектЗаписи.РегистрационныйНомер;
		ОбъектЗаписи.РегистрационныйНомер = "";
		ОбъектЗаписи.ДатаРегистрации = Дата('00010101');
		
	КонецЕсли;
	
КонецПроцедуры

В ДО (код) лезть не могу (политика партии).
Как обойти?
Спасибо.
1 Масянька
 
20.06.24
12:20
Подключение - com. Нормально.
2 Garykom
 
гуру
20.06.24
12:29
(0) Что ты творишь???
В ДО же из коробки есть БИД
3 Волшебник
 
20.06.24
12:29
ПолучитьПредварительныРегистрационныйНомер - пропущена буква
4 Масянька
 
20.06.24
12:30
(2) У нас переписанная ДО!!!! (тут мат, слезы и пр.)
5 Масянька
 
20.06.24
12:31
(2) А где посмотреть?
6 Масянька
 
20.06.24
12:31
(3) Это не ко мне.
7 Garykom
 
гуру
20.06.24
12:31
(1) Скорее всего код типовых модулей в ДО не предназначен (и не тестировался) для "внешнее соединение"
8 Garykom
 
гуру
20.06.24
12:32
(4) Это замечательно
Значит кроме типовой БИД можно и свое туда добавлять
Сначала расширениями а затем в саму конфу
9 Масянька
 
20.06.24
12:32
(7) Это не типовые модули. Если (так, для чистого эксперимента) убрать эти строки - проходит, рубится на других дописанных.
10 Garykom
 
гуру
20.06.24
12:34
(8)+ ЗУП тебе надо затащить код из БИД (можно глянуть в ERP/КА ИнтеграцияС1СДокументооборот...)
В ДО это ОбработкаЗапросовXDTO...
11 Garykom
 
гуру
20.06.24
12:35
(9) Побей того кто эти "не типовые модули" ваял
Скажи начальнику что надо их поправить
12 Масянька
 
20.06.24
12:38
(10) Это подсистема? В ЗУП есть такая.
13 Масянька
 
20.06.24
12:40
+ (12) Где можно почитать про настройку?
14 Волшебник
 
20.06.24
12:42
(6) Передайте там, кому надо
15 Garykom
 
гуру
20.06.24
13:21
(12) Не сильно знаю ЗУП
Но если подсистема БИД уже есть то работать через нее самое правильное
И нафик COM/OLE
2 + 2 = 3.9999999999999999999999999999999...