Ошибка при вызове метода контекста записать не удалось записать номенклатура

Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация

Я
   Cratos

04.07.14 — 17:29

Собственно, выпадает на ошибке:

{Форма.Экспорт.Форма(868)}: Ошибка при вызове метода контекста (Записать)

  Спр.Записать();

по причине:

Произошла исключительная ситуация (1C:Enterprise 8.2.19.106): Не удалось записать: «Номенклатура»!

Есть предположения, как отловить причину паники 1цэ?

Попытка и описаниеОшибки аналогичны.

   sergey198

1 — 04.07.14 — 17:30

остановка по ошибке

   VikingKosmo

2 — 04.07.14 — 17:31

Посмотреть ЖР не предлагать?

   DS

3 — 04.07.14 — 17:31

Конфа? Отладка?

   Cratos

4 — 07.07.14 — 11:11

(1) {Форма.Экспорт.Форма(869)}: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1C:Enterprise 8.2.19.106): Не удалось записать: «Номенклатура»!

(2) Спасибо, по этой ошибке там пусто.

(3) Конфа отраслёвая типовая, но дело не в ней, а в новой сигнатуре ошибки.

   Cratos

5 — 07.07.14 — 11:11

(3) т.к. это внешняя обработка

   Timon1405

6 — 07.07.14 — 11:16

1) Вставить  перед записью Спр.ОбменДанными.Загрузка = Истина;

2) Открыть записанный объект.

3) Записать в форме -> Посмотреть на что ругается.

Кастую пророка на незаполненную единицу измерения

   Cyberhawk

7 — 07.07.14 — 11:18

(5) «т.к. это внешняя обработка» добавь в код обработку исключительной ситуации и посмотри на ошибку

   Cratos

8 — 07.07.14 — 11:23

через попытку-исключение так же выводится описание ошибки.

ОбменДанными.Загрузка не помогает, это не косяк конфигурации, а платформа валится.

(6) п.3 сейчас опробую

   hhhh

9 — 07.07.14 — 11:53

(8) не, это косяк в конфигурации. Открывай все процедуры ПередЗаписью и ПриЗаписи, сколько их там? Штук 40. И во всех всобачь точки останова.

   Cratos

10 — 07.07.14 — 12:07

всем спасибо, причину нашёл (не был заполнен обязательный реквизит-ссылка).

Но, достало, что 1С позволяет объекту назначить обязательный реквизит, но при ошибке записи не указывает на него.

   Timon1405

11 — 07.07.14 — 12:13

Какой реквизит-то: единица измерения?

   Cratos

12 — 07.07.14 — 13:09

(11) да. При этом всё было сделано правильно — сначала номенклатура.обменданными.загрузка = истина, затем запись, затем создавалась ед.изм и повторно записывалась номенклатура.

Собака зарылась при записи ед.изм, в попытке она не записалась, а платформа при записи номенклатуры не захотела вещать, что же ей не понравилось

  

SeraFim

13 — 07.07.14 — 13:11

(6)телепат 80-го левела!))

Невозможно добавить новый элемент в справочник Номенклатура. Код не уникален

Автор ПростоАлександр, 11 янв 2011, 12:29

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте. Такая проблема: при добавлении нового элемента в справочник Номенклатура выскакивает ошибка:

Ошибка при вызове метода контекста (Записать): Код не уникален!

Такая ошибка возникает, когда добавляешь вид номенклатуры товар, если же вид номенклатуры услуги, то нормально добавляет. Кто-нибудь сталкивался с такой ошибкой?


А вопрос? Код в новом элементе какой должен быть?(можно в отладчике посмотреть). Какой у вас максимальный код?


Проблема в том, что когда в номенклатуре создаешь новый элемент для него необходимо задать базовую единицу измерения. А на основе нее выбирается единица хранения остатков из справочника ЕдиницыИзмерения, который подчинен справочнику Номенклатура. Так вот при записи выполняется такой код:

ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Ссылка);
   Если ВыборкаЕдиниц.Следующий() Тогда
      НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
   Иначе
      НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
      НайденнаяЕдиницаОбъект.Наименование            = СокрЛП(БазоваяЕдиницаИзмерения);
      НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
      НайденнаяЕдиницаОбъект.Коэффициент             = 1;
      НайденнаяЕдиницаОбъект.Владелец                = Ссылка;

                  Попытка
         НайденнаяЕдиницаОбъект.Записать();
      Исключение
         Сообщить(«Не удалось записать единицу хранения остатков: » + ОписаниеОшибки(), СтатусСообщения.Важное);
         Отказ = Истина;
         Возврат;
      КонецПопытки;

      НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка;
   КонецЕсли;

   ЕдиницаХраненияОстатков = НайденнаяЕдиница;

   Попытка
      ЗаписатьВФорме();
   Исключение
      Отказ = Истина;
   КонецПопытки;

И каждый раз при добавлении нового элемента в справочник Номенклатура добавляется новый элемент в справочник ЕдиницыИзмерения, так как судя по коду каждый элемент справочника ЕдиницыИзмерения должен иметь владельцем нового добавляемого элемента в справочник Номенклатура. Вопрос заключается в том, как этого избежать, ведь неправильно то, что каждый раз при создании элемнта Номенклатуры добавляется новый элемент в справочник ЕдиницыИзмерения? Ошибка же происходила потому, что элементы в справочнике ЕдиницыИзмерения достигли кода 999 и почему-то дальше не инкрементировались… 


1. Используйте лидирующие нули в коде.
2. Какая у вас конфигурация? Почему неправильно, «ведь неправильно то, что каждый раз при создании элемнта Номенклатуры добавляется новый элемент в справочник ЕдиницыИзмерения»?
Смотря для какой типовой конфигурации.


конфигурация Управление Торговлей…просто вроде бы как раньше в справочник ЕдиницыИзмерения не добавлялись новые объекты каждый раз при создании…
Странным на мой взгляд является то, что выборка из справочника происходит по владельцу, которым является создаваемый объект справочника Номенклатура. И если выборка ничего не обнаружила (а обнаружит она только при изменении, при создании нового еще нечему подчиняться), то создается новый элемент…


Возможно, у Вас косяк с нумерацией проблемного справочника.
Не желательно иметь в одном справочнике номера с префиксами типа(!Пример!) «ГР00001» и «000001» если нумерация идет автоматом.


Теги:

  • Форум База

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Пользователям 1С Предприятие 8

  • Невозможно добавить новый элемент в справочник Номенклатура. Код не уникален

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

  1. Всем доброго времени суток!

    Платформа: 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
    Сообщения:
    9.590
    Симпатии:
    998
    Баллы:
    204

    Не стесняйтесь пользоваться отладкой.
    Проверяется значение реквизита элемента справочника «ВидНоменклатуры», возвращает значение НЕ типа Булево о чем вам сообщается в тексте ошибки.

  3. Вы всё «полезнее» и «полезнее» даёте ответы. И не лень писать бесполезный (пустой ответ)? Или вам за это какие-то балы дают, на форуме?
    Я просто не очень понимаю, если неохота отвечать или вопрос считаете через чур «банальным», зачем тратить своё время на пустой и бесполезный ответ и моё время, на прочтение этого ответа?

    P.S.
    Отладчиком я пользоваться умею и прежде чем сюда писать, я им уже воспользовался.
    В отладчике, упав в функцию :

    ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ВидНоменклатуры, "СодержитДрагоценныеМатериалы") Тогда

    увидел следующее: Результат Null


  4. nomad_irk

    Online

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.590
    Симпатии:
    998
    Баллы:
    204

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

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

    Можете, конечно, дальше сидеть и удивлятся тому факту, что результат работы функции — NULL……


  5. Dem0lisher

    Offline

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

    Регистрация:
    4 авг 2009
    Сообщения:
    1.261
    Симпатии:
    101
    Баллы:
    104

    На самом деле ответ про отладку действительно полезный.
    А вы ожидали, что вам скажут — «в строке 14387 замени букву ‘а’ на букву ‘б’ «?
    За вас в код никто разбираться не полезет, а если вы сами в нем разберетесь с помощью отладчика, то завтра вместо того, чтобы потратить 4 часа ожидая ответа на форуме найдете ответ сами за 15 минут.

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

    Запустите глобальный поиск по конфигурации и посмотрите где еще вызывается эта функция, с какими параметрами и что возвращает в других случаях.

    — Объединение сообщений, 4 мар 2016

    Другое дело, если у вас отладчик туда не заходит — такое каждый день тут спрашивают :)


  6. bajiepka

    Offline

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

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54

    у вас запись идёт в попытке. выведите в какое-то поле на форме или в сообщение на клиенте результат функции ОписаниеОшибки() в исключении попытки. там вам и напишет про поле, которое не удаётся записать (изменить)

  7. Всё оказалось просто — ВидНоменклатуры я получал через НайтиПоНаименованию, а в моём случае имя группы совпадало с наименованием, в итоге Вид Номенклатуры ЭтоГруппа,
    что и приводило к ошибке.
    Всем спасибо


  8. LordMaverick

    Offline

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

    Регистрация:
    17 мар 2014
    Сообщения:
    3.975
    Симпатии:
    465
    Баллы:
    104

    ну на признак группы тоже надо проверять :) хотя лучше не делать совпадающих названий


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

  • Главная
  •  — 
  • Форум
  •  — 
  • ТЕХПОДДЕРЖКА
  •  — 
  • ЭКСЕЛОН — Загрузка в 1С из EXCEL
  •  — 
  • Ошибка при вызове метода контекста (Записать)
 

Вчера заметил, что перестали обновляется цены, проверил выгрузку и обнаружил что часть номенклатуры не записывается.
Возможно это как то связано с переходом на 1с 11.5
Сегодня обновил модуль проблема осталась

