|   |   | 
| 
 | v7: Свернуть таблицу значений | ☑ | ||
|---|---|---|---|---|
| 0
    
        baribars 17.01.22✎ 13:56 | 
        Сворачиваю таблицу значений, колонка, по которой сворачивается - текст. При свертке получается одна строка и колонка, по которой сворачивается - пустая. Можно сворачивать только по справочникам что ли?     | |||
| 1
    
        azernot 17.01.22✎ 14:02 | 
        (0) Код свёртки в студию!     | |||
| 2
    
        baribars 17.01.22✎ 14:04 | 
        (1) ТЗ.Свернуть("Время","Сумма,Количество");
 Время - текст, сумма и количество - числа, их сворачивает нормально. | |||
| 3
    
        73с 17.01.22✎ 14:06 | 
        Колонка "Время" как описана при создании?     | |||
| 4
    
        Builder 17.01.22✎ 14:07 | 
        ТЗ.ВыбратьСтроку();
 ТЗ.Свернуть("Время","Сумма,Количество"); ТЗ.ВыбратьСтроку(); Смотреть результат до и после, по результатам доложить. | |||
| 5
    
        baribars 17.01.22✎ 14:08 | 
        (3) строка     | |||
| 6
    
        azernot 17.01.22✎ 14:09 | 
        Сообщить("До свертки");
 ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("Время: "+ТЗ.Время + ", Сумма: "+ТЗ.Сумма + ", Кол-во: "+ТЗ.Количество); КонецЦикла; ТЗ.Свернуть("Время","Сумма,Количество") Сообщить("После свертки"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("Время: "+ТЗ.Время + ", Сумма: "+ТЗ.Сумма + ", Кол-во: "+ТЗ.Количество); КонецЦикла; | |||
| 7
    
        baribars 17.01.22✎ 14:10 | 
        (4) до светки 3 тыс записей, после свертки -1 запись     | |||
| 8
    
        Эльниньо 17.01.22✎ 14:12 | 
        Кусок кода, где:
 ТЗ.Время = | |||
| 9
    
        azernot 17.01.22✎ 14:13 | 
        (7) Что сообщается, если выполнить код из (6)?     | |||
| 10
    
        baribars 17.01.22✎ 14:15 | 
        (8) ТЗ.Время = "с 9 до 10"; например, значения ТЗ.Время принимает разные, но написание одинаковое, т.е. везде "с 9 до 10" или "с 10 до 11"     | |||
| 11
    
        baribars 17.01.22✎ 14:17 | 
        (9) до свертки все значения заполнены, после свертки -1 строка, время - пустое значение, сумма и количество - итоговые     | |||
| 12
    
        MWWRuza гуру 17.01.22✎ 14:19 | 
        Пробелы в строке? При добавлении строки в таблицу, СокрЛП используете? Колонка как задана в ТЗ, с указанием типа и длины(может с пробелами не умещается) - ?
 А так, вообще сворачивает по строке нормально. | |||
| 13
    
        hhhh 17.01.22✎ 14:20 | 
        (11) как формируете тз?     | |||
| 14
    
        MWWRuza гуру 17.01.22✎ 14:21 | 
        +(12) "(может с пробелами не умещается)"
 Или вообще, там тип не строка задан... | |||
| 15
    
        azernot 17.01.22✎ 14:21 | 
        (11) Может "Время" как-то по-разному написано? Ну типа в ТЗ через английскую B (би), а при свертке через русскую В (вэ) или наоборот?     | |||
| 16
    
        baribars 17.01.22✎ 14:22 | 
        (12) при добавлении строки в таблицу вот так например - "с 9 до 10"     | |||
| 17
    
        baribars 17.01.22✎ 14:22 | 
        (14)     ТЗ = СоздатьОбъект("ТаблицаЗначений");
 ТЗ.НоваяКолонка("Время", "Строка"); ТЗ.НоваяКолонка("Сумма", "Число"); ТЗ.НоваяКолонка("Количество", "Число"); | |||
| 18
    
        baribars 17.01.22✎ 14:23 | 
        (15) тогда бы ошибку выдало, что неверно указано имя колонки     | |||
| 19
    
        Эльниньо 17.01.22✎ 14:25 | 
        Полтергейст какой-то     | |||
| 20
    
        НЕА123 17.01.22✎ 14:26 | 
        на (13) нет ответа.     | |||
| 21
    
        azernot 17.01.22✎ 14:27 | 
        Вот код:
 //******************************************* Процедура Сформировать() ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Время"); ТЗ.НоваяКолонка("Количество"); ТЗ.НоваяКолонка("Сумма"); ТЗ.НоваяСтрока(); ТЗ.Время = "С 9 до 10"; ТЗ.Количество = 1; ТЗ.Сумма = 10; ТЗ.НоваяСтрока(); ТЗ.Время = "С 9 до 10"; ТЗ.Количество = 2; ТЗ.Сумма = 20; ТЗ.НоваяСтрока(); ТЗ.Время = "С 10 до 11"; ТЗ.Количество = 1; ТЗ.Сумма = 15; ТЗ.НоваяСтрока(); ТЗ.Время = "С 10 до 11"; ТЗ.Количество = 2; ТЗ.Сумма = 30; Сообщить("До свертки"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("Время: "+ТЗ.Время + ", Сумма: "+ТЗ.Сумма + ", Кол-во: "+ТЗ.Количество); КонецЦикла; ТЗ.Свернуть("Время","Сумма,Количество"); Сообщить("После свертки"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("Время: "+ТЗ.Время + ", Сумма: "+ТЗ.Сумма + ", Кол-во: "+ТЗ.Количество); КонецЦикла; КонецПроцедуры вот что сообщает До свертки Время: С 9 до 10, Сумма: 10, Кол-во: 1 Время: С 9 до 10, Сумма: 20, Кол-во: 2 Время: С 10 до 11, Сумма: 15, Кол-во: 1 Время: С 10 до 11, Сумма: 30, Кол-во: 2 После свертки Время: С 9 до 10, Сумма: 30, Кол-во: 3 Время: С 10 до 11, Сумма: 45, Кол-во: 3 | |||
| 22
    
        cincout 17.01.22✎ 14:27 | 
        (11) Возможно, что-то делается с ТЗ после свертки, из-за чего очищается колонка?     | |||
| 23
    
        1Сергей 17.01.22✎ 14:28 | 
        Барибарс что-то недоговаривает     | |||
| 24
    
        baribars 17.01.22✎ 14:34 | 
        (20) ТЗ.НоваяСтрока();
 ТЗ.Время = ВремяЧека; ТЗ.Сумма = Запрос.СуммаПродажи; ТЗ.Количество = 1; | |||
| 25
    
        cincout 17.01.22✎ 14:39 | 
        (24) А что (6) показывает?     | |||
| 26
    
        baribars 17.01.22✎ 14:45 | 
        нашел свою ошибку, в колонку время писалось пустое значение. Прощу прощения за косяк и спасибо всем за помощь. Вопрос такой - запросом хочу получить время документа. Время = Документ.ЧекККМ.ВремяДок. Дату дает нормально, а время почему-то показывает одно и тоже и какую-то ерунда. Нельзя получить время документа? В журнале же выводит     | |||
| 27
    
        Ryzeman 17.01.22✎ 14:51 | 
        (26) В 7.7 вроде только через ПолучитьВремя или прямой запрос.     | |||
| 28
    
        Калиостро 17.01.22✎ 14:53 | 
        (26) В (10) дал ложную информацию, теперь все полтергейст ищут. А черепашка только одна:)     | |||
| 29
    
        baribars 17.01.22✎ 14:54 | 
        (28) я косяк((     | |||
| 30
    
        baribars 17.01.22✎ 14:54 | 
        (27) а как тогда выводится время документа в журнале?     | |||
| 31
    
        1Сергей 17.01.22✎ 14:55 | 
        (30) Магия     | |||
| 32
    
        Chai Nic 17.01.22✎ 14:58 | 
        (30) Время документа фиксируется только при оперативном проведении, если проводить задним числом, то время будет 12:00     | |||
| 33
    
        baribars 17.01.22✎ 14:58 | 
        (31) все должно быть объяснимо     | |||
| 34
    
        Chai Nic 17.01.22✎ 15:06 | 
        (33) Время хранится в журнале в составе DATE_TIME_IDDOC. В 36-ричном виде.     | |||
| 35
    
        Эльниньо 17.01.22✎ 15:16 | 
        Завязывайте с травкой.
 ПолучитьВремя(<?>,,) GetTime(<?>,,) Синтаксис: ПолучитьВремя(<Часы>,<Минуты>,<Секунды>) Назначение: Прочитать время документа. Возвращает время документа в переданные для этого переменные <Часы>, <Минуты>, <Секунды>. Возвращает: Строковое значение времени записи документа в виде 'ЧЧ.ММ.СС'. Замечание: Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. | |||
| 36
    
        Kigo_Kigo 17.01.22✎ 16:24 | 
        ЧЧ = 0;
 ММ = 0; СС = 0; Документ.ЧекККМ.ПолучитьВремя(ЧЧ,ММ,СС); | |||
| 37
    
        Эльниньо 17.01.22✎ 16:32 | 
        (36) 
 1. Ему ЧЧ,ММ,СС не нужно. 2. До заполнения ТЗ нужно: Док = СоздатьОбъект("Документ"); а перед присвоением ТЗ.Время, сделать: Док.НайтиДокумент(ЧекККМ); и потом: ТЗ.Время = Док.ПолучитьВремя(); | |||
| 38
    
        Kigo_Kigo 17.01.22✎ 16:49 | 
        (37) Ему еще надо проанализировать время, что бы засунуть в труктуру с 9 до 10, с 10 до 11 и т.д.     | |||
| 39
    
        Kigo_Kigo 17.01.22✎ 16:51 | 
        (38) +Если он попробует свернуть по времени, то практически ничего не свернется, только если доки в одну сек попадут что вообще маловероятно     | |||
| 40
    
        Джордж1 17.01.22✎ 16:55 | 
        ВремяДок - это не реквизит документа?     | |||
| 41
    
        Злопчинский 17.01.22✎ 16:57 | 
        (40) не...     | |||
| 42
    
        Джордж1 17.01.22✎ 16:58 | 
        (40)А как тогда вот это работает у автора вопроса
 Документ.ЧекККМ.ВремяДок | |||
| 43
    
        Эльниньо 17.01.22✎ 16:59 | 
        (38) Прогнать ТЗ ещё раз и проставить.
 ТЗ.Время = "с " + Число(ТЗ.Время) + " по " + (Число(ТЗ.Время) + 1)); | |||
| 44
    
        Kigo_Kigo 17.01.22✎ 17:00 | 
        А если интервал времени час, то достаточно во время записать "ЧЧ" и свернуть по этой колонке, получится     | |||
| 45
    
        Kigo_Kigo 17.01.22✎ 17:02 | 
        (43) Зачем 2 раза гонять, когда с первого прогона можно все это сделать?     | |||
| 46
    
        Злопчинский 17.01.22✎ 17:02 | 
        (42) тогда - реквизит     | |||
| 47
    
        Эльниньо 17.01.22✎ 17:12 | 
        (44) (45) целиком и полностью     | |||
| 48
    
        Chai Nic 18.01.22✎ 08:19 | 
        (42) Ну значит у него в ПриЗаписи должна быть установка этого ВремяДок. Если это реквизит.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |