Коллеги, доброго времени суток.
Конфигурация Рарус. Розница. Ювелирный магазин 2.2.6.30
Прошу помочь в решении следующего вопроса.
С помощью отраслевой обработки "Загрузка данных из табличного документа" загружаю данные в табличную часть документа "Поступление товаров", причем для реквизита "Характеристика" установил режим загрузки "Загружать", это значит, что если этот файл открыть снова, то обработка создаст дубли. Как задать условие, при котором загрузка будет происходить только для тех "Характеристик", которых нет в одноименном справочнике(поиск по наименованию).
---
Может кому-то пригодится, для номенклатуры и характеристики сделал режим загрузки "вычислить" . ниже код для номенклатуры, для характеристики почти тоже самое

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ Артикул ИЗ Справочник.Номенклатура ГДЕ Артикул = &Артикул");
    Запрос.УстановитьПараметр("Артикул",ТекстыЯчеек[2]);
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
    НайденнаяЕдиницаОбъект = Справочники.Номенклатура.СоздатьЭлемент();
    НайденнаяЕдиницаОбъект.Наименование = (ТекстыЯчеек[1]);
    НайденнаяЕдиницаОбъект.Артикул = (ТекстыЯчеек[2]);
    НайденнаяЕдиницаОбъект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
    НайденнаяЕдиницаОбъект.ЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию("шт");
    НайденнаяЕдиницаОбъект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Ювелирное изделие");
    Попытка
    НайденнаяЕдиницаОбъект.Записать();
    Результат = НайденнаяЕдиницаОбъект.Ссылка;
    Исключение
    Сообщить("Не удалось записать");
    КонецПопытки;
    Иначе
    СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", (ТекстыЯчеек[2]));
    Результат = СсылкаНоменклатуры;
    КонецЕсли;
```
---
Номенклатура - Искать, а почему Характеристика - Загружать?
---
Еще по кнопке События можно добавить свои условия, если надо.
---
Извините, я только учусь. Помогите понять. Для Номенклатуры в модуле объекта для сохранения уникальности Артикула у меня добавлен следующий код

```1c
    Если ЭтоНовый() Тогда
    Запрос = Новый Запрос("ВЫБРАТЬ Артикул ИЗ Справочник.Номенклатура ГДЕ Артикул = &Артикул");
    Запрос.УстановитьПараметр("Артикул",Артикул);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "В базе есть такой Артикул";
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;
    КонецЕсли;
```

Переменную Артикул разумеется он не находит, когда добавляю код в событие. Как указать, чтобы артикул брал из определенной ячейки?
---
Оказалось просто. Артикул заменил на ТекстыЯчеек[2].

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ Артикул ИЗ Справочник.Номенклатура ГДЕ Артикул = &Артикул");
    Запрос.УстановитьПараметр("Артикул",ТекстыЯчеек[2]);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "В базе есть такой Артикул";
    Сообщение.Сообщить();
    Отказ = Истина;
    Иначе Отказ = Ложь;
    КонецЕсли;
```

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

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ Артикул ИЗ Справочник.Номенклатура ГДЕ Артикул = &Артикул");
    Запрос.УстановитьПараметр("Артикул",ТекстыЯчеек[2]);
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
    НайденнаяЕдиницаОбъект = Справочники.Номенклатура.СоздатьЭлемент();
    НайденнаяЕдиницаОбъект.Наименование = (ТекстыЯчеек[1]);
    НайденнаяЕдиницаОбъект.Артикул = (ТекстыЯчеек[2]);
    НайденнаяЕдиницаОбъект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
    НайденнаяЕдиницаОбъект.ЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию("шт");
    НайденнаяЕдиницаОбъект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Ювелирное изделие");
    Попытка
    НайденнаяЕдиницаОбъект.Записать();
    Результат = НайденнаяЕдиницаОбъект.Ссылка;
    Исключение
    Сообщить("Не удалось записать");
    КонецПопытки;
    Иначе
    СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", (ТекстыЯчеек[2]));
    Результат = СсылкаНоменклатуры;
    КонецЕсли;
```
---
отличный вариант, сам так не раз делал.
---
Так и указать режим искать, нет?
---
Видимо неточно сформулировал. Характеристика, преимущественно, от поставщика каждый раз приходит новая, поэтому выбран режим загружать, однако, бывают случаи, когда данная характеристика уже есть, поэтому не ясно, как задать условие, чтобы загружал, только если не нашел.
(3) Номенклатуру тоже бы по условию - загружать если не нашел, но раз не знаю как задать такое условие, то оставил искать.