Если элементы формы Артикул1 Артикул2 Артикул3

Вопрос. Как записать данные в них Я хочу обходить циклом их заполнение и чтобы было что-то вроде такого

ЭлементыФормы.Список.Колонки.Артикул+Строка.НомерСтроки

Нужно чтобы число из Номера строки подставлялось к Артикул и получалась ссылка. Возможно ли это сделать?
---
Есть ОформлениеСтроки. ОформлениеСтроки.Ячейки.Артикул1.Текст = Нужный артикул.
---
и получалась ссылка - какая ссылка ?
---
вопрос не понятен абсолютно, согласен с (2)...
Вы хотите к строковому полю "Артикул" прибавить числовое поле "Номер строки" и из этих данных получить ссылку?
Боюсь, если это так, то выглядит это как черная магия!
---
На форме списка номенклатуры есть пять колонок Артикул1 Артикул2...Артикул5

Мне необходимо чтобы они заполнялись в цикле
---
Если количество колонок всегда одинаковое то так

```1c
    Для каждого стр из Таблицы Цикл

    СправочникОбъект = Справочники.НазваниеСправочника.СоздатьЭлемент();
    СправочникОбъект.Реквизит = Стр.Артикул1 + стр.НомерСтроки;
    СправочникОбъект.Записать();

    СправочникОбъект = Справочники.НазваниеСправочника.СоздатьЭлемент();
    СправочникОбъект.Реквизит = Стр.Артикул2 + стр.НомерСтроки;
    СправочникОбъект.Записать();

    СправочникОбъект = Справочники.НазваниеСправочника.СоздатьЭлемент();
    СправочникОбъект.Реквизит = Стр.Артикул3 + стр.НомерСтроки;
    СправочникОбъект.Записать();

    СправочникОбъект = Справочники.НазваниеСправочника.СоздатьЭлемент();
    СправочникОбъект.Реквизит = Стр.Артикул4 + стр.НомерСтроки;
    СправочникОбъект.Записать();

    СправочникОбъект = Справочники.НазваниеСправочника.СоздатьЭлемент();
    СправочникОбъект.Реквизит = Стр.Артикул5 + стр.НомерСтроки;
    СправочникОбъект.Записать();

    КонецЦикла;
```
---
А если Элемент уже создан?
---
Перед создание объекта делаете поиск, если есть, то пропускаете.

```1c
    Название = Стр.Артикул2 + стр.НомерСтроки;
    Нашли = Справочник.НазваниеСправочника.НайтиПоНаименованию(Название,Истина);
    Если ЗначениеЗаполнено(Нашли) Тогда
    //Ничего
    Иначе
    //Создаем
    КонецЕсли;
```
---
Я не создаю объект... Мне просто данными заполнить надо те элементы которые я уже создал на форме
(10)Я знаю, так и задумано
---
Еще не понятней, какие элементы на форме?
Покажите как выглядит форма и какие элементы имеете ввиду.
---
Для чего 100500 артикулов у одной номенклатуры?
---
Это артикулы поставщика
---
Хорошо. Для чего они именно в форме списка номенклатуры? по ним поиск выполнятся будет или что?
---
Для информации
---
Хорошо. Совет из (24) - ваш случай.
---
я как-то так себе это представляю

```1c
    Для каждого Строка ИЗ ДанныеСтроки.Ссылка.МТД_Поставщики Цикл
    //ЭлементыФормы.Список.Колонки.АртикулПоставщика1.Видимость = Истина;
    Элемент = "ЭлементыФормы.Список.Колонки.АртикулПоставщика" + Строка.НомерСтроки;
    //ЭлементыФормы.Список.Колонки.АртикулПоставщика+"Строка.НомерСтроки"+.Данные = Строка.Артикул;
    //Если Строка.НомерСтроки = 5 Тогда
    // Прервать;
    //КонецЕсли;
    КонецЦикла;
```
---
Элементы формы на то и элементы формы, чтобы отображать данные и работать с событиями.
Заполнять надо данные, с которыми связаны эти элементы.
Если элементы создаются программно, то заполнять надо реквизиты формы.
Что указано в "ПутьКДанным" для Артикул_N ?
Откуда уверенность в точном порядке этих артикулов?
Нужно изначально, при получении данных и создании реквизитов сохранить соответствие между ними.
Что-то вроде соответствия Поставщик -> ИмяКолонкиАртикула
И при заполнении данных делать:

```1c
    ...
    СтрокаДанных = Данные.Добавить();
    ...
    Для каждого СтрокаПоставщика ИЗ ДанныеСтроки.Ссылка.МТД_Поставщики Цикл
    СтрокаДанных[Соответствие.Получить(СтрокаПоставщика.Поставщик)] = СтрокаПоставщика.Артикул;
    КонецЦикла;
```

А если в одном "ДанныеСтроки.Ссылка.МТД_Поставщики" 3 строки, а в другом - 7, что будет?
---
В одном будет 3 заполнено, а в другом 5
---
//Если Строка.НомерСтроки = 5 Тогда
   // Прервать;
   //КонецЕсли;

Если так написать, то дойдя до пятой строки, будет прерван цикл. А в списке у Вас может быть 100 строк.
---
Вот так вот я хотел ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
---
А зачем? Если колонок всего 5.
Это у Вас форма списка, а что такое колонки артикул1 и далее? Просто добавленные колонки и хотите выводить артикулы из последующих строк номенклатуры?

```1c
    ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
```

При такой конструкции, для первой строки будет первая колонка.
Для второй вторая и так далее. То есть для 5 строк своя колонка, но зачем это надо?
---
Не знаю. Зачем-то надо)
---
Только почему-то значение вот так не записывается

ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки] = Артикул
---
Они и не заполнятся. Это надо делать "при получение данных" или "при выводе строк". Надо работать с оформлением. То есть меняется не элемент, а просто в списке выводятся нужные данные, даже если они не связаны с элементом.
---
при выводе строк

При этом работаю
---
ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
А это равносильно
ЭлементыФормы.Список.Колонки.АртикулПоставщика1 и это будет колонка, где значение записать нельзя.
---
А где можно?
---
Есть ОформлениеСтроки. ОформлениеСтроки.Ячейки.Артикул1.Текст = Нужный артикул.
---
Спасибо, понял, сделал
---
А при открытии документа можно так же в элементы формы в ТЧ записывать артикулы??
---
Опять не понятен вопрос.
Как понять в ТЧ документы?
Если речь о том, что бы что то вывести в реквизит формы списка или ТЧ, то да. Через оформление строки можно вывести любые данные и не изменять объект. Когда надо показать данные или раскрасить для визуализации.
И пишется это не при открытие, а при получение данных или выводе строки. Так как эти действия в любом случае выполняются при открытие формы, когда формируется ТЧ или список.
---
Не, с этим я справился теперь надо в ТЧ документа в те же реквизиты формы. Фориы обычные если что. И нужно при открытии документа
---
Еще раз для ТЧ и списков при открытие ничего делать не надо. Делайте в событиях при получение данных или при выводе строк. Они в любом случаю будут отработаны.
Если надо один раз подставить, то при выводе строк.
Или я опять чего то не понимаю.
---
А, все, дошло, спасибо, я туплю)
---
Почему-то не правильно записывает, весь столбик перезаписывает(

Вот второй столбик артикул должен быть заполнен только у последней номенклатуры(красным выделил), а он всю заполняет почему-то

```1c
    Для каждого Строка ИЗ Товары Цикл

    Для каждого СтрокаПоставщики ИЗ Строка.Номенклатура.МТД_Поставщики Цикл
    ЭлементыФормы.Товары.Колонки["АртикулПоставщика"+СтрокаПоставщики.НомерСтроки].Видимость = Истина;
    ОформлениеСтроки.Ячейки["АртикулПоставщика"+СтрокаПоставщики.НомерСтроки].Значение = СтрокаПоставщики.Артикул;
    Если СтрокаПоставщики.НомерСтроки = 5 Тогда
    Прервать;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;
```
---
Сделай отладку своего кода и все встанет на свои места :-)
В таких случаях первым делом надо пошагово пройтись по выполнению кода и посмотреть что выполняется и какие значения принимают.
---
Я уже понял, что первый цикл лишний был