8.х Владелец не задан или задан неверно!

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

  1. TopicStarter Overlay
    new18
    Offline

    new18

    Регистрация:
    29 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Пытаюсь создать элемент справочника Номенклатура и Единицу измерения, вылетает по ошибке:
    "Владелец не задан или задан неверно!"


    спр=Справочники.Номенклатура.СоздатьЭлемент();
    спр.Артикул="";
    спр.Наименование=";
    спр.НаименованиеПолное="";
    спр.ВидНоменклатуры=Справочники.ВидыНоменклатуры.НайтиПоКоду("00001");
    /////

    НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку();
    спр.УстановитьСсылкуНового(НоваяСсылка);

    ///

    ед=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    ед.Владелец=НоваяСсылка;
    ед.ЕдиницаПоКлассификатору=Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
    ед.Коэффициент=1;
    ед.Записать(); // Здесь вылетает

    спр.единицахранияостатков=ед.Ссылка;
    спр.Записать();



    В чем может быть проблема
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Перед созданием "ед" нужно "спр" записать
  3. TopicStarter Overlay
    new18
    Offline

    new18

    Регистрация:
    29 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Я не могу записать Номенклатуру без заполненного реквизита Ед.Измерения, так как Единица является обязательным реквизитом
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Что значит "является обязательным реквизитом"? Вся "обязательность" проверяется в процедуре ПередЗаписью, можно ее там обойти. А ошибка появляется из-за того, что "НоваяСсылка" не будет определена в БД до записи элемента справочника. Вот при создании "ед" она и ругается, что Владельца найти не может. Как вариант, можно сначала ед без владельца записать, потом (после записи номенклатуры) у "ед" можно будет определить владельца.
  5. TopicStarter Overlay
    new18
    Offline

    new18

    Регистрация:
    29 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    А как я могу записать без владельца единицу? без изменения процедуры при записи
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Ну, это я погорячился:) Если справочник подчиненный, то не получится его записать без владельца штатно. Мы вообще про типовую какую-то говорим конфигурацию? Просто обычно "обязательным" является реквизит "БазоваяЕдиницаИзмерения" - а это не подчиненный справочник. То есть сначала у новой номенклатуры заполняется все необходимое, потом он записывается, а потом создаются всякие "ЕдиницаХраненияОстатков" и прочее и дописываются в уже записанную номенклатуру.
  7. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Конфигурация какая? Если УТ или УПП, то в них нельзя записать элемент справочника номенклатуры без задания базовой единицы, а её тип справочник ОКЕИ, то бишь классификатор единиц измерения. Посмотрите как записывается новый элемент в форме справочника Номенклатура.
  8. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Номенклатуру без единицы измерения программно записывай сколько твоей душе угодно:
    Код:
    Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
    // долгое и сложное заполнение
    Номенклатура.Записать();
    ЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    ЕдИзм.Владелец = Номенклатура.Ссылка;
    ЕдИзм.Записать();
    
    // Заполняешь единицы измерения
    Номенклатура.Записать(); 
    

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