Версия для печати темы (https://pro1c.org.ua/index.php?s=8bc2d1bf1573f82bbcfa1d5ee5063804&showtopic=32505)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как перенести элемент спр.ТМЦ в другую папку спр.ТМЦ

Автор: TTT 18.10.16, 10:22

Здравствуйте! Бухгалтерия 7.7.
Неужели нельзя в коде перенести ТекущийЭлемент() справочника (напр. спр.ТМЦ) в другую указанную папку
справочника, т.е. поменять Родителя???

Автор: sava1 18.10.16, 10:29

А что, написано , что нельзя ?

Из КЖК:

Родитель
Значение родительской группы элемента справочника.

Синтаксис:

Родитель

Англоязычный синоним:

Parent

Описание:

Атрибут Родитель предоставляет доступ к значению родительской группы выбранного элемента справочника.

Данный атрибут может быть изменен только для объектов, созданных функцией СоздатьОбъект.

Пример:

Функция ДатьРодителя(Элем)

   // Справочник Товаров многоуровневый

   // Получая в параметре функции значение товара,

   // надо выдать имя группы товара

   Спр = СоздатьОбъект("Справочник.Товары");

   Спр.НайтиЭлемент(Элем);

   Если Спр.Уровень() > 1 Тогда

      Спр.НайтиЭлемент(Спр.Родитель);

      Возврат "Этот товар принадлежит группе " + Спр.Наименование;

   Иначе

      Возврат "Это товар первого уровня - нет родителя!";

   КонецЕсли;

КонецФункции



Автор: TTT 18.10.16, 10:55

sava1 @ Сегодня, 11:29 * ,
Я не увидела присвоения нового Родителя!
Старый и так известен!

Автор: sava1 18.10.16, 11:19

Спр = СоздатьОбъект("Справочник.Товары");
// НовыйРодитель = спр.Найти...   или из реквизита
// те = найти элемент
те.Родитель = НовыйРодитель
Спр.Записать();

Автор: TTT 18.10.16, 11:22

sava1 @ Сегодня, 12:19 * ,
И все???
Спасибо!!

Автор: Vofka 18.10.16, 13:10

TTT, для "спасибо" есть специальная кнопочка.

Автор: TTT 18.10.16, 13:30

TTT @ Сегодня, 12:22 * ,
Попробовала!
Ошибка: Объект не может быть перепозиционирован!

Автор: sava1 18.10.16, 14:53

код покажите.

Автор: TipsyKID 18.10.16, 15:43

Проверено работает.

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


http://pro1c.org.ua/redirect.php?http://www.ex.ua/989181588162

Автор: TTT 19.10.16, 9:58

TipsyKID @ Вчера, 16:43 * ,
ДА!!! Спасибо большое, все работает у меня бестолковой!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua