Обращение к структуре в модуле объекта из разных форм этого объекта. Решение задачи.
Всем привет! Помогите разобраться с использованием структур.
Вот код в модуле объекта (внешняя обработка).
Вот код в модуле ФормыПоиска этой обработки. Код ищет в справочнике объект и создает элемент структуры, где КлючСтруктуры - наименование объекта, а Значение - ссылка на этот элемент справочника.
Вот код ОсновнойФормы этой обработки. На нём кнопка открытия ФормыПоиска и ещё процедура, которая ищет элемент структуры по названию ключа и передаёт значение этого элемента в отдельное поле.
Всё это должно работать так - открывается ОсновнаяФорма, пользователь нажимает кнопку открытия ФормыПоиска, на ней наполняет элементами структуру в модуле объекта. Потом возвращается на ОсновнуюФорму, ищет в этой же структуре элемент и выводит ссылку на него в спец поле.
Проблема в следующем. Процедура на ФормеПоиска работает - заполняет элементами структуру в модуле объекта. Но как только я отрываю Основнуюформу там эта процедура уже без элементов, пустая. Помогите разобраться как так, и что делать?
Вот код в модуле объекта (внешняя обработка).
Структура1=Новый Структура;
Вот код в модуле ФормыПоиска этой обработки. Код ищет в справочнике объект и создает элемент структуры, где КлючСтруктуры - наименование объекта, а Значение - ссылка на этот элемент справочника.
&НаКлиенте
Процедура СоздатьЭлементСтруктуры(Команда)
СоздатьЭлементСтруктурыНаСервере();
КонецПроцедуры
&НаСервере
Процедура СоздатьЭлементСтруктурыНаСервере()
МаркиАвтомобилей = Справочники.МаркиАвтомобилей;
МаркаАвтомобиля = ЭтотОбъект.ВведитеМаркуАвтомобиля;
НайденнаяМарка = МаркиАвтомобилей.НайтиПоНаименованию(МаркаАвтомобиля);
Если НайденнаяМарка <> Неопределено Тогда
КлючСтруктуры1 = СтрЗаменить(НайденнаяМарка.Наименование, " ", "_");
Объект.Структура1.Вставить(КлючСтруктуры1, НайденнаяМарка);
Сообщить("Элемент добавлен в структуру!");
Иначе
Сообщить("Марка не найдена.");
КонецЕсли;
КонецПроцедуры
ПоказатьВот код ОсновнойФормы этой обработки. На нём кнопка открытия ФормыПоиска и ещё процедура, которая ищет элемент структуры по названию ключа и передаёт значение этого элемента в отдельное поле.
&НаКлиенте
Процедура ОткрытьФормуПоиска(Команда)
ОткрытьФорму("Обработка.Структура3.Форма.ФормаПоиска");
КонецПроцедуры
&НаКлиенте
Процедура ИскатьКлюч(Команда)
ИскатьКлючНаСервере();
КонецПроцедуры
&НаСервере
Процедура ИскатьКлючНаСервере()
Для Каждого ЭлСтруктуры Из Объект.Структура1 Цикл
Если ЭлСтруктуры.Ключ = ЭтотОбъект.ВведитеМарку Тогда
ЭтотОбъект.Марка = ЭлСтруктуры.Значение;
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьВсё это должно работать так - открывается ОсновнаяФорма, пользователь нажимает кнопку открытия ФормыПоиска, на ней наполняет элементами структуру в модуле объекта. Потом возвращается на ОсновнуюФорму, ищет в этой же структуре элемент и выводит ссылку на него в спец поле.
Проблема в следующем. Процедура на ФормеПоиска работает - заполняет элементами структуру в модуле объекта. Но как только я отрываю Основнуюформу там эта процедура уже без элементов, пустая. Помогите разобраться как так, и что делать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ну потому что открываете форму, но при этом не передаете параметров.
А вообще не совсем понятно чего вы хотите добиться. Форма поиска для чего нужна, в чем ее суть.
Но как только я отрываю Основнуюформу там эта процедура уже без элементов, пустая. Помогите разобраться как так, и что делать
ну потому что открываете форму, но при этом не передаете параметров.
А вообще не совсем понятно чего вы хотите добиться. Форма поиска для чего нужна, в чем ее суть.
(4) Не понимаю что вам не нравится. Я задаю вопросы, ответы на которые не могу найти сам. Получаю ответы от более опытных 1Сников и используя полученные знания потихоньку решаю задачи всё сложнее и сложнее. Это подход чем-то вас задевает? Отвечу в том же стиле:
Почему бы VmvLer не нажимать крестик вверху справа каждый раз, как ему не нравится изображение на экране?
Почему бы VmvLer не нажимать крестик вверху справа каждый раз, как ему не нравится изображение на экране?
(7) Я называю это профанация.
Вы даже не задумываетесь над четкой формулировкой задачи, любезно делегируя миссии постановки и решения задачи на живые умы. В такой картине мире - живой ум начинает туканить, при всем уважении к менторам.
Так понятно, я имею право на свою картину мира или есть всего одна в этой вселенной?
Вы даже не задумываетесь над четкой формулировкой задачи, любезно делегируя миссии постановки и решения задачи на живые умы. В такой картине мире - живой ум начинает туканить, при всем уважении к менторам.
Так понятно, я имею право на свою картину мира или есть всего одна в этой вселенной?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот