powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / как получить _значение_ (текст) ссылки? и т.д.
4 сообщений из 4, страница 1 из 1
как получить _значение_ (текст) ссылки? и т.д.
    #34978722
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос 1: Пытаюсь логгировать процесс выгрузки из внешней бухии в 1С.
в табличку с полем "ref_1C" - для хранения ключа выгруженной в 1С записи. (т.е. не кода, который пользователь может и поменять, а именно строки - идентификатора записи).

если я пишу скажем:
Код: plaintext
ПытатьсяЛоигровать(dbe,"ORBASE", rst.Collect("Code"), "Справочники.ФизическиеЛица", ФЛ.Ссылка,ФЛ.Код);


то при записи в поле внешней таблички я поимею значение поля "Имя" (умолчательное для справочник.ссылка физ-лиц), а совсем таки не строку-значение ссылки:

(код логировки примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Процедура Лоигровать(dbe,аксТабла, аксКод, С_объект, С_Ссылка , С_Код) 	
	
	rstLog.Seek ("=",аксТабла, аксКод, С_объект, С_Ссылка , С_Код);
	IF rstLog.NoMatch THEN
		rstLog.AddNew();
		    rstLog.Collect["table_access"] = аксТабла;
			rstLog.Collect["id_access"] = аксКод;
			rstLog.Collect["table_1C"] = С_объект;
			rstLog.Collect["ref_1C"] = С_Ссылка;
			rstLog.Collect["code_1C"] = С_Код;			
		rstLog.Update();
	else
		rstLog.Edit();
			rstLog.Collect["date_update"] = ТекущаяДата();
		rstLog.Update();
	ENDIF;
КонецПроцедуры // Лоигровать()
где rstLog задан реквизитом (неопределенного типа) формы обработки

Вопрос 2: как выяснит причину ошибки в строке
Код: plaintext
rstLog.Seek ("=",аксТабла, аксКод, С_объект, С_Ссылка , С_Код);
попытка получить ошибки DbEngine-а не приводят к результату

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Процедура ПытатьсяЛоигровать(dbe,аксТабла, аксКод, С_объект, С_Ссылка , С_Код)
	Попытка
		//Сообщить(rstLog.Index);
		Сообщить(аксТабла + " | " + аксКод + " | " + С_объект + " | " + С_Ссылка + " | " + С_Код);
		Лоигровать(dbe,аксТабла, аксКод, С_объект, С_Ссылка , С_Код) ;
	Исключение
		Сообщить("Не удалось Логировать " + ИнформацияОбОшибке().Описание + " " + ИнформацияОбОшибке().Причина) ;
		Попытка
			Для каждого err Из dbe.Errors Цикл
				Сообщить(err.Description);			
			КонецЦикла; 
			
		Исключение
			Сообщить("Не удалось Сообщить dbe.Errors(0).Description " + ИнформацияОбОшибке().Описание + " " + ИнформацияОбОшибке().Причина) ;
		КонецПопытки; 
	КонецПопытки;	
КонецПроцедуры // ПытатьсяЛоигровать()

Сообщение получаю примерно такое:
авторНе удалось Логировать Ошибка при вызове метода контекста (Seek): Произошла исключительная ситуация (0x80020003) ИнформацияОбОшибке
а ошибок dbe.Errors попросту нет

как вообще вытянуть ошибки внешнего приложения?
...
Рейтинг: 0 / 0
как получить _значение_ (текст) ссылки? и т.д.
    #34978732
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assa как вообще вытянуть ошибки внешнего приложения?простите, внешнего , т.е не родного 1С объекта, имелось ввиду
...
Рейтинг: 0 / 0
как получить _значение_ (текст) ссылки? и т.д.
    #34978779
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 1-й кажецо:
Код: plaintext
ФЛ.Ссылка.УникальныйИдентификатор();
я прав?

а вот 2-й - интересно
...
Рейтинг: 0 / 0
как получить _значение_ (текст) ссылки? и т.д.
    #34979060
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. ФЛ.Ссылка.УникальныйИдентификатор();
возвращает таки кажется совсем не значение из поля _idrref табличечки контрагентов. ну да бог с ним - есть возможность хоть так установить соответсвие, и ладушки.

2. как ловить причину ошибок так и не понял. проблема оказалась в типах данных. извратнулся через неявное приведение к строке так:

Код: plaintext
1.
2.
3.
rstLog.Seek ("=",аксТабла, аксКод, С_объект, ("" + С_Ссылка) , С_Код);
.... 
//rstLog["rf_1C"] = С_Ссылка;
rstLog["rf_1C"] = "" + С_Ссылка;

где С_Ссылка имеете тип GUID
(изменение типа поля в самой табле на GUID не спасло от).
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / как получить _значение_ (текст) ссылки? и т.д.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]