|
Перенос выбраного элемента справочника , По нажатию кнопки сформировать перенос выбраного элемента справочника |
|
|
|
|
21.03.11, 12:21
|
Молчаливый
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0
|
Есть Обработка ПереносЭлемента. На форму добавлен реквизит Элемент (тип СправочникСсылка.Контрагенты), и реквизит Группа(тип СправочникСсылка.Контрагенты). Необходимо при выборе элемента справочника на поле реквизита, по нажатию кнопки, перенести выбраный элемент в выбраную групу справочника из второго поля реквизита. Вот код, к сожалению, не отрабатывает, и не сильно понятно почему. Просьба откликнутся. Процедура КнопкаВыполнитьНажатие(Кнопка) предупреждение("При Выполнении нажатия"); СтандартнаяОбработка = Ложь;
Форма2 = Обработки.а.ПолучитьФорму(ЭтаФорма.ЭлементыФормы.Элемент.Данные);
Форма1 = Обработки.а.ПолучитьФорму(фФорма.ЭлементыФормы.Группа.Данные); Выборка = Справочники.Контрагенты.Выбрать(); Пока Выборка.Следующий() Цикл; Если (НЕ Выборка.ЭтоГруппа) И (НЕ ЗначениеЗаполнено(Выборка.Родитель)) Тогда форма2= Выборка.ПолучитьОбъект(); Форма2.Родитель=Форма1; Форма2.Записать(); КонецЕсли; КонецЦикла;
КонецПроцедуры
Причина редактирования: Выделяем код!
|
|
|
|
21.03.11, 12:41
|
Молчаливый
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0
|
Цитата(Vofka @ 21.03.11, 13:36) А зачем форму записывать? Нужно записывать элемент с типом "справочник.контрагенты" а ,если, не затруднит, вы не могли бы навесьти пример.
|
|
|
|
|
21.03.11, 12:57
|
Молчаливый
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0
|
Цитата(Ziam @ 21.03.11, 13:49) Я правильно задачу понял? Котнтрагенту на форме (тип СправочникСсылка.Контрагенты) нужно поменять родителя на Группа(тип СправочникСсылка.Контрагенты)? не совсем... есть форма, на ней есть два поля -- одно для выбора элемента справочника контрагенты, второе для выбора группы (родителя), в которую этот элемент должен быть записан, и есть еще кнопка для выполнения этого действия но в целом правильно, я перечитал
|
|
|
21.03.11, 13:13
|
Молчаливый
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0
|
я не много переработал, но всё равно пока не раблотает ( Поле2 = ЭлементыФормы.Группа.Значение.Родитель; // здесь выбрана группа Выборка = Справочники.Контрагенты.Выбрать(); Пока Выборка.Следующий() Цикл; Если (НЕ Выборка.ЭтоГруппа) И (НЕ ЗначениеЗаполнено(Выборка.Родитель)) Тогда; Объект = Выборка .ПолучитьОбъект(); Объект.Родитель = Поле2; Объект.Записать(); КонецЕсли; КонецЦикла;
Причина редактирования: Ну выделяйте ж код!!
|
|
|
21.03.11, 13:23
|
Завсегдатай
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0
|
Я не понимаю зачем вам цикл? Вот моя обработка. На форме создал два поля ввода типа СправочникСсылка.Контрагенты: Контрагент, Группа. В Свойствах полей ввода указали свойство ВыборГруппИЭлементов в то, что надо, чтоб не напутали (защита от дурака). Обработчик нажатия на кнопку такой: Процедура КнопкаВыполнитьНажатие(Кнопка) Если Контрагент.Родитель <> Группа Тогда КонтрагентОбъект = Контрагент.ПолучитьОбъект(); КонтрагентОбъект.Родитель = Группа; КонтрагентОбъект.Записать(); КонецЕсли; КонецПроцедуры
З.Ы. Проверку на заполнение реквизитов, тоже можете добавить.
|
|
|
|
|
|
|
21.03.11, 13:52
|
Молчаливый
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0
|
Цитата(logist @ 21.03.11, 14:46) Ну я тогда прав? - код выбирает родителя группы а не саму группу, а у группы возможно нет родителя, поэтому ничего не происходит. а как, тогда, будет правильно написать выбор группы, напишите пожалуйста.
|
|