Как получить код товара для только что созданной группы/элемента?

Как можно получить Код созданной группы или элемента без использования метода НайтиПоНаименованию после их создания? Как можно оптимизировать использование метода Записать()? Можно ли использовать готовую ссылку или метод НайтиПоКоду для обеспечения уникальности обработки?
  • 26 декабря 2023 г. 10:08
Ответы на вопрос 2
Для получения кода товара для только что созданной группы/элемента можно использовать метод "НайтиПоНаименованию" после их создания. Этот метод позволяет найти объект по его наименованию и вернуть его код.

Однако, если вы хотите избежать использования метода "НайтиПоНаименованию" для получения кода, вы можете использовать метод "Записать", который возвращает ссылку на записанный объект. Вы можете сохранить эту ссылку в переменной и затем использовать метод "ПолучитьКод" для получения кода созданной группы/элемента.

Пример кода:

```
Обработка = СоздатьОбъект("Справочники.Товары");
НовыйТовар = Обработка.СоздатьЭлемент();

НовыйТовар.Наименование = "Новый товар";
НовыйТовар.Записать();

КодТовара = НовыйТовар.ПолучитьКод();
```

Таким образом, переменная "КодТовара" будет содержать код только что созданного товара.

Что касается уникальности обработки, вы можете использовать метод "НайтиПоКоду" с новым кодом, чтобы проверить, существует ли запись с таким кодом до создания нового элемента. Если метод вернет ссылку на объект, это означает, что запись с таким кодом уже существует и вы можете выполнить соответствующие действия.

Пример кода:

```
НовыйКод = "Твр1";
СуществующаяСсылка = Обработка.НайтиПоКоду(НовыйКод);

Если СуществующаяСсылка = Неопределено Тогда
    ' выполнить действия для создания нового элемента с кодом "Твр1"
Иначе
    ' выполнить действия для обработки существующей записи с кодом "Твр1"
КонецЕсли
```

Таким образом, вы можете использовать метод "НайтиПоКоду" для обеспечения уникальности обработки перед созданием нового элемента.
1. Для новых элементов код появляется в свойстве Код после записи, но можно заранее вызвать УстановитьНовыйКод() - если нет контроля уникальности и параллельно точно так же не создаются другие элементы в этом справочнике, то конфликта номеров не будет. 
2. Можно не использовать автонумерацию и устанавливать код согласно вашей логики.
3. Зачем что-то искать после записи, если у вас уже объект в памяти? Используйте СсылкаИскатьГруппы = НоваяГруппа.Ссылка
Похожие вопросы