Программное заполнение колонок таблицы на форме 1С

1. Az18011993 25.03.20 07:27 Сейчас в теме
Доброе утро,уважаемые форумчане!
В общем создал таблицу на форме, добавил колонки( Наименование(номенклатуры),Артикул,Группа,Размер,Цвет(Это две характеристики номенклатуры)). Могу ли я как то программно заполнить свою таблице всей номенклатурой из базы? В колонках "Наименование" и "Артикул", "Группа" добавлены ссылки на соответствующие им значения) Нужно ли мне как то в запросе,если я хочу сделать программное заполнение таблицы снова получать значения всех артикулов,имен и групп номенклатуры?Может кто подскажет?Заранее спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. demONx7 25.03.20 07:59 Сейчас в теме
(1)
Нужно ли мне как то в запросе,если я хочу сделать программное заполнение таблицы снова получать значения всех артикулов,имен и групп номенклатуры

А изначально они от куда заполняются?

Вообще

1. Если таблица пустая, то что-то типа такого:
ВЫБРАТЬ
	Номенклатура.Наименование,
.......
.......
	Номенклатура.Артикул
ИЗ
	Справочник.Номенклатура КАК Номенклатура


Далее
ВашаТаблица = Запрос.Выполнить.Выгрузить();


2. Если таблица не пустая, то запихать ее в запрос, и сделать связь по ней.
3. maksbl 12 25.03.20 08:15 Сейчас в теме
Через СКД проще все это сделать. Ну и запрос конечно правильно написать.
4. Az18011993 25.03.20 08:57 Сейчас в теме
(3))
&НаСервере
Процедура ЗаполнитьТаблицуНаСервере()
	
	   	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Номенклатура.Ссылка КАК Ссылка,
		|	Номенклатура.Артикул КАК Артикул,
		|	Номенклатура.Родитель.Ссылка КАК РодительСсылка
		|ПОМЕСТИТЬ ВТНоменклатура
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
		|ГДЕ
		|	Номенклатура.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ХарактеристикиНоменклатуры.Ссылка КАК Ссылка
		|ПОМЕСТИТЬ ВТХарактеристики
		|ИЗ
		|	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
		|ГДЕ
		|	ХарактеристикиНоменклатуры.Владелец.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	ВТНоменклатура.Ссылка КАК Ссылка,
		|	ВТНоменклатура.Артикул КАК Артикул,
		|	ВТНоменклатура.РодительСсылка КАК РодительСсылка
		|ИЗ
		|	ВТНоменклатура КАК ВТНоменклатура
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТХарактеристики КАК ВТХарактеристики
		|		ПО ВТНоменклатура.Ссылка = ВТХарактеристики.Ссылка.Владелец.Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Показать

Крч получаю значения номенклатуры,артикула и группы номенклатуры,вопрос...Я просто еще начинающий)Как мне получить ссылку на номенклатуры?Ведь запрос то с ней по идее работает
6. demONx7 25.03.20 09:55 Сейчас в теме
(4)
Как мне получить ссылку на номенклатуры?


Что это значит?

У вас в результате запроса будут ссылка на номенклатуру (Ссылка), ссылка на родитель (РодительСсылка), ну и собственно артикул номенклатуры.

Потом в обходке результата запроса можно и выдернуть ссылку на номенклатуру.
5. Az18011993 25.03.20 09:28 Сейчас в теме
Просто результатом запроса у меня будет таблица,но не пойму с каким параметром,где Запрос установить параметр, пробовал указывать там Запрос.УстановитьПараметр("Ссылка", &Ссылка);
Потом писал конструкцию что то типо...РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Но по кнопке ничего не заполняется(
7. demONx7 25.03.20 09:58 Сейчас в теме
(5)
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Если про этот кусок кода вопрос, то нужно в переменную "Ссылка" засунуть ссылку на нужную номенклатуру. Тогда запрос отработает только по ней.
8. Az18011993 25.03.20 10:20 Сейчас в теме
(7)Спасибо,разобрался)
[1C-CODE][/Таблица = РезультатЗапроса.Выгрузить();
Для каждого СтрокаТЧ из КаталогНСИ цикл
НоваяСтрока = КаталогНСИ.Добавить();
ЗаполнитьЗначения(НоваяСтрока, СтрокаТЧ);

КонецЦикла
CODE]
Почему у меня конфигуратор не находит функцию ЗаполнитьЗначения?Она же вроде встроенная в конфигураторе или я что-то путаю?
9. demONx7 25.03.20 11:01 Сейчас в теме
(8)
Почему у меня конфигуратор не находит функцию ЗаполнитьЗначения?

Потому что она называется ЗаполнитьЗначенияСвойств();
10. Az18011993 25.03.20 13:03 Сейчас в теме
(9)Да, спасибо) Вопрос, мне тут нужно значение определенной колонки разбить на 2,можно ли это как то сделать же?
Прикрепленные файлы:
11. demONx7 25.03.20 15:50 Сейчас в теме
Можно. Есть стандартная функция РазложитьСтрокуВМассивПодстрок().
Запихиваешь туда строку, получаешь массив. И уже элементы массива разносишь по колонкам.
12. Az18011993 25.03.20 16:02 Сейчас в теме
Для каждого Строка Из Объект.Товары Цикл
	неоСпецЦена = УправлениеСвойствами.ЗначениеСвойства(СсылкаНоменклатура, ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Спец.Цена_d078077753ff4044b46b0f07861294b3"));	
	Строка.неоСпецЦена = неоСпецЦена;
КонецЦикла;

Как мне заполнить именно текущую строку значением ТЧ,а не все строки как в моем примере?
13. demONx7 26.03.20 02:48 Сейчас в теме
 неоСпецЦена = УправлениеСвойствами.ЗначениеСвойства(СсылкаНоменклатура, ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Спец.Цена_d078077753ff4044b46b0f07861294b3"));    
Элементы.Товары.ТекущиеДанные.неоСпецЦена = неоСпецЦена;
14. Az18011993 26.03.20 07:41 Сейчас в теме
(13)
неоСпецЦена = УправлениеСвойствами.ЗначениеСвойства(СсылкаНоменклатура, ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Спец.Цена_d078077753ff4044b46b0f07861294b3"));
Элементы.Товары.ТекущиеДанные.неоСпецЦена = неоСпецЦена;

Все бы хорошо... но мне надо как то передать это на сервер,у меня значения в колонке не меняются(
Оставьте свое сообщение

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