|
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) Ну значит у него в ПриЗаписи должна быть установка этого ВремяДок. Если это реквизит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |