Прибавить число к ссылке на элемент чтобы получилась ссылка

1. user1302499 09.07.20 10:48 Сейчас в теме
Если элементы формы Артикул1 Артикул2 Артикул3

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

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

Нужно чтобы число из Номера строки подставлялось к Артикул и получалась ссылка. Возможно ли это сделать?
По теме из базы знаний
Найденные решения
24. oleg-x 26 09.07.20 12:00 Сейчас в теме
(23) Есть ОформлениеСтроки. ОформлениеСтроки.Ячейки.Артикул1.Текст = Нужный артикул.
nomad_irk; user1302499; +2 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 09.07.20 10:52 Сейчас в теме
(1)
и получалась ссылка
- какая ссылка ?
3. M_A_D 184 09.07.20 10:56 Сейчас в теме
вопрос не понятен абсолютно, согласен с (2)...
Вы хотите к строковому полю "Артикул" прибавить числовое поле "Номер строки" и из этих данных получить ссылку?
Боюсь, если это так, то выглядит это как черная магия!
4. user1302499 09.07.20 11:01 Сейчас в теме
(3) На форме списка номенклатуры есть пять колонок Артикул1 Артикул2...Артикул5

Мне необходимо чтобы они заполнялись в цикле
6. oleg-x 26 09.07.20 11:05 Сейчас в теме
(4) Если количество колонок всегда одинаковое то так
Для каждого стр из Таблицы Цикл

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

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

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

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

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

КонецЦикла;
Показать
7. user1302499 09.07.20 11:06 Сейчас в теме
(6) А если Элемент уже создан?
9. oleg-x 26 09.07.20 11:09 Сейчас в теме
(7) Перед создание объекта делаете поиск, если есть, то пропускаете.
Название = Стр.Артикул2 + стр.НомерСтроки;
Нашли = Справочник.НазваниеСправочника.НайтиПоНаименованию(Название,Истина);
Если ЗначениеЗаполнено(Нашли) Тогда
//Ничего
Иначе
//Создаем
КонецЕсли;
11. user1302499 09.07.20 11:13 Сейчас в теме
(9) Я не создаю объект... Мне просто данными заполнить надо те элементы которые я уже создал на форме
(10)Я знаю, так и задумано
12. oleg-x 26 09.07.20 11:18 Сейчас в теме
(11) Еще не понятней, какие элементы на форме?
Покажите как выглядит форма и какие элементы имеете ввиду.
14. user1302499 09.07.20 11:21 Сейчас в теме
(12)
Прикрепленные файлы:
25. nomad_irk 71 09.07.20 12:22 Сейчас в теме
(14)Для чего 100500 артикулов у одной номенклатуры?
alex-l19041; +1 Ответить
26. user1302499 09.07.20 12:22 Сейчас в теме
(25) Это артикулы поставщика
27. nomad_irk 71 09.07.20 12:23 Сейчас в теме
(26)Хорошо. Для чего они именно в форме списка номенклатуры? по ним поиск выполнятся будет или что?
28. user1302499 09.07.20 12:24 Сейчас в теме
30. nomad_irk 71 09.07.20 12:25 Сейчас в теме
(28)Хорошо. Совет из (24) - ваш случай.
8. user1302499 09.07.20 11:07 Сейчас в теме
(6) я как-то так себе это представляю

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


А если в одном "ДанныеСтроки.Ссылка.МТД_Поставщики" 3 строки, а в другом - 7, что будет?
15. user1302499 09.07.20 11:23 Сейчас в теме
(13) В одном будет 3 заполнено, а в другом 5
5. user1302499 09.07.20 11:03 Сейчас в теме
(2)
Прикрепленные файлы:
10. oleg-x 26 09.07.20 11:11 Сейчас в теме
//Если Строка.НомерСтроки = 5 Тогда
// Прервать;
//КонецЕсли;

Если так написать, то дойдя до пятой строки, будет прерван цикл. А в списке у Вас может быть 100 строк.
16. user1302499 09.07.20 11:34 Сейчас в теме
(10) Вот так вот я хотел ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
17. oleg-x 26 09.07.20 11:39 Сейчас в теме
А зачем? Если колонок всего 5.
Это у Вас форма списка, а что такое колонки артикул1 и далее? Просто добавленные колонки и хотите выводить артикулы из последующих строк номенклатуры?

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

При такой конструкции, для первой строки будет первая колонка.
Для второй вторая и так далее. То есть для 5 строк своя колонка, но зачем это надо?
18. user1302499 09.07.20 11:48 Сейчас в теме
(17) Не знаю. Зачем-то надо)
19. user1302499 09.07.20 11:49 Сейчас в теме
(17) Только почему-то значение вот так не записывается

ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки] = Артикул
20. oleg-x 26 09.07.20 11:51 Сейчас в теме
Они и не заполнятся. Это надо делать "при получение данных" или "при выводе строк". Надо работать с оформлением. То есть меняется не элемент, а просто в списке выводятся нужные данные, даже если они не связаны с элементом.
22. user1302499 09.07.20 11:56 Сейчас в теме
(20)
при выводе строк


При этом работаю
21. oleg-x 26 09.07.20 11:54 Сейчас в теме
ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
А это равносильно
ЭлементыФормы.Список.Колонки.АртикулПоставщика1 и это будет колонка, где значение записать нельзя.
23. user1302499 09.07.20 11:57 Сейчас в теме
24. oleg-x 26 09.07.20 12:00 Сейчас в теме
(23) Есть ОформлениеСтроки. ОформлениеСтроки.Ячейки.Артикул1.Текст = Нужный артикул.
nomad_irk; user1302499; +2 Ответить
29. user1302499 09.07.20 12:24 Сейчас в теме
(24) Спасибо, понял, сделал
31. user1302499 09.07.20 14:18 Сейчас в теме
(24) А при открытии документа можно так же в элементы формы в ТЧ записывать артикулы??
32. oleg-x 26 09.07.20 14:24 Сейчас в теме
(31) Опять не понятен вопрос.
Как понять в ТЧ документы?
Если речь о том, что бы что то вывести в реквизит формы списка или ТЧ, то да. Через оформление строки можно вывести любые данные и не изменять объект. Когда надо показать данные или раскрасить для визуализации.
И пишется это не при открытие, а при получение данных или выводе строки. Так как эти действия в любом случае выполняются при открытие формы, когда формируется ТЧ или список.
33. user1302499 09.07.20 14:30 Сейчас в теме
(32) Не, с этим я справился теперь надо в ТЧ документа в те же реквизиты формы. Фориы обычные если что. И нужно при открытии документа
34. oleg-x 26 09.07.20 14:50 Сейчас в теме
(33) Еще раз для ТЧ и списков при открытие ничего делать не надо. Делайте в событиях при получение данных или при выводе строк. Они в любом случаю будут отработаны.
Если надо один раз подставить, то при выводе строк.
Или я опять чего то не понимаю.
35. user1302499 09.07.20 14:56 Сейчас в теме
(34) А, все, дошло, спасибо, я туплю)
36. user1302499 09.07.20 15:49 Сейчас в теме
(34) Почему-то не правильно записывает, весь столбик перезаписывает(

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

Для каждого Строка ИЗ Товары Цикл
	      
		  Для каждого СтрокаПоставщики ИЗ Строка.Номенклатура.МТД_Поставщики Цикл
		  	ЭлементыФормы.Товары.Колонки["АртикулПоставщика"+СтрокаПоставщики.НомерСтроки].Видимость = Истина;
		    ОформлениеСтроки.Ячейки["АртикулПоставщика"+СтрокаПоставщики.НомерСтроки].Значение = СтрокаПоставщики.Артикул;
			Если СтрокаПоставщики.НомерСтроки = 5 Тогда
				Прервать;
			КонецЕсли;	
			
		  КонецЦикла;
	КонецЦикла;
Показать
Прикрепленные файлы:
37. oleg-x 26 10.07.20 11:12 Сейчас в теме
(36) Сделай отладку своего кода и все встанет на свои места :-)
В таких случаях первым делом надо пошагово пройтись по выполнению кода и посмотреть что выполняется и какие значения принимают.
38. user1302499 10.07.20 12:32 Сейчас в теме
(37) Я уже понял, что первый цикл лишний был
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день