8.х Перенос элемента справочника в другую группу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем MaximKh, 1 фев 2011.

  1. TopicStarter Overlay
    MaximKh
    Offline

    MaximKh Опытный в 1С

    Регистрация:
    19 апр 2010
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, у меня два вопроса...
    1. Как программно найти в справочнике нужную группу по наименованию? Я так понимаю, метод НайтиПоНаименованию работает только для элементов?
    2. Как, опять же программно, перенести элемент в найденную группу?
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    1. Работает для всех.
    2.
    Код:
    ЭлементСправочника.Родитель = ГруппаСправочника;
    ЭлементСправочника.Записать();
    
  3. TopicStarter Overlay
    MaximKh
    Offline

    MaximKh Опытный в 1С

    Регистрация:
    19 апр 2010
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    Говорит, что поле объекта Родитель недоступно для записи...
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    ЭлементСправочника - что такое?
    Работайте не с типом "СправочникСсылка", а с типом "СправочникОбъект".
    Код:
    ЭлементОбъект = ЭлементСправочника.ПолучитьОбъект();
    ЭлементОбъект.Родитель = ГруппаСправочника;
    ЭлементОбъект.Записать();
    
    
  5. TopicStarter Overlay
    MaximKh
    Offline

    MaximKh Опытный в 1С

    Регистрация:
    19 апр 2010
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    Вообще это выборка результата запроса. В цикле я перебираю все отобранные элементы и, если он не расположен в нужной группе, то переношу его (хочу перенести... ).
  6. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    shurikvz прав - получите сначала объект справочника и с ним работайте. А из запроса вы получаете ссылку на объект.
  7. Isberg
    Offline

    Isberg Опытный в 1С

    Регистрация:
    4 май 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    Код:
    
    ГруппаСправочникаДляСравнения = Справочники.Номенклатура.НайтиПоНаименованию("Группа");
    ГруппаДляПодстановки = Справочники.Номенклатура.НайтиПоНаименованию("ГруппаДляПодстановки");
    
    //Ваш запрос
    
    Пока Выборка.Следующий() Цикл
    Если Выборка.Родитель <> ГруппаСправочникаДляСравнения Тогда
    ЭлементОбъект = Выборка.Ссылка.ПолучитьОбъект();
    ЭлементОбъект.Родитель = ГруппаДляПодстановки;
    ЭлементОбъект.Записать();
    КонецЕсли;
    КонецЦикла;
    
    
    
    Может быть так.
  8. Isberg
    Offline

    Isberg Опытный в 1С

    Регистрация:
    4 май 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    Хотя можно сразу в запросе выбрать нужную номенклатуру, так даже проще будет и быстрее.
  9. TopicStarter Overlay
    MaximKh
    Offline

    MaximKh Опытный в 1С

    Регистрация:
    19 апр 2010
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    Спасибо, я понял свою ошибку... Я действительно сначала объект не получил и пытался сразу группу записать.
    Еще раз спасибо, тема для меня закрыта.

Поделиться этой страницей