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

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

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

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

Нужно чтобы число из Номера строки подставлялось к Артикул и получалась ссылка. Возможно ли это сделать?
По теме из базы знаний
Найденные решения
24. oleg-x 27 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 27 09.07.20 11:05 Сейчас в теме
(4) Если количество колонок всегда одинаковое то так
Для каждого стр из Таблицы Цикл

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

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

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

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

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

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

Для каждого Строка ИЗ ДанныеСтроки.Ссылка.МТД_Поставщики Цикл 
		 //ЭлементыФормы.Список.Колонки.АртикулПоставщика1.Видимость = Истина;
		 Элемент = "ЭлементыФормы.Список.Колонки.АртикулПоставщика" + Строка.НомерСтроки;
		 //ЭлементыФормы.Список.Колонки.АртикулПоставщика+"Строка.НомерСтроки"+.Данные = Строка.Артикул;
		 //Если Строка.НомерСтроки = 5 Тогда
		 //    Прервать;
		 //КонецЕсли;	 
	КонецЦикла;	
Показать
13. comptr 31 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 27 09.07.20 11:11 Сейчас в теме
//Если Строка.НомерСтроки = 5 Тогда
// Прервать;
//КонецЕсли;

Если так написать, то дойдя до пятой строки, будет прерван цикл. А в списке у Вас может быть 100 строк.
16. user1302499 09.07.20 11:34 Сейчас в теме
(10) Вот так вот я хотел ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
17. oleg-x 27 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 27 09.07.20 11:51 Сейчас в теме
Они и не заполнятся. Это надо делать "при получение данных" или "при выводе строк". Надо работать с оформлением. То есть меняется не элемент, а просто в списке выводятся нужные данные, даже если они не связаны с элементом.
22. user1302499 09.07.20 11:56 Сейчас в теме
(20)
при выводе строк


При этом работаю
21. oleg-x 27 09.07.20 11:54 Сейчас в теме
ЭлементыФормы.Список.Колонки["АртикулПоставщика"+Строка.НомерСтроки]
А это равносильно
ЭлементыФормы.Список.Колонки.АртикулПоставщика1 и это будет колонка, где значение записать нельзя.
23. user1302499 09.07.20 11:57 Сейчас в теме
24. oleg-x 27 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 27 09.07.20 14:24 Сейчас в теме
(31) Опять не понятен вопрос.
Как понять в ТЧ документы?
Если речь о том, что бы что то вывести в реквизит формы списка или ТЧ, то да. Через оформление строки можно вывести любые данные и не изменять объект. Когда надо показать данные или раскрасить для визуализации.
И пишется это не при открытие, а при получение данных или выводе строки. Так как эти действия в любом случае выполняются при открытие формы, когда формируется ТЧ или список.
33. user1302499 09.07.20 14:30 Сейчас в теме
(32) Не, с этим я справился теперь надо в ТЧ документа в те же реквизиты формы. Фориы обычные если что. И нужно при открытии документа
34. oleg-x 27 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 27 10.07.20 11:12 Сейчас в теме
(36) Сделай отладку своего кода и все встанет на свои места :-)
В таких случаях первым делом надо пошагово пройтись по выполнению кода и посмотреть что выполняется и какие значения принимают.
38. user1302499 10.07.20 12:32 Сейчас в теме
(37) Я уже понял, что первый цикл лишний был
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот