Обращение к структуре в модуле объекта из разных форм этого объекта. Решение задачи.

1. I_am_Alpharius 16.12.24 11:13 Сейчас в теме
Всем привет! Помогите разобраться с использованием структур.

Вот код в модуле объекта (внешняя обработка).

Структура1=Новый Структура;



Вот код в модуле ФормыПоиска этой обработки. Код ищет в справочнике объект и создает элемент структуры, где КлючСтруктуры - наименование объекта, а Значение - ссылка на этот элемент справочника.

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

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

    МаркаАвтомобиля = ЭтотОбъект.ВведитеМаркуАвтомобиля;

    НайденнаяМарка = МаркиАвтомобилей.НайтиПоНаименованию(МаркаАвтомобиля);

    Если НайденнаяМарка <> Неопределено Тогда
        КлючСтруктуры1 = СтрЗаменить(НайденнаяМарка.Наименование, " ", "_");
        
        Объект.Структура1.Вставить(КлючСтруктуры1, НайденнаяМарка);
        Сообщить("Элемент добавлен в структуру!");
    Иначе
        Сообщить("Марка не найдена.");
    КонецЕсли;
КонецПроцедуры

Показать


Вот код ОсновнойФормы этой обработки. На нём кнопка открытия ФормыПоиска и ещё процедура, которая ищет элемент структуры по названию ключа и передаёт значение этого элемента в отдельное поле.

&НаКлиенте
Процедура ОткрытьФормуПоиска(Команда)
ОткрытьФорму("Обработка.Структура3.Форма.ФормаПоиска");
КонецПроцедуры

&НаКлиенте
Процедура ИскатьКлюч(Команда)
ИскатьКлючНаСервере();
КонецПроцедуры

&НаСервере
Процедура ИскатьКлючНаСервере()
    
Для Каждого ЭлСтруктуры Из Объект.Структура1 Цикл
    Если ЭлСтруктуры.Ключ = ЭтотОбъект.ВведитеМарку Тогда
        ЭтотОбъект.Марка = ЭлСтруктуры.Значение;
        Прервать;
    КонецЕсли;
КонецЦикла;

КонецПроцедуры
Показать


Всё это должно работать так - открывается ОсновнаяФорма, пользователь нажимает кнопку открытия ФормыПоиска, на ней наполняет элементами структуру в модуле объекта. Потом возвращается на ОсновнуюФорму, ищет в этой же структуре элемент и выводит ссылку на него в спец поле.

Проблема в следующем. Процедура на ФормеПоиска работает - заполняет элементами структуру в модуле объекта. Но как только я отрываю Основнуюформу там эта процедура уже без элементов, пустая. Помогите разобраться как так, и что делать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. yispepotri 16.12.24 11:40 Сейчас в теме
(1)
Но как только я отрываю Основнуюформу там эта процедура уже без элементов, пустая. Помогите разобраться как так, и что делать


ну потому что открываете форму, но при этом не передаете параметров.

А вообще не совсем понятно чего вы хотите добиться. Форма поиска для чего нужна, в чем ее суть.
2. lefthander 16.12.24 11:39 Сейчас в теме
Не пробовали структуру помещать в хранилище а потом по адресу ее искать?
4. VmvLer 16.12.24 12:13 Сейчас в теме
Почему бы автору не платить каждому кто отвечает в его ветке?
Очевидная эксплуатация должна быть, как минимум, оплачена.
5. nomad_irk 81 16.12.24 12:18 Сейчас в теме
(4) Но на других же ресурсах, по другим ЯП, всем помогают бесплатно, даже готовые решения предлагают в виде кода...........
6. VmvLer 16.12.24 12:25 Сейчас в теме
(5) это пустая трата интеллектуального ресурса.

Помогать допустимо когда тебе оплачивают наставничество и подаваны вливаются в твою команду. Прочие варианты - это не наставничество, а туканство. Причем тукан - это наставник, а не подаван.
7. I_am_Alpharius 16.12.24 12:36 Сейчас в теме
(4) Не понимаю что вам не нравится. Я задаю вопросы, ответы на которые не могу найти сам. Получаю ответы от более опытных 1Сников и используя полученные знания потихоньку решаю задачи всё сложнее и сложнее. Это подход чем-то вас задевает? Отвечу в том же стиле:

Почему бы VmvLer не нажимать крестик вверху справа каждый раз, как ему не нравится изображение на экране?
9. VmvLer 16.12.24 13:42 Сейчас в теме
(7) Я называю это профанация.

Вы даже не задумываетесь над четкой формулировкой задачи, любезно делегируя миссии постановки и решения задачи на живые умы. В такой картине мире - живой ум начинает туканить, при всем уважении к менторам.

Так понятно, я имею право на свою картину мира или есть всего одна в этой вселенной?
8. starjevschik 16.12.24 13:20 Сейчас в теме
Найди какую-нибудь разумную статью про время жизни и доступность переменных в клиент-серверной 1с.
Если "вкрации" (с), то делай реквизит своей обработки, это самый простой путь.
Оставьте свое сообщение

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