Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июл 2022, 22:40

Передача строки из формы выбора в форму элемента справочника.

Автор |R|U|D|E|N, 13 июн 2011, 12:24

0 Пользователей и 1 гость просматривают эту тему.

|R|U|D|E|N

Добрый день.

В обычном приложении делал просто, а вот в управляемом не получется..

У меня есть форма выбора справочника серийных номеров. В этой форме есть поле ввода по которому осуществляется отбор. В случае если отбор не дал результата(нет такого серийника) то рядом с этим полем я разместил кнопку создать по нажатию на которую у меня открывается формаЭлемента и я очень хочу чтоб тот серийник указанный в поле отбора автоматически попадал в соответствующее поле формы Элемента. Тойсть чтоб не наберать/копировать снова серийник при необходимости его создания.

Подскажите как это можно сделать?


С уважением, Александр.

cska-fanat-kz

А как вы открываете форму нового элемента?
Запостите код...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Шурыгин Иван Сергеевич

используйте что то типо такого кода


Процедура КнопкаДобавитьНовыйНажатие(Кнопка)
Спр = Справочники.СерийныеНомера.СоздатьЭлемент();
Спр.СерийныйНомер = СерийныйНомер;
Спр.ПолучитьФорму().Открыть();
КонецПроцедуры
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

|R|U|D|E|N

Вот как у меня сейчас

&НаКлиенте
//В этой процедуре выполняется отбор
Процедура НайтиСерийник(Команда)
 
//отбор по одному полю
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.ПравоеЗначение = ИскомоеЗначение;
Отбор.Использование = Истина;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");

КонецПроцедуры

&НаКлиенте
Процедура Создать(Команда)


ФормаЭлемента = ПолучитьФорму("Справочник.СерийныеНомера.Форма.ФормаЭлемента");
ФормаЭлемента.Открыть();

КонецПроцедуры


При этом ФормаЭлемента открывается но как автоматически заполнить поле Наименование введеным ранне сирийником?


Попробовал выше преведенный код в серверной процедуре

&НаСервере
Процедура СоздатьНовый(Серийник)

Спр = Справочники.СерийныеНомера.СоздатьЭлемент();
Спр.Наименование = Серийник;
Спр.ПолучитьФорму().Открыть();


КонецПроцедуры



Вываливается вот это

{Справочник.СерийныеНомера.Форма.ФормаВыбора_Управляемая.Форма(40)}: Ошибка при вызове метода контекста (ПолучитьФорму): Интерактивные операции недоступны
   Спр.ПолучитьФорму().Открыть();
по причине:
Интерактивные операции недоступны


cska-fanat-kz

Ну правильно.
На Сервере нельзя форму показывать...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

Я пробовал

Спр = Справочники.СерийныеНомера.СоздатьЭлемент();
Спр.Наименование = Серийник;

Разместить на сервере

А вот это

Спр.ПолучитьФорму().Открыть();

уже на клиенте

Но у меня не чего не вышло..


Если не сложно, покажите  плиз как это в коде должно выглядеть? я уже все перепробовал, не хочет у меня работать...

cska-fanat-kz

Все таки 8.2 вносит определенный сумбур в головы...

Получилось например так:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
     ФормаНовойНоменклатуры = ПолучитьФорму("Справочник.Номенклатура.ФормаОбъекта");
     ФормаНовойНоменклатуры.Объект.Наименование = "Значение";
     ФормаНовойНоменклатуры.Открыть();
КонецПроцедуры

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

Ахренеть!

Спасибо всем а особенно cska-fanat-kz! Работает именно так как надо!

P.S Я бы в жизни не поверил что такой код сработает:

ФормаНовойНоменклатуры.Объект.Наименование = "Значение";

|R|U|D|E|N

Если честно, я уже около 4-х месяцев пишу только на 8.2 управляемое приложение и у меня уже в голове не укладывается как можно например прямо из формы документа обращаться к чему угодно без разделения кода на серверные и клиентские процедуры. правда, вот такие моменты как в этой теме жутко бесят))

cska-fanat-kz

Код не претендует на правильность между прочим! )
Иногда получить результат мало...

1. Форма открывается без признака модифицированности... То есть при закрытии не спрашивает о сохранении. Лень было искать что нибудь вроде
ФормаНовойНоменклатуры.Модифицированность = ИСТИНА; ;))

2. "ФормаНовойНоменклатуры.Объект.Наименование = "Значение";" нашел методом тыка.
Возможно создатель 8.2 перевернулся... в кровати (дай Бог ему здоровья!) ))


P.S. Со штукой меня! )))
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск