Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 20:50
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Невозможно добавить новый элемент в справочник Номенклатура. Код не уникален  (Прочитано 16183 раз)

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

Оффлайн ПростоАлександр

  • **
  • Сообщений: 75
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-11-10
  • Сайт: 
Здравствуйте. Такая проблема: при добавлении нового элемента в справочник Номенклатура выскакивает ошибка:

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

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


Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
А вопрос? Код в новом элементе какой должен быть?(можно в отладчике посмотреть). Какой у вас максимальный код?

Оффлайн ПростоАлександр

  • **
  • Сообщений: 75
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-11-10
  • Сайт: 
Проблема в том, что когда в номенклатуре создаешь новый элемент для него необходимо задать базовую единицу измерения. А на основе нее выбирается единица хранения остатков из справочника ЕдиницыИзмерения, который подчинен справочнику Номенклатура. Так вот при записи выполняется такой код:

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

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

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

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


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

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
1. Используйте лидирующие нули в коде.
2. Какая у вас конфигурация? Почему неправильно, "ведь неправильно то, что каждый раз при создании элемнта Номенклатуры добавляется новый элемент в справочник ЕдиницыИзмерения"?
Смотря для какой типовой конфигурации.

Оффлайн ПростоАлександр

  • **
  • Сообщений: 75
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-11-10
  • Сайт: 
конфигурация Управление Торговлей...просто вроде бы как раньше в справочник ЕдиницыИзмерения не добавлялись новые объекты каждый раз при создании...
Странным на мой взгляд является то, что выборка из справочника происходит по владельцу, которым является создаваемый объект справочника Номенклатура. И если выборка ничего не обнаружила (а обнаружит она только при изменении, при создании нового еще нечему подчиняться), то создается новый элемент...

Оффлайн Lexius

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 16
  • КПД: 44%
  • Регистрация: 2010-11-10
  • Сайт: 
Возможно, у Вас косяк с нумерацией проблемного справочника.
 Не желательно иметь в одном справочнике номера с префиксами типа(!Пример!) "ГР00001" и "000001" если нумерация идет автоматом.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 292
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal