Здравствуйте Коллеги. Уже третья тема на форуме.
Вопрос следующий.
Кто может подсказать по поводу массива подстрок?
---
В итоге получаем следующее:

```1c
    Для каждого Стр Из Объект.Товары Цикл
    Если Найти(Стр.Штрихкод, ":") > 0 Тогда
    МассивШтрихкодов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр.Штрихкод, ":");
    Для Шаг = 0 По МассивШтрихкодов.Количество()-1 Цикл
    Штрихкод = Справочники.ШтрихКодыКовров.НайтиПоКоду(МассивШтрихкодов[Шаг]).ПолучитьОбъект();
    Штрихкод.Оприходован= Истина;
    Штрихкод.Записать();
    КонецЦикла;
    Иначе
    Штрихкод = Справочники.ШтрихКодыКовров.НайтиПоКоду(Стр.Штрихкод).ПолучитьОбъект();
    Штрихкод.Оприходован= Истина;
    Штрихкод.Записать();
    КонецЕсли;
    КонецЦикла;
```
---
Конкретизируйте вопрос пожалуйста, Архитектор 1С :)
---
Не правильно охарактеризовал тему))
(2)
---
Не совсем понятен вопрос. Если исходить из названия темы, то делаем запрос ссылок элементов справочника. Потом в цикле

```1c
    ЭлементСправочника= СсылкаНаЭлемент.ПолучитьОбъект();
    ЭлементСправочника.Галочка = Истина;
    ЭлементСправочника.Записать();
```
---
Угу, заинтриговал и в кусты))
---
Я тут)
---
```1c
    СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка, разделитель)
```

Описание:

```1c
    // Разбивает строку на несколько строк по указанному разделителю. Разделитель может иметь любую длину.
    // В случаях, когда разделителем является строка из одного символа, и не используется параметр СокращатьНепечатаемыеСимволы,
    // рекомендуется использовать функцию платформы СтрРазделить.
    //
    // Параметры:
    // Значение - Строка - текст с разделителями;
    // Разделитель - Строка - разделитель строк текста, минимум 1 символ;
    // ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк.
    // Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией:
    // - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки
    // включаются в результат.
    // - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в
    // случае разделителя-пробела результатом функции будет массив, содержащий одно значение " (пустая строка), а
    // при других разделителях результатом функции будет пустой массив.
    // СокращатьНепечатаемыеСимволы - Булево - сокращать непечатаемые символы по краям каждой из найденных подстрок.
    //
    // Возвращаемое значение:
    // Массив - массив строк.
    //
    // Пример:
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",")
    // - возвратит массив из 5 элементов, три из которых - пустые: ", "один", ", "два", ";
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина)
    // - возвратит массив из двух элементов: "один", "два";
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(" один два ", " ")
    // - возвратит массив из двух элементов: "один", "два";
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(")
    // - возвратит пустой массив;
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(",,Ложь)
    // - возвратит массив с одним элементом: "(пустая строка);
    // СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(", " ")
    // - возвратит массив с одним элементом: " (пустая строка).
    //
```
---
Есть документ "ТоварПоступление", в нем имеется кнопка "Загрузить данные с экзеля",
Кнопка считывает штрихкода с файла и вставляет в табличную часть.
Ниже хочу привести пример в виде скриншота.
Как видите для одной позиции имеется два штрих-кода.
Мне нужно получить каждый отдельно,и чтобы после проведения документа, проставлялось значение "Истина" в справочнике "Штрих-коды ковров" как оприходован.
---
Это в обратную сторону. А добавлять разделитель "Строка1" + ";" + "Строка2" + ";" +...+"Строкаn" + ";". До сих пор не понятна конкретная задача
---
В файле эти штрихкоды в таком виде как в примере или отдельными строками?
---
по отдельности в вертикальном положении
---
У меня проблема сейчас такова.
Что я недавно восстановил данные склада одной организации.
То есть эти штрихкоды сохранены в справочнике,но не отмечены как "оприходован" в справочнике(ниже прикрепил скрин). Я хочу понять как мне сделать так, чтобы при проведение каждый штрих код данной склада, проставилась галочка "Оприходован". Из-за отсутствия "галочки", не получается реализовать товар.
---
Еще уточняющий вопрос. Вы хотите загрузить шрихкоды в строку ТЧ или по штрихкодам из строки ТЧ найти элемент в справочнике и проставить галочку?
---
Для варианта "по штрихкодам из строки ТЧ найти элемент в справочнике и проставить галочку"

МассивШтрихкодов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Штрихкод, ":");

Потом запрос в справочник "Штрих-коды ковров" в параметр запроса Запрос.УстановитьПараметр("Штрихкод", МассивШтрихкодов);

Потом цикл по выборке:

```1c
    Пока Выборка.Следующий() Цикл
    ЭлементСправочника= СсылкаНаЭлемент.ПолучитьОбъект();
    ЭлементСправочника.Оприходован= Истина;
    ЭлементСправочника.Записать();
    КонецЦикла;
```
---
Или без запроса после получения массива штрихкодов

```1c
    Для Шаг = 0 По МассивШтрихкодов.Количество()-1 Цикл
    Штрихкод = Справочники.ШтрихКодыКовров.НайтиПоКоду(МассивШтрихкодов[Шаг]).ПолучитьОбъект();
    Штрихкод.Оприходован= Истина;
    Штрихкод.Записать();
    КонецЦикла;
```
---
В итоге получаем следующее:

```1c
    Для каждого Стр Из Объект.Товары Цикл
    Если Найти(Стр.Штрихкод, ":") > 0 Тогда
    МассивШтрихкодов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр.Штрихкод, ":");
    Для Шаг = 0 По МассивШтрихкодов.Количество()-1 Цикл
    Штрихкод = Справочники.ШтрихКодыКовров.НайтиПоКоду(МассивШтрихкодов[Шаг]).ПолучитьОбъект();
    Штрихкод.Оприходован= Истина;
    Штрихкод.Записать();
    КонецЦикла;
    Иначе
    Штрихкод = Справочники.ШтрихКодыКовров.НайтиПоКоду(Стр.Штрихкод).ПолучитьОбъект();
    Штрихкод.Оприходован= Истина;
    Штрихкод.Записать();
    КонецЕсли;
    КонецЦикла;
```
---
Ужас какой. Написал с закрытими глазами за 2 минуты.
Если версия платформы выше 8,3,5 тогда МассивШтрихКодов = СтрРазделить(Строка, ";",Ложь)
Если ниже - функция БСП - МассивШтрихКодов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Штрихкод, ";");
Потом

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "Выбрать Ссылка из Справочник.ШтрихКодыТоваров КАК ШтрихКоды где НЕ ШтрихКоды.Опроиходован И ШтрихКоды.Код в &МассивШтрихКодов";
    Запрос.УстановитьПараметр("МассивШтрихКодов",МассивШтрихКодов )
    Результат = Запрос.Выполнить();

    Если Не Результат.Пустой() Тогда
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
    Спробъект.Оприходован = Истина;
    Спробъект.Записать();
    КонецЦикла
    КонецЕсли
```
---
Спасибо за содействие и помощь в решении данной проблемы! Я junior_1c))