Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Замена значения реквизита у объектов группы в управляемом приложении

Замена значения реквизита у объектов группы в управляемом приложении
Я
   brenli
 
22.12.17 - 15:26
Доброго времени.
Вопрос  о правильности реализации.
Так как с управляемыми формами и клиент-серверным взаимодействием не часто работаю, опыта мало.

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

В диалоге модуля формы обрабатываю событие ПриИзменении  
&НаКлиенте
Процедура ЭлементПриИзменении(Элемент)
    ЗаменаЗначенийУЭлементовВгруппе(Объект.Ссылка);
КонецПроцедуры

Передаю ссылку на текущий объект в качестве параметра серверной процедуре. И уже в ней

&НаСервереБезКонтекста
Процедура ЗаменаЗначенийУЭлементовВгруппе(Объект) Экспорт
    Выборка  = Справочники.Номенклатура.Выбрать(Объект);
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;    
        Попытка
            ОбъектНом            =    Выборка.ПолучитьОбъект();
            ОбъектНом.МойРекв =  Объект.МойРекв;
            ОбъектНом.Записать();
        Исключение
            Сообщить(" Ошибка !!! Свяжитесь с разработчиком");
        КонецПопытки;    
    КонецЦикла;    
КонецПроцедуры

Вопрос заключается именно в правильности способа передачи измененного реквизита и переопределении  реквизитов элементов выборки.
 
 
   nordbox
 
1 - 22.12.17 - 15:39
а групповая обработка справочников и документов не канает?
   brenli
 
2 - 22.12.17 - 15:50
(1) Нет. Вопрос чисто практический . Хочу разобраться.

По такой методе как сделал я, работает "криво".
Первый раз запускаю обработчик события , ничего не происходит.
Второй раз запускаю, значения у дочерних элементов меняются.

Хотя уже и второй параметр добавил и передаю в него правильное значение (которое выбрано)

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    ЗаменаЗначенийУЭлементовВгруппе(Объект.Ссылка, Объект.МойРекв);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаменаЗначенийУЭлементовВгруппе(Объект, Значение) Экспорт
    Выборка  = Справочники.Номенклатура.Выбрать(Объект);
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;    
        Попытка
            ОбъектНом            =    Выборка.ПолучитьОбъект();
            ОбъектНом.МойРекв =  Объект.МойРекв;
            ОбъектНом.Записать();
        Исключение
            Сообщить(" Ошибка !!! Свяжитесь с разработчиком");
        КонецПопытки;    
    КонецЦикла;    
КонецПроцедуры

Отладчиком проверяю, значения все правильные, т.е присваивается объекту из выборки то что нужно.
Но фактически ничего не меняется. Приходится вызывать обработчик заново с тем же значением (уже измененным).
   nordbox
 
3 - 22.12.17 - 15:54
(0)>>Нужно установить значение реквизита у элементов группы, на значение реквизита взятого из родительской для этих элементов группы.

Что то я у тебя отбора не наблюдаю
   nordbox
 
4 - 22.12.17 - 15:55
НУ открыл ты выборку
ну проверил ты группу
а ну и чо?
   nordbox
 
5 - 22.12.17 - 15:58
ОбъектНом.МойРекв в природе существует?
Какой тип
И убери нфиг Попытка, понятнее будет где ошибка, а так он и при ошибке проскочит
   brenli
 
6 - 22.12.17 - 22:24
(5) ОбъектНом.МойРекв да существует, получается объект из выборки.
Тип реквизита справочник.ссылка.

Вообще я правильно с объектом работаю?
Т.е значение (новое) которое я выбрал в поле формы и которое вызвало событие я получаю так Объект.МойРекв, но это значение еще не записано в БД.
   triviumfan
 
7 - 24.12.17 - 13:55
Автор, перефразируй вопрос, покажи пример, вообще не понятно, что ты хочешь и пытаешься.
имхо у тебя проблема с пониманием механизмов или изложением мысли.
   H A D G E H O G s
 
8 - 24.12.17 - 14:02
У автора форма не обновилась после обработки
   H A D G E H O G s
 
9 - 24.12.17 - 14:03
ОбъектНом.МойРекв =  Объект.МойРекв;
заменить на 
ОбъектНом.МойРекв =  МойРекв;

МойРекв - получать до цикла
   H A D G E H O G s
 
10 - 24.12.17 - 14:04
В остальном - кусок приемлемого б-кода.

позабавило
Сообщить(" Ошибка !!! Свяжитесь с разработчиком");

Телепатируйте.

Хоть бы вывели ОписаниеОшибки()
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует