Добрый день. Помогите пожалуйста новичку разобраться с проблемой.
Загружаю в базу файл Excel. Из файла берутся только столбцы артикул, производитель, описание и ссылка на картинку.
Дальше создала кнопку, при нажатии на которую, по идее, артикул и производитель должен сравниваться со значениями в Справочнике Номенклатура, а при совпадении этих значений в Номенклатуру должны записываться данные из строки описание и ссылка на картинку.
Пишу вот так(вообще не уверена что мысль правильная):

```1c
    &НаКлиенте
    Процедура Объединить(Команда)
    Для Каждого Стр Из Объект.ДанныеПоискаИзExcel Цикл
    Сравнение = Сравнение.Сравнить(Объект.Артикул, Объект.ДанныеПоискаИзExcel.Артикул);
    Сравнение2 = Сравнение.Сравнить(Объект.Объект.Производитель, Объект.ДанныеПоискаИзExcel.Производитель);
    Если Объект.Артикул <> Объект.ДанныеПоискаИзExcel.Артикул или
    Объект.Производитель <> Объект.ДанныеПоискаИзExcel.Производитель Тогда
    Прервать
    КонецЕсли
    КонецЦикла;

    Для Каждого Стр Из Объект.ДанныеПоискаИзExcel Цикл

    Если Объект.Артикул = Объект.ДанныеПоискаИзExcel.Артикул и
    Объект.Производитель = Объект.ДанныеПоискаИзExcel.Производитель Тогда
    Объект.Описание = Объект.ДанныеПоискаИзExcel.ОписаниеТовара;
    Объект._ПутьКартинкамНаСайте = Объект.ДанныеПоискаИзExcel.СсылкаНаКартинку;
    Прервать
    КонецЕсли
    КонецЦикла;

    КонецПроцедуры
```

Когда в базе нажимаю кнопку, чтобы прошла операция выходит вот такая ошибка:
{Обработка.КартинкиИОписанияИзПрайса.Форма.Форма1.Форма(80)}: Поле объекта не обнаружено (Артикул)
 Сравнение = Сравнение.Сравнить(Объект.Артикул, Объект.ДанныеПоискаИзExcel.Артикул);

Я понимаю, что вероятнее всего нужно на Сервере вызвать справочник..

Подскажите, пожалуйста, как это можно сделать?
---
Могу только посоветовать читать книги по 1С. Для написания запросов в 1с механизм Конструктор запросов с ним легко можно написать нужный запрос.
1)
```1c
    | ПОМЕСТИТЬ ВыбНоваяСтрока
```

раз у тебя данные уже в объекте хранятся, то можно не помещать во временную таблицу,
2) зачем справочник номенклатура во вложенном запросе?
3)
```1c
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочники.Номенклатура.Объект.Описание КАК НоваяСтрока.ОписаниеТовара И Справочники.Номенклатура.Объект._ПутьКартинкамНаСайте КАК НоваяСтрока.СсылкаНаКартинку";
```

Неправильно
4)
```1c
    Запрос.УстановитьПараметр("Справочники.Номенклатура", ВыгружатьХарактеристики)
```

куда устанавливается параметр? имя параметра не должно содержать точку.

```1c
    Запрос.Текст = "
    | ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | ДанныеПоискаИзExcel .Артикул,
    | ДанныеПоискаИзExcel .Производитель,
    | ДанныеПоискаИзExcel .СсылкаНаКартинку,
    | ДанныеПоискаИзExcel .ОписаниеТовара,
    |
    |ИЗ
    | Объект.ДанныеПоискаИзExcel КАК ДанныеПоискаИзExcel
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочники.Номенклатура.Объект.Описание КАК Номенклатура
    |ПО Номенклатура.Артикул = ДанныеПоискаИзExcel .Артикул
    |И Номенклатура.Производитель.Наименование= ДанныеПоискаИзExcel .Производитель";
    ;
```

Дальше через цикл выборки обходишь результат запроса и для каждой номенклатуры получаешь объект (Выборка.Ссылка.ПолучитьОбъект()),и уже в объект вставляешь СсылкаНаКартинку и ОписаниеТовара и только потом записываешь объект
---
зачем цикл используешь если ты его не применяешь?
замени

```1c
    Объект.ДанныеПоискаИзExcel.Артикул
```

на

```1c
    Стр.Артикул
```
---
я так понимаю, Объект.ДанныеПоискаИзExcel это у тебя таблица значений?
Если да, то смотри метод НайтиСтроки. И никакого сравнения не нужно будет
---
Цикл я убрала.
Действительно, глупая ошибка. Спасибо.
Да, это таблица, которая берётся из Экселя.
А можно использовать этот метод если мне в начале сравнение нужно провести? Сейчас посмотрю.
---
т.е. я правильно понимаю, тебе нужно дозаполнить справочник номенклатура данными?
Тогда делай так, или обработка, или кнопка на форме списка. сначала выгружаешь ексель в таблицу значений, потом эту таблицу значений в запрос через временную таблицу.
И потом в запросе, полученную временную таблицу соединяй со справочником номенклатура, по двум полям "Артикул" и "производитель" левым соединением.
поля выбора у тебя будет Ссылка из справочника и 2 поля из временной таблицы "описание" и "ссылка на картинку". В выборке получаешь объект справочника, записываешь в него недостающие реквизиты и записываешь сам объект.
---
Спасибо большое! Попробую сделать.
---
Получилось вот так:

```1c
    &НаСервере
    Процедура ЗаполнитьХарактеристикиНаСервере(ВыгружатьХарактеристики)

    Запрос = Новый Запрос;
    Запрос.Текст = "
    | ВЫБРАТЬ
    | НоваяСтрока.Артикул,
    | НоваяСтрока.Производитель,
    | НоваяСтрока.СсылкаНаКартинку,
    | НоваяСтрока.ОписаниеТовара,
    | ПОМЕСТИТЬ ВыбНоваяСтрока
    |
    |ИЗ
    | Объект.ДанныеПоискаИзExcel КАК ВременнаяТаблица;
    | (ВЫБРАТЬ
    | Справочники.Номенклатура КАК ДанныеПоискаИзExcel,
    | Справочники.Номенклатура.Объект.Артикул КАК НоваяСтрока.Артикул,
    | Справочники.Номенклатура.Объект.Производитель КАК НоваяСтрока.Производитель,
    |ИЗ
    | Справочники.Номенклатура) КАК ДанныеПоискаИзExcel;
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочники.Номенклатура.Объект.Описание КАК НоваяСтрока.ОписаниеТовара И Справочники.Номенклатура.Объект._ПутьКартинкамНаСайте КАК НоваяСтрока.СсылкаНаКартинку";
    Запрос.УстановитьПараметр("Справочники.Номенклатура", ВыгружатьХарактеристики);

    КонецПроцедуры
```

Вот только не знаю как с кнопкой это связать...Чтобы из таблицы записались данные в номенклатуру
---
Могу только посоветовать читать книги по 1С. Для написания запросов в 1с механизм Конструктор запросов с ним легко можно написать нужный запрос.
1)
```1c
    | ПОМЕСТИТЬ ВыбНоваяСтрока
```

раз у тебя данные уже в объекте хранятся, то можно не помещать во временную таблицу,
2) зачем справочник номенклатура во вложенном запросе?
3)
```1c
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочники.Номенклатура.Объект.Описание КАК НоваяСтрока.ОписаниеТовара И Справочники.Номенклатура.Объект._ПутьКартинкамНаСайте КАК НоваяСтрока.СсылкаНаКартинку";
```

Неправильно
4)
```1c
    Запрос.УстановитьПараметр("Справочники.Номенклатура", ВыгружатьХарактеристики)
```

куда устанавливается параметр? имя параметра не должно содержать точку.

```1c
    Запрос.Текст = "
    | ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | ДанныеПоискаИзExcel .Артикул,
    | ДанныеПоискаИзExcel .Производитель,
    | ДанныеПоискаИзExcel .СсылкаНаКартинку,
    | ДанныеПоискаИзExcel .ОписаниеТовара,
    |
    |ИЗ
    | Объект.ДанныеПоискаИзExcel КАК ДанныеПоискаИзExcel
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочники.Номенклатура.Объект.Описание КАК Номенклатура
    |ПО Номенклатура.Артикул = ДанныеПоискаИзExcel .Артикул
    |И Номенклатура.Производитель.Наименование= ДанныеПоискаИзExcel .Производитель";
    ;
```

Дальше через цикл выборки обходишь результат запроса и для каждой номенклатуры получаешь объект (Выборка.Ссылка.ПолучитьОбъект()),и уже в объект вставляешь СсылкаНаКартинку и ОписаниеТовара и только потом записываешь объект
---
Спасибо большое!
Тяжело понять, когда первый раз делаешь :(
Да, литературу с удовольствием почитаю.
Потому что мне даже от Выборки страшно.
Получается нужно сделать выборку по Ссылке на картинку и Описанию в номенклатуре, а в конце записать туда данные?
---
Разобралась, спасибо!)