Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как переместить элемент справочника из одной группы в другую? , Работа с основными фондами          
Po4emu4ka Подменю пользователя
сообщение 23.07.10, 10:45
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Всем, добрый день! Не знаю как в иерархическом справочнике изменить пренадлежность элемента одной группы этого же справочника к другой. То есть, если вручную найти нужный элемент, открыть его форму и в ней в поле ввода с возможностью выбора, которое ссылается на этот же справочник (Данные:Родитель и ТипЗначения:СправочникСсылка.ОсновныеСредства) указать другую группу, то этот элемент без проблем перемещается в указанную группу. А как это сделать программно подскажите, пожалуйста?!
P.S. Вот мои не удачные попытки сделать это sad.gif

...
ИнвНомер="030026"; //Элемент, у которого надо изменить группу с Кода:13 и Наименования:"13 Сооружения" на
                               // Код:20 и Наименование:"20 Передаточные устройства";
СпрОС=Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомер).ПолучитьОбъект();
СпрОС.Родитель="20 Передаточные устройства";
СпрОС.Записать();
...


В итоге, элемент не принадлежит теперь ни одной из имеющихся групп

Vofka Подменю пользователя
сообщение 23.07.10, 10:49
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

...
ИнвНомер="030026";
ИнвНомерРодителя = "12345";
СпрОС=Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомер).ПолучитьОбъект();
СпрРодитель = Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомерРодителя).ПолучитьОбъект();
СпрОС.Родитель=СпрРодитель;
СпрОС.Записать();
...

awp Подменю пользователя
сообщение 06.08.10, 12:28
Сообщение #3

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3

Я бы руками переместил если только один элемент и шпилил бы дальше в WOW


Signature
Бухгалтер - это не профессия! Это диагноз!

kNives Подменю пользователя
сообщение 31.08.10, 7:13
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 23.07.10, 12:49) *
...
ИнвНомер="030026";
ИнвНомерРодителя = "12345";
СпрОС=Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомер).ПолучитьОбъект();
СпрРодитель = Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомерРодителя).ПолучитьОбъект();
СпрОС.Родитель=СпрРодитель;
СпрОС.Записать();
...


Этот код не делает то, что нужно, справочник остаётся без родителя. тестировалось в 1С 8.1. Было бы замечательно всё-таки найти решение, вроде бы элементарная задача, а решения в Сети нет. А нужно очень.
Если не использовать метод ПолучитьОбъект(), выдаётся ошибка "Поле объекта недоступно для записи (Родитель)".

2awp
WOW это, конечно, замечательно, но один элемент - это утопический случай )

Batchir Подменю пользователя
сообщение 31.08.10, 7:54
Сообщение #5

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Во всех стандартных конфигурациях (я так думаю) есть универсальная обработка справочников и документов.
Там можно установить по разным условиям отбор по необходимым вам элементам.
С полученным списком можно выполнять различные действия, в том числе и смену родителя.

kNives Подменю пользователя
сообщение 31.08.10, 8:49
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

то есть Вы предлагаете в дебаггере отследить, как меняется родитель?
у меня была такая такая мысль относительно элемента справочника, а не групповой обработки (отследить выполнение кнопки Переместить в группу), но только я не придумал где точку останова поставить

Batchir Подменю пользователя
сообщение 31.08.10, 8:58
Сообщение #7

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Вообще я предлагал использовать готовый инструмент. А так схема простая
1. Получаете ССЫЛКУ на родителя.
ИнвНомерРодителя = "12345";
СпрРодительССЫЛКА = Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомерРодителя);

2. Получаете ОБЪЕКТ элемента, которому нужно присвоить нового родителя
ИнвНомер="030026";
СпрОСОБЪЕКТ=Справочники.ОсновныеСредства.НайтиПоКоду(ИнвНомер).ПолучитьОбъект();

3. Присваиваете полученному ОБЪЕКТУ элемета новую ССЫЛКУ родителя
СпрОСОБЪЕКТ.Родитель=СпрРодительССЫЛКА;
СпрОСОБЪЕКТ.Записать();

Спасибо сказали: kNives,

kNives Подменю пользователя
сообщение 31.08.10, 9:12
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Batchir, спасибо большое, работает! На счёт ссылки - это, конечно, был пробел)

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 14.06.24, 1:18
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!