Номенклатура_СоздатьОбновить 020: {ВнешняяОбработка.APPLIX_RU_ЗагрузкаИзExcel_ЗМ.МодульОбъекта(70081)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульМенеджера(2911)}: Преобразование значения к типу Булево не может быть выполнено

 

Ошибка при попытке обновить номенклатуру

 

1С:Предприятие 8.3 (8.3.20.1674)
Управление торговлей, редакция 11 (11.5.7.336)
модуль загрузки 16.5.8

Прикрепленные файлы

 

Модуль создал номенклатуру, теперь ее невозможно открыть

ТекстыЗапросов = Новый Массив;
ПараметрыЗапроса = Новый Структура;

ИменаОбъектовМетаданных = Новый Массив;

Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл
Тип = СсылкиПоТипу.Ключ;
ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
Если ОбъектМетаданных = Неопределено Тогда
ВызватьИсключение
НСтр(«ru = ‘Неверный первый параметр Ссылки в функции ОбщегоНазначения.ЗначенияРеквизитовОбъектов:
          |- Значения массива должны быть ссылками'»);
КонецЕсли;

ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных);

Прикрепленные файлы

 

пришлите ваш файл и скриншоты всех настроек колонок

 
 
 

у нас загрузилось нормально

доступ к базе дадите? попробуем на вашей базе отладкой посмотреть что не так

 

Сергей Юданов

Пользователь

Сообщений: 23
Регистрация: 09.04.2019

#9


0
 

30.05.2022 15:03:02

Разобрались сами.

На некоторые позиции номенклатуры в поле (Вид номенклатуры) было назначено не значение, а почему-то название категории в котором содержались значения.

ПОСЛЕДНИЕ СООБЩЕНИЯ

Сейчас на форуме (гостей: 73)

Всего зарегистрированных пользователей: 2227

Приняло участие в обсуждении: 367

Всего тем: 824

Добрый день! Помогите разобраться с ситуацией: создали на сайте группу пользователей, для которых привязали свои цены, отличные от цен на сайте для розничных клиентов. Идет выгрузка заказа такого клиента в 1с и начинается — лог обмена
27.10.2020 20:58:53—Отправка запроса на получение заказов с сайта.
27.10.2020 20:58:56—Не удалось записать номенклатуру Доставка заказа {ОбщийМодуль.Б_ОбменССайтомСерверЗагрузкиДанных.Модуль(3108)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульОбъекта(275)}: Значение поля «Рабочее наименование» не уникально
27.10.2020 20:58:56—Не удалось записать номенклатуру Доставка заказа {ОбщийМодуль.Б_ОбменССайтомСерверЗагрузкиДанных.Модуль(3108)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульОбъекта(275)}: Значение поля «Рабочее наименование» не уникально
27.10.2020 20:58:56—Не удалось записать номенклатуру Доставка заказа {ОбщийМодуль.Б_ОбменССайтомСерверЗагрузкиДанных.Модуль(3108)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульОбъекта(275)}: Значение поля «Рабочее наименование» не уникально
27.10.2020 20:58:56—Не удалось записать номенклатуру Доставка заказа {ОбщийМодуль.Б_ОбменССайтомСерверЗагрузкиДанных.Модуль(3108)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульОбъекта(275)}: Значение поля «Рабочее наименование» не уникально
27.10.2020 20:59:01—Документ: Заказ клиента ЛВ00-004184 от 27.10.2020 20:31:02 записан.
27.10.2020 20:59:01—Не удалось записать номенклатуру Доставка заказа {ОбщийМодуль.Б_ОбменССайтомСерверЗагрузкиДанных.Модуль(3108)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульОбъекта(275)}: Значение поля «Рабочее наименование» не уникально

Дальше, открываем заказ в 1С — вместо доставки пустое поле в списке товаров с ценой доставки и ошибки внизу от 1с
Ошибка: {ОбщийМодуль.КК_Сервер.Модуль(109)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
Ошибка: {ОбщийМодуль.КК_Сервер.Модуль(109)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
Ошибка: {ОбщийМодуль.КК_Сервер.Модуль(109)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры

Когда заказ делает клиент, не входящий в группу пользователей а просто новый клиент или зарегистрированный на сайте — всё выгружается нормально, без ошибок. 1С переписанная, обновление модуля или самой конфигурации не вариант.
1С Управление торговлей, редакция 11 (11.3.4.81) модуль обмена 7.0.1.5

  • Ошибка при вызове метода контекста записать не удалось записать договоры контрагентов
  • Ошибка при вызове метода контекста записать нарушение прав доступа
  • Ошибка при вызове метода контекста записать конфликт блокировок при выполнении транзакции
  • Ошибка при вызове метода контекста записать каталог не обнаружен
  • Ошибка при вызове метода контекста записать значение поля номер не уникально