Как из формы обработки открыть форму документа и установить текущую строку в ТЧ

1. graphbuh 255 06.10.18 15:37 Сейчас в теме
Всем привет!
Кто сталкивался с вопросом,
Как из формы обработки управляемого приложения (ЗУП 3.1) открыть форму документа (Измененение штатного расписания) и установить текущую строку равную нужному значению
Пока не работает. Не могу понять где ошибка
Вариант 1
ФормаДокумента=Элемент.ТекущиеДанные.Регистратор.получитьФорму();	
	
МассивПозиций=ФормаДокумента.Объект.Позиции.НайтиСтроки(Новый Структура ("Позиция", ТекущаяПозиция));
Если МассивПозиций.Количество() <> 0  Тогда

	ФормаДокумента.Элементы.Позиции.ТекущаяСтрока = МассивПозиций[0].ПолучитьИдентификатор();
 
 КонецЕсли;

Показать

Вариант 2



СтандартнаяОбработка=Ложь;
ТочкаОстанова=1;     
	
	ТочкаОстанова=1;  
	П = Новый Структура;
	Отбор = Новый Структура;
	Отбор.Вставить("Позиция", ТекущаяПозиция);
	П.Вставить("Отбор", Отбор);
	
	ПараметрыОткрытия = Новый Структура;
	
	ПоследнееПодходящееИзменение = ПоследнийПодходящийДокументИзменения(ОтборОрганизация);
	Если ПоследнееПодходящееИзменение = Неопределено Тогда
		
		ЗначенияЗаполнения = Новый Структура;
		Если ЗначениеЗаполнено(ОтборОрганизация) Тогда
			ЗначенияЗаполнения.Вставить("Организация", ОтборОрганизация);
		КонецЕсли;
		
		ПараметрыОткрытия.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения);
		
	Иначе       
		ПараметрыОткрытия.Вставить("Ключ", ПоследнееПодходящееИзменение);
		Позиция
	КонецЕсли;
	УправлениеШтатнымРасписаниемФормы.УстановитьСтрокуТекущейПозиции();
	УстановитьСтрокуТекущейПозиции(Форма, ПутьКДанным, ИмяТаблицыФормы, ИмяРеквизитаПозиция) Экспорт
	
	
	ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("РежимВыбора", Истина);
	ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
	ПараметрыВыбора.Вставить("РазрешитьВыборКорня", Ложь);
	ПараметрыВыбора.Вставить("ТекущаяСтрока", ТекущаяПозиция);
	
	
	ПараметрыОткрытия.Вставить("ПараметрыВыбора", ПараметрыВыбора);
	ПараметрыОткрытия.Вставить("ТекущаяСтрока", ТекущаяПозиция);
	
	ПараметрыОткрытия.Вставить("Ключ", Элемент.ТекущиеДанные.Регистратор);
	ПараметрыОткрытия.Вставить("Отбор", Отбор);
	
	
	ФормаДокумента=	ОткрытьФорму("Документ.ИзменениеШтатногоРасписания.ФормаОбъекта", ПараметрыОткрытия, ЭтаФорма);
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. independ 1527 07.10.18 21:29 Сейчас в теме
(7) Проверил, да действительно тип ДанныеФормыКоллекция,
Процедура ОткрытьДокумент(Команда)
	ПараметрыФормы=Новый Структура;
	ПараметрыФормы.Вставить("Ключ",Документ1);
	ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	МассивПозиций=ФормаДокумента.Объект.Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки)); 
	ФормаДокумента.Элементы.Товары.ТекущаяСтрока=МассивПозиций[0].ПолучитьИдентификатор();
КонецПроцедуры

Показать
Bas_ERP_UX; Nuuq; +2 Ответить
3. independ 1527 07.10.18 13:06 Сейчас в теме
(1) Примерно так
&НаКлиенте
Процедура ОткрытьДокумент(Команда)
	ПараметрыФормы=Новый Структура;
	ПараметрыФормы.Вставить("Ключ",Документ1);
	ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	Товары=ФормаДокумента.Объект.Товары;
	НужнаяСтрока=ПолучитьСтроку(Товары,НомерСтроки);
	ФормаДокумента.Элементы.Товары.ТекущаяСтрока=НужнаяСтрока;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСтроку(Товары,НомерСтроки)
	МассивПозиций=Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки)); 
	Возврат МассивПозиций[0].ПолучитьИдентификатор();
КонецФункции
Показать
Bas_ERP_UX; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. independ 1527 07.10.18 13:06 Сейчас в теме
(1) Примерно так
&НаКлиенте
Процедура ОткрытьДокумент(Команда)
	ПараметрыФормы=Новый Структура;
	ПараметрыФормы.Вставить("Ключ",Документ1);
	ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	Товары=ФормаДокумента.Объект.Товары;
	НужнаяСтрока=ПолучитьСтроку(Товары,НомерСтроки);
	ФормаДокумента.Элементы.Товары.ТекущаяСтрока=НужнаяСтрока;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСтроку(Товары,НомерСтроки)
	МассивПозиций=Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки)); 
	Возврат МассивПозиций[0].ПолучитьИдентификатор();
КонецФункции
Показать
Bas_ERP_UX; +1 Ответить
4. Крококот 07.10.18 14:08 Сейчас в теме
(3) Вызов сервера лишний. НайтиСтроки доступно на клиенте как метод ДанныхФормыКоллекция.
5. independ 1527 07.10.18 14:38 Сейчас в теме
(4) Не думаю, здесь используется табличная часть Объект.Товары
7. Крококот 07.10.18 19:06 Сейчас в теме
(5) Работа ведется с ДанныеФормыКоллекция, а не с ТабличнойЧастью, т.к. получена была эта коллекция из свойств формы.
Товары=ФормаДокумента.Объект.Товары;

В форме нет коллекции ТабличнаяЧасть, есть только ДанныеФормыКоллекция.
8. independ 1527 07.10.18 21:29 Сейчас в теме
(7) Проверил, да действительно тип ДанныеФормыКоллекция,
Процедура ОткрытьДокумент(Команда)
	ПараметрыФормы=Новый Структура;
	ПараметрыФормы.Вставить("Ключ",Документ1);
	ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	МассивПозиций=ФормаДокумента.Объект.Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки)); 
	ФормаДокумента.Элементы.Товары.ТекущаяСтрока=МассивПозиций[0].ПолучитьИдентификатор();
КонецПроцедуры

Показать
Bas_ERP_UX; Nuuq; +2 Ответить
6. Xershi 1490 07.10.18 15:21 Сейчас в теме
(1) какого конкретно документа? Записанного?
Добавлять строку нужно или там уже есть строки и нужно курсор тыкнуть?
2. Крококот 07.10.18 11:09 Сейчас в теме
Вариант 1:
1. У ссылки нет метода "ПолучитьФорму". Это метод глобального контекста.
2. Не вызывается метод глобального контекста "ОткрытьФорму".
3. Сначала надо открыть форму, а потом установить текущую строку таблицы формы. В обратном порядке текущая строка не устанавливается.
9. graphbuh 255 07.10.18 23:05 Сейчас в теме
Cпасибо, коллеги!
// попробовал решение 3 (independ) - помогло.
10. graphbuh 255 07.10.18 23:08 Сейчас в теме
Оставьте свое сообщение

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