[РЕШЕНО] Ошибки при записи элмента справочника номенклатура

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

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Всем доброго времени суток!

    Платформа: 1С:Предприятие 8.3 (8.3.6.2390)
    Конфигурация: Управление торговлей, редакция 11.2 (11.2.2.106)

    Пытаюсь создать новую номенклатуру:

    Код:
                   
    НоваяНоменклатураСпр = Справочники.Номенклатура.СоздатьЭлемент();
    НоваяНоменклатураСпр.Родитель  = ГруппаНоменклатуры;
    НоваяНоменклатураСпр.ВидНоменклатуры = ВидТовараМассив[Число(ТоварСтрока.ВидНоменклатуры)];
    НоваяНоменклатураСпр.СтавкаНДС = СтавкиНДССоответствие.Получить(ТоварСтрока.КоэффициентСтавкиНДС);
    НоваяНоменклатураСпр.Наименование  = СокрЛП(ТоварСтрока.Наименование);
    НоваяНоменклатураСпр.НаименованиеПолное  = СокрЛП(ТоварСтрока.Наименование);
           Если НоваяНоменклатураСпр.ВидНоменклатуры = АлкогольТовар Тогда
                    НоваяНоменклатураСпр.ВидАлкогольнойПродукции = Справочники.ВидыАлкогольнойПродукции.НайтиПоНаименованию("АлкогольЗагруженный");
                        НоваяНоменклатураСпр.ОбъемДАЛ  = Число(1);
            КонецЕсли;
            Попытка
                СозданоНовыхЭлементов = СозданоНовыхЭлементов+1;
            НоваяНоменклатураСпр.Записать()
    
    А в ответ получаю:

    Код:
    {Форма.Форма.Форма(244)}: Ошибка при вызове метода контекста (Записать)
                    НоваяНоменклатураСпр.Записать();
    по причине:
    Ошибка при выполнении обработчика - 'ПередЗаписью'
    по причине:
    {Справочник.Номенклатура.МодульМенеджера(991)}: Преобразование значения к типу Булево не может быть выполнено
            И Не ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда
    Мне как-то, при создании номенклатуры, надо указать ДрагМатериал это или нет, так?
    Если да то как?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Не стесняйтесь пользоваться отладкой.
    Проверяется значение реквизита элемента справочника "ВидНоменклатуры", возвращает значение НЕ типа Булево о чем вам сообщается в тексте ошибки.
    Dem0lisher нравится это.
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Вы всё "полезнее" и "полезнее" даёте ответы. И не лень писать бесполезный (пустой ответ)? Или вам за это какие-то балы дают, на форуме?
    Я просто не очень понимаю, если неохота отвечать или вопрос считаете через чур "банальным", зачем тратить своё время на пустой и бесполезный ответ и моё время, на прочтение этого ответа?

    P.S.
    Отладчиком я пользоваться умею и прежде чем сюда писать, я им уже воспользовался.
    В отладчике, упав в функцию :
    Код:
    ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда
    увидел следующее: Результат Null
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Из ваших слов, отладчиком вы пользуетесь как-то странно на мой взгляд.

    результат = NULL и что дальше? по какой причине такой результат? что нужно сделать, чтобы результат был отличный от NULL? вас эти вопросы не беспокоят вообще или вы не задавались этими вопросами?

    Можете, конечно, дальше сидеть и удивлятся тому факту, что результат работы функции - NULL......
    Dem0lisher нравится это.
  5. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    На самом деле ответ про отладку действительно полезный.
    А вы ожидали, что вам скажут - "в строке 14387 замени букву 'а' на букву 'б' "?
    За вас в код никто разбираться не полезет, а если вы сами в нем разберетесь с помощью отладчика, то завтра вместо того, чтобы потратить 4 часа ожидая ответа на форуме найдете ответ сами за 15 минут.

    Функция вам вернула Null, вы провалились отладчиком в функцию и поняли, почему она вернула NULL?
    Или просто всплеснули руками и опубликовали очередное сообщение на форуме?

    Запустите глобальный поиск по конфигурации и посмотрите где еще вызывается эта функция, с какими параметрами и что возвращает в других случаях.
    --- Объединение сообщений, 4 мар 2016 ---
    Другое дело, если у вас отладчик туда не заходит - такое каждый день тут спрашивают :)
  6. bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    328
    Симпатии:
    22
    Баллы:
    29
    у вас запись идёт в попытке. выведите в какое-то поле на форме или в сообщение на клиенте результат функции ОписаниеОшибки() в исключении попытки. там вам и напишет про поле, которое не удаётся записать (изменить)
  7. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Всё оказалось просто - ВидНоменклатуры я получал через НайтиПоНаименованию, а в моём случае имя группы совпадало с наименованием, в итоге Вид Номенклатуры ЭтоГруппа,
    что и приводило к ошибке.
    Всем спасибо
  8. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    ну на признак группы тоже надо проверять :) хотя лучше не делать совпадающих названий

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