|
Вывод данных из таблицы значений в табличную часть формы | ☑ | ||
---|---|---|---|---|
0
Crimscon
24.05.18
✎
13:15
|
1С 8.2. Имеется форма, в которой есть таблица значений, называемая "ТаблицаТоваров".
Я отбираю запросом все розничные склады предприятия и создаю таблицу значений в которую добавляю колонки Номенклатуры, Склада и Наименования. Следующим шагом я создаю все колонки складов в форме и пытаюсь заполнить таблицу значений остатками. Вроде заполняет. Как потом данные из таблицы значений перенести в табличную часть формы? Код: Процедура ПриОткрытии() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Наименование КАК Склад, | Склады.Ссылка |ИЗ | Справочник.Склады КАК Склады |ГДЕ | Склады.ЯвляетсяРозничным"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ТЗСклады = Новый ТаблицаЗначений; ТЗСклады.Колонки.Добавить("Номенклатура"); ТЗСклады.Колонки.Добавить("Склад"); ТЗСклады.Колонки.Добавить("Наименование"); ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Номенклатура"); Пока Выборка.Следующий() Цикл Склад = СтрЗаменить(Выборка.Склад," ","_"); Склад = СтрЗаменить(Склад,".",""); Склад = СтрЗаменить(Склад,"-",""); ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Цена_"+Склад, Новый ОписаниеТипов(Новый КвалификаторыЧисла(12,2))); ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Остаток_"+Склад, Новый ОписаниеТипов(Новый КвалификаторыЧисла(12,2))); ЭлементыФормы.ТаблицаТоваров.Колонки["Остаток_"+Склад].Положение = ПоложениеКолонки.НаСледующейСтроке; Стр = ТЗСклады.Добавить(); Стр.Склад = Выборка.Ссылка; Стр.Наименование = Склад; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура, | ОстаткиНоменклатурыОстатки.Склад КАК Склад, | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки |ГДЕ | ОстаткиНоменклатурыОстатки.Склад В ИЕРАРХИИ(&Склад) |ИТОГИ | СУММА(Остаток) |ПО | Склад, | Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", ТЗСклады.ВыгрузитьКолонку("Номенклатура")); Запрос.УстановитьПараметр("Склад", ТЗСклады.ВыгрузитьКолонку("Склад")); Результат = Запрос.Выполнить(); ВыборкаСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСклад.Следующий() Цикл ВыборкаНоменклатура = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНоменклатура.Следующий() Цикл Стр = ТЗСклады.Добавить(); Склад = ВыборкаНоменклатура.Склад; Стр.Номенклатура = ВыборкаНоменклатура.Номенклатура; //Остаток = ВыборкаНоменклатура.Остаток; //ИмяКолонки = НайтиИмяКолонки(Склад,"Остаток_"); //ЭлементыФормы.ТаблицаТоваров.Колонки[ИмяКолонки] = Остаток; КонецЦикла; КонецЦикла; КонецПроцедуры Функция НайтиИмяКолонки(Склад,Префикс) Стр = ТЗСклады.Найти(Склад,"Склад"); Если Стр <> Неопределено Тогда Возврат Префикс+Стр.Наименование; КонецЕсли; КонецФункции |
|||
1
Crimscon
24.05.18
✎
13:15
|
Переменная ТЗСклады - глобальная. Объявляется выше.
|
|||
2
DrShad
24.05.18
✎
13:19
|
потом пишешь
ЭлементыФормы.МоеТабличноеПоле.Значение = МояГлобальнаяТаблица; ЭлементыФормы.МоеТабличноеПоле.СоздатьКолонки() |
|||
3
Crimscon
24.05.18
✎
13:24
|
(3) Когда потом?
|
|||
4
DrShad
24.05.18
✎
13:27
|
(3) ну сразу как соберешь глобальную таблицу
|
|||
5
Crimscon
24.05.18
✎
13:29
|
Благодарю)
|
|||
6
Crimscon
24.05.18
✎
14:05
|
(4) Хорошо, все работает. Теперь такой вопро, а как сделать в таблице значений одну колонку под другой? У меня теперь суммарно получается 15 колонок, когда было 8. Номенклатура в своей, а вот цена/остаток на одном складе должна быть в одной странице.
|
|||
7
VitShvets
24.05.18
✎
14:13
|
ЭлементыФормы.МоеТабличноеПоле.Колонки.КолонкаКоторуюНужноПоместитьВТужеКолонку.Положение = ПоложениеКолонки.ВТойЖеКолонке;
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |