Как из формы обработки открыть форму документа и установить текущую строку в ТЧ
Всем привет!
Кто сталкивался с вопросом,
Как из формы обработки управляемого приложения (ЗУП 3.1) открыть форму документа (Измененение штатного расписания) и установить текущую строку равную нужному значению
Пока не работает. Не могу понять где ошибка
Вариант 1
Вариант 2
Кто сталкивался с вопросом,
Как из формы обработки управляемого приложения (ЗУП 3.1) открыть форму документа (Измененение штатного расписания) и установить текущую строку равную нужному значению
Пока не работает. Не могу понять где ошибка
Вариант 1
ФормаДокумента=Элемент.ТекущиеДанные.Регистратор.получитьФорму();
МассивПозиций=ФормаДокумента.Объект.Позиции.НайтиСтроки(Новый Структура ("Позиция", ТекущаяПозиция));
Если МассивПозиций.Количество() <> 0 Тогда
ФормаДокумента.Элементы.Позиции.ТекущаяСтрока = МассивПозиций[0].ПолучитьИдентификатор();
КонецЕсли;
ПоказатьВариант 2
СтандартнаяОбработка=Ложь;
ТочкаОстанова=1;
ТочкаОстанова=1;
П = Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Позиция", ТекущаяПозиция);
П.Вставить("Отбор", Отбор);
ПараметрыОткрытия = Новый Структура;
ПоследнееПодходящееИзменение = ПоследнийПодходящийДокументИзменения(ОтборОрганизация);
Если ПоследнееПодходящееИзменение = Неопределено Тогда
ЗначенияЗаполнения = Новый Структура;
Если ЗначениеЗаполнено(ОтборОрганизация) Тогда
ЗначенияЗаполнения.Вставить("Организация", ОтборОрганизация);
КонецЕсли;
ПараметрыОткрытия.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения);
Иначе
ПараметрыОткрытия.Вставить("Ключ", ПоследнееПодходящееИзменение);
Позиция
КонецЕсли;
УправлениеШтатнымРасписаниемФормы.УстановитьСтрокуТекущейПозиции();
УстановитьСтрокуТекущейПозиции(Форма, ПутьКДанным, ИмяТаблицыФормы, ИмяРеквизитаПозиция) Экспорт
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("РежимВыбора", Истина);
ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
ПараметрыВыбора.Вставить("РазрешитьВыборКорня", Ложь);
ПараметрыВыбора.Вставить("ТекущаяСтрока", ТекущаяПозиция);
ПараметрыОткрытия.Вставить("ПараметрыВыбора", ПараметрыВыбора);
ПараметрыОткрытия.Вставить("ТекущаяСтрока", ТекущаяПозиция);
ПараметрыОткрытия.Вставить("Ключ", Элемент.ТекущиеДанные.Регистратор);
ПараметрыОткрытия.Вставить("Отбор", Отбор);
ФормаДокумента= ОткрытьФорму("Документ.ИзменениеШтатногоРасписания.ФормаОбъекта", ПараметрыОткрытия, ЭтаФорма);
ПоказатьПо теме из базы знаний
- Анализ цепочки документов в 1С:ERP
- Новичок новичку: как открыть документ и установить курсор на нужной строке табличной части (обычные формы)
- Универсальный редактор табличных частей документов РеСольДо
- Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"
- Как отредактировать документ перед печатью в 1С. Советы пользователям
Найденные решения
(7) Проверил, да действительно тип ДанныеФормыКоллекция,
Процедура ОткрытьДокумент(Команда)
ПараметрыФормы=Новый Структура;
ПараметрыФормы.Вставить("Ключ",Документ1);
ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
МассивПозиций=ФормаДокумента.Объект.Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки));
ФормаДокумента.Элементы.Товары.ТекущаяСтрока=МассивПозиций[0].ПолучитьИдентификатор();
КонецПроцедуры
Показать
(1) Примерно так
&НаКлиенте
Процедура ОткрытьДокумент(Команда)
ПараметрыФормы=Новый Структура;
ПараметрыФормы.Вставить("Ключ",Документ1);
ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Товары=ФормаДокумента.Объект.Товары;
НужнаяСтрока=ПолучитьСтроку(Товары,НомерСтроки);
ФормаДокумента.Элементы.Товары.ТекущаяСтрока=НужнаяСтрока;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСтроку(Товары,НомерСтроки)
МассивПозиций=Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки));
Возврат МассивПозиций[0].ПолучитьИдентификатор();
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Примерно так
&НаКлиенте
Процедура ОткрытьДокумент(Команда)
ПараметрыФормы=Новый Структура;
ПараметрыФормы.Вставить("Ключ",Документ1);
ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Товары=ФормаДокумента.Объект.Товары;
НужнаяСтрока=ПолучитьСтроку(Товары,НомерСтроки);
ФормаДокумента.Элементы.Товары.ТекущаяСтрока=НужнаяСтрока;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСтроку(Товары,НомерСтроки)
МассивПозиций=Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки));
Возврат МассивПозиций[0].ПолучитьИдентификатор();
КонецФункции
Показать
(7) Проверил, да действительно тип ДанныеФормыКоллекция,
Процедура ОткрытьДокумент(Команда)
ПараметрыФормы=Новый Структура;
ПараметрыФормы.Вставить("Ключ",Документ1);
ФормаДокумента=ОткрытьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
МассивПозиций=ФормаДокумента.Объект.Товары.НайтиСтроки(Новый Структура("НомерСтроки", НомерСтроки));
ФормаДокумента.Элементы.Товары.ТекущаяСтрока=МассивПозиций[0].ПолучитьИдентификатор();
КонецПроцедуры
Показать
Вариант 1:
1. У ссылки нет метода "ПолучитьФорму". Это метод глобального контекста.
2. Не вызывается метод глобального контекста "ОткрытьФорму".
3. Сначала надо открыть форму, а потом установить текущую строку таблицы формы. В обратном порядке текущая строка не устанавливается.
1. У ссылки нет метода "ПолучитьФорму". Это метод глобального контекста.
2. Не вызывается метод глобального контекста "ОткрытьФорму".
3. Сначала надо открыть форму, а потом установить текущую строку таблицы формы. В обратном порядке текущая строка не устанавливается.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот