Имя: Пароль:
1C
 
Вопрос по таблице значений
0 Nemirov
 
02.03.20
12:41
Вопрос такой по которому не могу найти ответ на просторах интернета.
Есть запрос из бд вытаскиваю некоторые данные, имею табличное поле на форме с типом ТаблицаЗначений.
Допустим я создал программно еще нужные мне колонки и строки этой колонки. Представил чуть ниже запроса для примера.
Вопрос общий и заключается в том просто как правильно связывать данные  запроса с программно созданой таблицы значений и выводить их та табличное поле. Вопрос элементарный не думал что будет сложность найти ответ, но
появился и на всех форумах вижу только общую картину создания ТЗ, а как связывать с данными из запроса и вместе выводить на табличное поле нет. Предполагаю что через временную таблицу, но это не точно. Прошу только по теме ответы писать.

Процедура КнопкаВыполнитьНажатие(Кнопка, ДанныеСтроки)
    
    Запрос = Новый Запрос;
    Текст = "ВЫБРАТЬ
    |    КОНЕЦПЕРИОДА(sms_Cheque.CloseTime, ЧАС) КАК ВремяЗакрытогоЧека,
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ sms_Cheque.ChequeUID) КАК КоличествоЧеков,
    |    СУММА(sms_Cheque.Amount) КАК Сумма
    |ИЗ
    |    ВнешнийИсточникДанных.SIS.Таблица.sms_Cheque КАК sms_Cheque
    |ГДЕ
    |    sms_Cheque.CloseTime МЕЖДУ &ДатаНач И &ДатаКон
    |    И sms_Cheque.CloseType = 0
    |
    |СГРУППИРОВАТЬ ПО
    |    КОНЕЦПЕРИОДА(sms_Cheque.CloseTime, ЧАС)";
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));    
    РезультатЗапроса = Запрос1.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        ТЗ= Новый ТаблицаЗначений;
        ТЗ.Колонки.Добавить("Период");    
       Стр = ТЗ.Добавить();
    Стр.Период = "С 7 до 8";
    Стр.Период = "С 8 до 9";
    Стр.Период = "С 9 до 10";
    Стр.Период = "С 10 до 11";
    Стр.Период = "С 11 до 12";
    Стр.Период = "С 12 до 13";
    Стр.Период = "С 13 до 14";
    Стр.Период = "С 14 до 15";
    Стр.Период = "С 15 до 16";
    Стр.Период = "С 16 до 17";
    Стр.Период = "С 17 до 18";
    Стр.Период = "С 18 до 19";
    Стр.Период = "С 19 до 20";
    Стр.Период = "С 20 до 21";
    Стр.Период = "С 21 до 22";
    Стр.Период = "С 22 до 23";
    Стр.Период = "С 23 до 24";    

    ТабЗнач = Запрос.Выполнить().Выгрузить();                        
    ЭлементыФормы.ТабЗнач.СоздатьКолонки()
КонецПроцедуры
1 catena
 
02.03.20
12:44
А как вам нужно их связать?
2 Ёпрст
 
02.03.20
13:12
(0)



"
|ВЫБРАТЬ
|    КОНЕЦПЕРИОДА(sms_Cheque.CloseTime, ЧАС) КАК ВремяЗакрытогоЧека,
|    ВЫБОР
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 8
|            ТОГДА ""С 8 До 9 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 9
|            ТОГДА ""С 9 До 10 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 10
|            ТОГДА ""С 10 До 11 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 11
|            ТОГДА ""С 11 До 12 ""
|    КОНЕЦ КАК ТвояХрень,
|    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ sms_Cheque.ChequeUID) КАК КоличествоЧеков,
|    СУММА(sms_Cheque.Amount) КАК Сумма
|ИЗ
|    ВнешнийИсточникДанных.SIS.Таблица.sms_ChequeКАК sms_Cheque
|ГДЕ
|    sms_Cheque.CloseTime МЕЖДУ &ДатаНач И &ДатаКон
|    И sms_Cheque.CloseType = 0
|
|СГРУППИРОВАТЬ ПО
|    КОНЕЦПЕРИОДА(sms_Cheque.CloseTime, ЧАС),
|    ВЫБОР
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 8
|            ТОГДА ""С 8 До 9 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 9
|            ТОГДА ""С 9 До 10 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 10
|            ТОГДА ""С 10 До 11 ""
|        КОГДА ЧАС(sms_Cheque.CloseTime) = 11
|            ТОГДА ""С 11 До 12 ""
|    КОНЕЦ
|";

3 Ёпрст
 
02.03.20
13:12
Остальное сам добавишь и свою тз, выкинь
4 Nemirov
 
02.03.20
13:45
(3) Спасибо
Программист всегда исправляет последнюю ошибку.