Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Вывод данных из таблицы значений в табличную часть формы

Вывод данных из таблицы значений в табличную часть формы
Я
   Crimscon
 
24.05.18 - 13:15
1С 8.2. Имеется форма, в которой есть таблица значений, называемая "ТаблицаТоваров".

Я отбираю запросом все розничные склады предприятия и создаю таблицу значений в которую добавляю колонки Номенклатуры, Склада и Наименования. Следующим шагом я создаю все колонки складов в форме и пытаюсь заполнить таблицу значений остатками. Вроде заполняет. Как потом данные из таблицы значений перенести в табличную часть формы?

Код:
Процедура ПриОткрытии()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Склады.Наименование КАК Склад,
                   |    Склады.Ссылка
                   |ИЗ
                   |    Справочник.Склады КАК Склады
                   |ГДЕ
                   |    Склады.ЯвляетсяРозничным";
    
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    ТЗСклады = Новый ТаблицаЗначений;    
    ТЗСклады.Колонки.Добавить("Номенклатура");
    ТЗСклады.Колонки.Добавить("Склад");
    ТЗСклады.Колонки.Добавить("Наименование");
    
    ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Номенклатура");
    
    Пока Выборка.Следующий() Цикл
        Склад = СтрЗаменить(Выборка.Склад," ","_");
        Склад = СтрЗаменить(Склад,".","");
        Склад = СтрЗаменить(Склад,"-","");
        ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Цена_"+Склад, Новый ОписаниеТипов(Новый КвалификаторыЧисла(12,2)));
        ЭлементыФормы.ТаблицаТоваров.Колонки.Добавить("Остаток_"+Склад, Новый ОписаниеТипов(Новый КвалификаторыЧисла(12,2)));
        ЭлементыФормы.ТаблицаТоваров.Колонки["Остаток_"+Склад].Положение = ПоложениеКолонки.НаСледующейСтроке;        
        Стр = ТЗСклады.Добавить();
        Стр.Склад = Выборка.Ссылка;
        Стр.Наименование = Склад;
    КонецЦикла;
    
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
                   |    ОстаткиНоменклатурыОстатки.Склад КАК Склад,
                   |    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток
                   |ИЗ
                   |    РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
                   |ГДЕ
                   |    ОстаткиНоменклатурыОстатки.Склад В ИЕРАРХИИ(&Склад)
                   |ИТОГИ
                   |    СУММА(Остаток)
                   |ПО
                   |    Склад,
                   |    Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура", ТЗСклады.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("Склад", ТЗСклады.ВыгрузитьКолонку("Склад"));
        
    Результат = Запрос.Выполнить();
    ВыборкаСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаСклад.Следующий() Цикл
        ВыборкаНоменклатура = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаНоменклатура.Следующий() Цикл
            Стр = ТЗСклады.Добавить();
            Склад = ВыборкаНоменклатура.Склад;
            Стр.Номенклатура = ВыборкаНоменклатура.Номенклатура;
            //Остаток =  ВыборкаНоменклатура.Остаток;

            //ИмяКолонки = НайтиИмяКолонки(Склад,"Остаток_");

            //ЭлементыФормы.ТаблицаТоваров.Колонки[ИмяКолонки] = Остаток;

        КонецЦикла;
    КонецЦикла;    
    
КонецПроцедуры

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует