Как в форме элемента справочника сменить родителя? #13527


#0 by ДО
Здравствуйте! Вопросик по 1С v.7.7. Подскажите, как в форме элемента справочника сменить родителя? Может как-нибудь через глобальный модуль или/и закрытие формы элемента? Данные функции в форме элемента не действуют: ИспользоватьРодителя(,); Метод можно использовать для объектов, созданных функцией СоздатьОбъект или для элементов диалога типа ''Справочник''. ------ Родитель Атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект. -----
#1 by Rovan
Правильно в 7.7 так нельзя. Делаешь отдельное поле и обрабатываешь его значение программно -  например в процедуре ПриЗаписи.
#2 by Diter
А что, атрибут "Родитель" отменили? В процедуре ПриЗакрытии можно попробовать запустить обработку, которая найдёт в справочнике элемент, переданный её через контекст, и установит атрибут "Родитель".
#3 by Diter
(+2) Самое главное, что при работе с элементом справочника через СоздатьОбъект необходимо, чтобы форма этого элемента была уже закрыта.
#4 by Рупор абсурда
(2,3) Продолжайте, пожалуйста ...
#5 by Diter
Зачем?
#6 by Рупор абсурда
Нууу ..., Вы же не знаете ответа на этот вопрос ... А когда Вы отвечаете на вопрос, ответа на который Вы не знаете, это всегда очень забавно ... Пожалуйста, не уходите ...
#7 by Rovan
Да, действительно. Вобщето в 7.7 рекомендуется пользоваться переносом в др. группу в списке справочника. Еще решение - создать глобальную ТЗ и обрабатывает ее значения в ОбработкеОжидания /или как там она называется - вызов процедуры через N секунд/(у меня много алгоритмов в 7.7 на ней работало - например отмена проведения документа из его открытой формы)
#8 by GrayT
можно и из формы элемента и без обработки ожидания. Но это левой ногой правое ухо чесать
#9 by Diter
Чтобы немного сбить с тебя спесь вот код : КонецПроцедуры (Элемент-выбираемая из справочника группа) На форму элемента повесил кнопку с формулой ОткрытьФорму("Обработка.Новый1",ТекущийЭлемент); #Закрыть Вопросы есть? Умник блин.
#10 by Diter
(+9) Этой же обработкой можно и открыть опять форму элемента сразу после смены родителя
#11 by Рупор абсурда
Этот код не рабочий ... Ответа на вопрос Вы не знаете ... Продолжайте ...
#12 by Diter
(+9) "(Элемент-выбираемая из справочника группа)" читать как Её можно не выбирать, а задавать программно
#13 by Diter
Этот код я только что написал и проверил на реальных данных
#14 by Rovan
Я не понял - значение "Родитель" как передается и как вызывается Сформировать ?
#15 by Рупор абсурда
Ну так, проверьте ещё раз, если мне на слово не верите ...
#16 by Diter
Процедура Сформировать может вызывается и не кнопкой (как в коде)а из ПриОткрытии. В коде этого нет, т.к. я приследовал цель просто показать механизм. Нового родителя можно передавать в эту обработку точно так же как и сам элемент. Если родитель известен заранее, то его и передавать не надо, а если юзер должен его выбрать, тогда пускай выбирает уже на форме обработки. Так я и сделал.
#17 by Рупор абсурда
Гоните ... Не может процедура Сформировать вызывается не кнопкой (как в коде)а из ПриОткрытии.
#18 by Guk
Вывешивай кроликов...
#19 by wolk
Между прочим, Рупор прав. Код нерабочий, я проверил. Может быть есть ещё что-то, что делает его рабочим?
#20 by Diter
Повторяю. Код работает. Если не веришь, давай мыло пришлю сриншоты.
#21 by GrayT
На момент нажатия кнопки сформировать форма элемента уже закрыта
#22 by wolk
- всё, теперь понял. Тогда код можно назвать условно рабочим. Ибо, хоть в это явно не оговаривалось, но подразумевалось, требуемый результат должен достигаться без нажатия юзером какой-либо кнопки.
#23 by Рупор абсурда
Он и по кнопке не рабочий ... Что такое Родитель? ... Гл. переменная? ...
#24 by GrayT
Можно и без нажатия кнопки, да и форма будет открытой..... только другая :)
#25 by Diter
Читать умеем? Смотри .
#26 by wolk
- гы, точно, я и не заметил :-))) - можно. А мой знакомый херург учится гланды через европу удалять. Автогеном.
#27 by GrayT
Реквизит на форме обработки. Для нового элемента справочника совсем коряво получится
#28 by Diter
А для нового элемента справочника это и не предназначалось. Я так понимаю, что юзер не совсем безбашенный, чтобы внося новый элемент справочника, определяться с родителем после нажатия на кнопку Insert. Ну минимум одну кнопку юзеру нажать то прийдётся. Это во-первых, а во-вторых - если группа, в которую нужно поместить этот элемент известна заранее, то можно сделать всё совсем по другому. Кстати, в нет никаких котегоричностей по поводу табу нажатия юзером каких либо клавиш.
#29 by Guk
Если нет табу, то я знаю, как это сделать вообще не кодируя...
#30 by NS
1)попросить 1С добавить процедуру послезакрытия 2)повесить на обработку ожидания... 3)повесить на текст на форме.
#31 by Rovan
В след. раз вешай сюда только полностью рабочий алгоритм.
#32 by Эмблема форума
3) Обломаешься ...
#33 by NS
Забъемся?
#34 by Guk
Так, это уже интересно...
#35 by Эмблема форума
Не хочу ... Проверять лениво ..., ты уверен?
#36 by Эмблема форума
+ Млин ... Мне даже стыдно стало за свою нерешительность ... Согласен забиться!
#37 by GrayT
Ну вот а я уже баночку пива открыл :(
#38 by NS
пять минут - выложу код.
#39 by Эмблема форума
Лучше так расскажи ... Мне один хрен лениво будет его куда-то вставлять ...
#40 by Diter
Ещё раз повторяю этот код работоспособен. То что он не удовлетворяет эстетические запросы некоторых посетителей - не моя вина. Авто вообще не откликнулся и не уточнил чего хочет. Фактически это просто демонстрация метода решения .
#41 by NS
глобальный модуль: перем глСотрудникРодитель Экспорт; перем глСотрудникЭлемент Экспорт;
#42 by Эмблема форума
А ..., вот ты о чём ... :)) А почему ты считаешь, что форма списка справочника открыта в это время?
#43 by NS
потому что перемещают обычно в форме списка... Могу извернуться - и сделать открытьФорму - формы списка, ежели она не открыта... и после изменения - закрыть...
#44 by Diter
(+40) Да кстати, Rovan объясни а как работает твой метод "Делаешь отдельное поле и обрабатываешь его значение программно -  например в процедуре ПриЗаписи. "?????
#45 by mszsuz
Решение давно уже лежит тут:
#46 by 427
Опять Рупор Дитера поимел. Причем, как всегда, за дело...
#47 by ДО
Спасибо всем. Попробую, может что и подойдёт. Дмитрий
#48 by ДО
решение mszsuz не подходит! Там при открытии элемента создаётся новый элемент, а при сохранении - вносятся изменения в исходный. решение Diter не подходит, т.к. приходится дополнительно нажимать кнопку в обработке. попробую решение NS , хотя как-то коряво..
#49 by Diter
Интересно, с чего ты это взял? Моё решение работоспособно так же как и решение mszsuz и NS. Не устроили первых два варианта (по ему одному ему известным причинам, которые он в сабже не раскрыл), а устроил третий. Ну и что?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С