1. Az18011993 25.03.20 07:27 Сейчас в теме

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

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

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

Вообще

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


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


2. Если таблица не пустая, то запихать ее в запрос, и сделать связь по ней.
3. maksbl 11 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"));
Элементы.Товары.ТекущиеДанные.неоСпецЦена = неоСпецЦена;

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

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день