Найти документ по УИД и открыть форму

1. user1302499 10.03.21 13:23 Сейчас в теме
Самописная конфигурация. Делаю доработку по поиску документов по штрихкоду.

Вопрос: Как можно открыть форму документа зная УИД или имея ссылку на документ? Почему то не получается(

&НаКлиенте
Процедура МТД_Команда1После(Команда)
	Документ = МТД_ВнешнееСобытиеПослеНаСервере();
	Документ.ПолучитьФорму().Открыть();
	
КонецПроцедуры

&НаСервере
Функция МТД_ВнешнееСобытиеПослеНаСервере()
			
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	МТД_ШтрихкодыДокументов.Штрихкод КАК Штрихкод,
		|	МТД_ШтрихкодыДокументов.GUID КАК GUID,
		|	МТД_ШтрихкодыДокументов.Документ КАК Документ
		|ИЗ
		|	РегистрСведений.МТД_ШтрихкодыДокументов КАК МТД_ШтрихкодыДокументов
		|ГДЕ
		|	МТД_ШтрихкодыДокументов.Штрихкод = &Штрихкод";
	Запрос.УстановитьПараметр("Штрихкод",Строка(Формат(2100013680010,"ЧГ=0")));
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Если Выборка.Следующий() Тогда
		//GUID = "Новый УникальныйИдентификатор(""" + Строка(Выборка.GUID) + """";
		//ДокПолуч="";
		//Выполнить("ДокПолуч = Документы.ЗаказНаПроизводство.ПолучитьСсылку(" + GUID + "))");
		Возврат Выборка.Документ;
		
	КонецЕсли;
	
	

КонецФункции;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 10.03.21 13:33 Сейчас в теме
(1) если есть ссылка, то так:
&НаКлиенте
Процедура МТД_Команда1После(Команда)
    Документ = МТД_ВнешнееСобытиеПослеНаСервере();
    Если Документ <> Неопределено Тогда
        ПоказатьЗначение(, Документ);
    КонецЕсли;
КонецПроцедуры
Показать
2. glek 120 10.03.21 13:26 Сейчас в теме
По указанному примеру смотреть закомменченный код? Если да, то вопрос:
Какой тип Выборка.guid?
Зачем такие сложности с выполнить?
Что вернется в случае пустого запроса?
3. user1302499 10.03.21 13:30 Сейчас в теме
(2) УникальныйИдентификатор
Нашел код в инете такой, понял что не подходит, решил просто закомментировать
Ошибка будет
5. glek 120 10.03.21 14:03 Сейчас в теме
(3)
Если УИД это guid, то код выполняется проще
Результат = Неопределено
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Попытка //или проверять тип параметра
Результат = Документы.НашДокумент.ПолучитьОбъект(Выборка.guid);
Если Результат.ПолучитьОбъект() = Неопределено Тогда
Результат = Неопределено;
КонецЕсли;
Исключение
ОНКС.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Возврат результат;
Показать


А на клиенте как указал (4)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот