Как убрать "Количество" из структуры при методе НайтиСтроки?
Приведу пример для чего это нужно:
Например, при загрузке данных код, наименование и количество уже есть, но во второй раз пользователь захотел поменять количество. И чтобы не было дублей, нужно просто заменить значение в ключе "Количество", а не менять всю строку ТЧ.

Первая загрузка:
123 Деталь 3
Вторая загрузка:
123 Деталь 5
В итоге должно остаться:
123 Деталь 5

ТЗ = Объект.СтруктураИзделия.Выгрузить();

 Структура = Новый Структура;
 Структура.Вставить("КодДетали", "");
 Структура.Вставить("НаименованиеДетали", "");
 Структура.Вставить("Количество", 0);

 Попытка

  Если СокрЛП(ОбластьСтруктураИзделия.Область(15,2,15,2).Текст) = "Код детали, сборочного узла*" Тогда
   Структура.КодДетали = СокрЛП(ОбластьСтруктураИзделия.Область(15,3,15,3).Текст);
  Иначе
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = "Не удалось загрузить данные, так как неверно указаны данные в колонке ""Общие сведения"" в строке 15";
   Сообщение.Сообщить();
   Возврат;
  КонецЕсли;
  Если СокрЛП(ОбластьСтруктураИзделия.Область(16,2,16,2).Текст) = "Наименование детали, сборочного узла*" Тогда
   Структура.НаименованиеДетали = СокрЛП(ОбластьСтруктураИзделия.Область(16,3,16,3).Текст);
  Иначе
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = "Не удалось загрузить данные, так как неверно указаны данные в колонке ""Общие сведения"" в строке 16";
   Сообщение.Сообщить();
   Возврат;
  КонецЕсли;
  Если СокрЛП(ОбластьСтруктураИзделия.Область(17,2,17,2).Текст) = "Количество в составе изделия*" Тогда
   Структура.Количество = Число(ОбластьСтруктураИзделия.Область(17,3,17,3).Текст);
  Иначе
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = "Не удалось загрузить данные, так как неверно указаны данные в колонке ""Общие сведения"" в строке 17";
   Сообщение.Сообщить();
   Возврат;
  КонецЕсли;

  МассивСтрок = ТЗ.НайтиСтроки(Структура);

  Если МассивСтрок.Количество() = 0 Тогда
   СтрокаДанных = ТЗ.Добавить();
  Иначе
   СтрокаДанных = МассивСтрок[0];
  КонецЕсли;

  ЗаполнитьЗначенияСвойств(СтрокаДанных, Структура);

  Если НЕ ЗначениеЗаполнено(СтрокаДанных.УИДСтроки) Тогда
   УИД = Новый УникальныйИдентификатор;
   СтрокаДанных.УИДСтроки = УИД;
  КонецЕсли;

  Объект.СтруктураИзделия.Загрузить(ТЗ);

 Исключение
  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Не удалось загрузить данные: " + ОписаниеОшибки();
  Сообщение.Сообщить();
 КонецПопытки;
---
Написал так:

СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("КодДетали", Структура.КодДетали);
СтруктураОтбор.Вставить("НаименованиеДетали", Структура.НаименованиеДетали);

МассивСтрок = ТЗ.НайтиСтроки(СтруктураОтбор);
СтруктураБезКоличества.Вставить("Количество", Структура.Количество);
Если МассивСтрок.Количество() = 0 Тогда
СтрокаДанных = ТЗ.Добавить();
Иначе
СтрокаДанных = МассивСтрок[0];
КонецЕсли;

ЗаполнитьЗначенияСвойств(СтрокаДанных, СтруктураОтбор);

Всё равно создаются дубли
---
что нужно-то в итоге получить для КодДетали1, НаименованиеДетали1?

Вот есть в источнике данные:

КодДетали1, наименованиеДетали1, Количество1
КодДетали1, наименованиеДетали1, Количество2
..............
КодДетали1, наименованиеДетали1, КоличествоN

Судя по описанию, должно остаться КодДетали1, НаименованиеДетали1, КоличествоN.

```1c
    Отбор = Новый Структура("КодДетали, НаименованиеДетали", СтрокаИсходныхДанных.КодДетали, СтрокаИсходныхДанных.НаименованиеДетали);

    МассивСтрок = ТЗ.НайтиСтроки(Отбор);
    Если ЗначениеЗаполнено(МассивСтрок) Тогда
    СтрокаТЗ = МассивСтрок[0];
    Иначе
    СтрокаТЗ = ТЗ.Добавить();
    КонецЕсли;

    ЗаполнитьЗначенияСвойств(СтрокаТЗ, СтрокаИсходныхДанных, "Количество");
```

Если дубли все равно есть, значит МассивСтрок - пустой, такое может быть в том случае, когда значения КодДетали/НаименованиеДетали обрезаются в колонках ТЗ до какой-то определенной длины, заведомо меньшей, чем длина исходного значения.
---
В итоге просто КодДетали был 12, а в реквизите было максимальное 10, поэтому создавались дубли
---
В Синтаксис-помощнике все предельно четко написано:

```1c
    Структура.Удалить("Ключ")
```

Что мешает сделать отдельную структуру для отбора в ТЗ?
---
Если удалить из структуры ключ "Количество", то как запишется количество второй раз?
---
внезапно: после поиска в ТЗ добавить ключ заново, либо искать в ТЗ без ключа "Количество" и добавить его для дальнейшей обработки
---
СтруктураБезКоличества = Новый Структура;
СтруктураБезКоличества.Вставить("КодДетали", Структура.КодДетали);
СтруктураБезКоличества.Вставить("НаименованиеДетали", Структура.НаименованиеДетали);

МассивСтрок = ТЗ.НайтиСтроки(СтруктураБезКоличества);
Вы это имеете ввиду?
---
Да, назвать ее Отбор, чтобы не путаться в "Структура......"
---
Написал так:

СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("КодДетали", Структура.КодДетали);
СтруктураОтбор.Вставить("НаименованиеДетали", Структура.НаименованиеДетали);

МассивСтрок = ТЗ.НайтиСтроки(СтруктураОтбор);
СтруктураБезКоличества.Вставить("Количество", Структура.Количество);
Если МассивСтрок.Количество() = 0 Тогда
СтрокаДанных = ТЗ.Добавить();
Иначе
СтрокаДанных = МассивСтрок[0];
КонецЕсли;

ЗаполнитьЗначенияСвойств(СтрокаДанных, СтруктураОтбор);

Всё равно создаются дубли
---
что нужно-то в итоге получить для КодДетали1, НаименованиеДетали1?

Вот есть в источнике данные:

КодДетали1, наименованиеДетали1, Количество1
КодДетали1, наименованиеДетали1, Количество2
..............
КодДетали1, наименованиеДетали1, КоличествоN

Судя по описанию, должно остаться КодДетали1, НаименованиеДетали1, КоличествоN.

```1c
    Отбор = Новый Структура("КодДетали, НаименованиеДетали", СтрокаИсходныхДанных.КодДетали, СтрокаИсходныхДанных.НаименованиеДетали);

    МассивСтрок = ТЗ.НайтиСтроки(Отбор);
    Если ЗначениеЗаполнено(МассивСтрок) Тогда
    СтрокаТЗ = МассивСтрок[0];
    Иначе
    СтрокаТЗ = ТЗ.Добавить();
    КонецЕсли;

    ЗаполнитьЗначенияСвойств(СтрокаТЗ, СтрокаИсходныхДанных, "Количество");
```

Если дубли все равно есть, значит МассивСтрок - пустой, такое может быть в том случае, когда значения КодДетали/НаименованиеДетали обрезаются в колонках ТЗ до какой-то определенной длины, заведомо меньшей, чем длина исходного значения.
---
В итоге просто КодДетали был 12, а в реквизите было максимальное 10, поэтому создавались дубли
---
```1c
    Структура.Вставить("Количество", НужноеКоличествоВоВторойРаз);
```
---
В том-то и дело, что нужное количество неизвестно,т.к. данные берутся из загружаемого файла Excel
---
```1c
    Структура.Вставить("Количество", НужноеКоличествоВоВторойРазИзФайлаExcel);
```
---
у вас и в первый раз, там всегда 0, ибо нет в коде нового присвоения количества, так что, особо ничего не поменяется
---
Ошибаетесь, есть
Структура.Количество = Число(ОбластьСтруктураИзделия.Область(17,3,17,3).Текст);
---
ну, ищи тогда просто своё изделие, без количества в ТЗ, потом уже количество устанавливай.

И да, для этой задачи, ТЗ вообще не нужна, всё можно сделать в самой ТЧ. Там есть все те же методы.
---
Думаю, не совсем хорошо сразу в ТЧ всё грузить