![]() |
![]() |
![]() |
|
как программно перенести элемент справочника в другую группу | ☑ | ||
---|---|---|---|---|
0
econom
10.03.04
✎
15:57
|
элемент справочника редактируется в диалоге (или новый). по реквизитам алгоритм модуля формы диалога "принимает решение" перенести его в другую группу. однако пока диалог не закрыт... ничего не получается.
Вопрос как бы какой нибудь процедурой (или кнопкой) закрыть форму и глобальной процедурой перекинуть ентот элемент в другую группу. Пробовал вызывать глобальную процедуру, передавая в нее контекст и текущий элемент() со всеми его делами, там Форма.Закрыть(). потом пытаюсь поменять родителя, но... Понял что пока работает процедура, вызванная из кнопки формы, эта форма - не закрывается и: ВыбрЗаказ.Родитель=НовыйРодитель; {Глобальный модуль(24)}: Объект не может быть перепозиционирован! как бы сначала закрыть а потом запустить глПроцедуру? |
|||
1
Рупор абсурда
10.03.04
✎
16:07
|
1. Обработкой
2. Через глобольную ОбработкуОжидания() 3. ? |
|||
2
a_aladdin
10.03.04
✎
16:21
|
Когда обсуждался вопрос об изменении времени проведенного док-та, всплыло решение как раз твоей проблемы (а конкретно, GrayT - мне прислал посмотреть)
Вод код в форме элемента справочника Перем ПараметрыФормы; Перем Вид; //_____________________________________________________ Процедура КопироватьЭлемент(Источник,Приемник) Для нр=1 по Метаданные.Справочник(Вид).Реквизит() Цикл ИД=Метаданные.Справочник(Вид).Реквизит(нр).Идентификатор; Приемник.УстановитьАтрибут(ИД,Источник.ПолучитьАтрибут(ИД)); КонецЦикла; Если Метаданные.Справочник(Вид).ДлинаКода>0 тогда Приемник.Код=Источник.Код; КонецЕсли; Если Метаданные.Справочник(Вид).ДлинаНаименования>0 тогда Приемник.Наименование=Источник.Наименование; КонецЕсли; КонецПроцедуры //КопироватьЭлемент //_____________________________________________________ Процедура ПриЗаписи() С=СоздатьОбъект("Справочник."+Вид); Если ПустоеЗначение(ПараметрыФормы)=1 Тогда Если Родитель<>ВыбРодитель Тогда С.Новый(); НеЗаписывать=1; КонецЕсли; Иначе С.НайтиЭлемент(ПараметрыФормы); НеЗаписывать=1; КонецЕсли; Если 1=НеЗаписывать Тогда С.Родитель=ВыбРодитель; КопироватьЭлемент(Контекст,С); С.Записать(); СтатусВозврата(0); Форма.Закрыть(0); Возврат; КонецЕсли; КонецПроцедуры //ПриЗаписи Процедура ПриЗакрытии() КонецПроцедуры //ПриЗакрытии Процедура ПриОткрытии() ПараметрыФормы=Форма.Параметр; Если Выбран()=1 Тогда Если ПустоеЗначение(ПараметрыФормы)=1 Тогда ОткрытьФорму("Элемент."+Вид,ТекущийЭлемент(),Родитель,,ИспользоватьВладельца()); СтатусВозврата(0); Возврат; КонецЕсли; ИначеЕсли ПустоеЗначение(ПараметрыФормы)=0 Тогда КопироватьЭлемент(ПараметрыФормы,Контекст); Форма.Заголовок(Наименование,0); Иначе Форма.Заголовок("(Новый)",0); КонецЕсли; ВыбРодитель=Родитель; КонецПроцедуры //ПриОткрытии Вид=Вид(); Попробуй... |
|||
3
Рупор абсурда
10.03.04
✎
16:27
|
(0) Лучше не пробуй!
(2) А если элемент не новый? |
|||
4
a_aladdin
10.03.04
✎
16:28
|
(3) если не новый тоже сработает
|
|||
5
Рупор абсурда
10.03.04
✎
16:29
|
(4) А если на него ссылки в базе есть?
|
|||
6
a_aladdin
10.03.04
✎
16:31
|
(5) - а именно?
|
|||
7
Рупор абсурда
10.03.04
✎
16:34
|
(6) Что "а именно?"? А именно, сидит он в куче доков и других справочниках, например ...
К тому же у справочника этого могут быть подчиненные, у элемента этого могут быть периодические реквизиты и т.п. ... (0) Не пробуй! |
|||
8
a_aladdin
10.03.04
✎
16:49
|
значит - пускай для нового хотя бы использует.
изначально-то конечно задача стояла саму идею реализовать - изменение группы в форме, в глобальном-то смысле особо не думали... |
|||
9
Рупор абсурда
10.03.04
✎
16:52
|
(8) Всё уже украдено до нас! (с)
|
|||
10
Кое-кто@где-то.там
10.03.04
✎
18:08
|
Хех, мой код ходит ...
(7) С подчиненными пофиг, с периодическими решаемо. |
|||
11
skunk
10.03.04
✎
18:38
|
(11)не согласен с доводами Рупора, но вывод правильный...
там и еще кое-что есть... |
|||
12
romix
10.03.04
✎
18:47
|
(0) Можно при закрытии запускать внешнюю компоненту или программу, которая изменит все как надо. Хотя овчинка имхо не стоит выделки - ну кому это нужно - в папку перекидывать... Сами же юзера и взвоют, что они создали, а элемент куда-то делся. Они еще раз создали - он опять уехал... Некоторые юзера отличаются завидным упорством...
|
|||
13
Фокс
10.03.04
✎
19:44
|
(10) Хитрые вы, собаки легавые, с подходцами вашими...
Ну ничего, ножички то у нас на всех найдутся ... Нахлебаетесь, как давеча на бульваре ... |
|||
14
skunk
10.03.04
✎
19:49
|
ой... ни как у нас уголовный криминалитеты позавились... Львенок, что ли крышует...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |