![]() |
|
СКД. Значения и представления ресурсов в табличном документе | ☑ | ||
---|---|---|---|---|
0
fisher
02.11.12
✎
14:49
|
Экономисты хотят округление в отчете до целых, но при выгрузке в excel иметь полную точность значения (для своих целей).
И в excel и в mxl ячейка может содержать значение и иметь формат представления. Проблема в том, что СКД при выводе значений ресурсов в табличный документ выводит только представление... И только оно, ессно, и выгружается в excel. А самое смешное, что у меня стойкое дежавю, что я как-то искомое в 1С получал... Может, таки есть способ? Ежели да - то как? |
|||
1
pessok
02.11.12
✎
14:53
|
ну хз... по утру надо бы член 20 см, а вечером 22... имхо не взлетит
|
|||
2
France
02.11.12
✎
14:55
|
причем тут СКД то??... автор еще раз обЯсни в чем проблема?? для тугих))
|
|||
3
fisher
02.11.12
✎
15:00
|
(2) Объяснялка сломалась. Пускай отвечают те кто понял.
Вон (1) понял. |
|||
4
pessok
02.11.12
✎
15:04
|
(3) понять то понял, но мнение не изменил. не взлетит. надо так. два поля под одному ресурсу, в одном одно оформление, в другом другое. при выводе на форму - отбирать один показатель, перед сохранение в эксель, другой
|
|||
5
France
02.11.12
✎
15:11
|
(3) ну, как знаешь..... дело хозяйское.. и не говори потом, что не пытались тебе помочь..
|
|||
6
fisher
02.11.12
✎
15:12
|
Для тех, кто не понял, вид сбоку:
- создаем пустой mxl - в свойствах ячейки ставим "Содержит значение", тип число, точность 14,3 - вбиваем 15,365 - ставим в свойствах ячейки формат 14,0 - выгружаем в excel и видим аналогичную картину - представление до целых, значение - с полной точностью. Вопрос - как бы заставить СКД именно так выводить ресурсы в табличный документ? Может, через макеты? Пока мучаю - плохо получается (не удается задать макет для ресурса). Я в макетах пока не настоящий сварщик. |
|||
7
pessok
02.11.12
✎
15:14
|
(4) присмотрись к (4) ужасно, топорно, но будет работать :)
|
|||
8
pessok
02.11.12
✎
15:14
|
(7) @ (6)
|
|||
9
France
02.11.12
✎
15:15
|
(6) скд умеет формитировать... посмотри в условном оформлении.. там можно задать формат представления...
|
|||
10
fisher
02.11.12
✎
15:21
|
(7) И как это сделать прозрачным для пользователя? Как отловить событие сохранения в ексель? Не говоря уже о проблемах формирования другой версии отчета с теми же настройками пользователя (а отчет может небыстро формироваться). И наконец - результат будет отличаться от описанного. Необходимо, чтобы в ексель было и нужное значение и нужное форматирование.
(9) Так вот проблема именно в том, что в табличный документ выводится только результат форматирования (как текст). Без исходного значения |
|||
11
pessok
02.11.12
✎
15:24
|
(10) тогда сделай свою выгрузку в эксель, в которой будет правильное число и нужное тебе оформление. но это сам понимаешь...
|
|||
12
France
02.11.12
✎
15:24
|
(10) попробуй уболтать следующий образом: наложи формат на ячейки табличного поля: если поставить тип Число, то взлетает... только что пробовал, полет был нормальный..
|
|||
13
pessok
02.11.12
✎
15:26
|
(12) блин, откуда только такие идеи у людей появляются :) но да, почти тоже самое, что я в 11 предложил, но намного филиграннее)
|
|||
14
France
02.11.12
✎
15:28
|
(13) автор был настолько лоялен к моим попыткам помочь, что идеегенерирующий отдел мозга выдал на гора результат))
|
|||
15
fisher
02.11.12
✎
16:02
|
(12) Эммм... Типа сформировать с полной точностью, а потом пробежаться по ячейкам табличного документа и переформатировать всё как надо? Это грустный запасной вариант :)
|
|||
16
pessok
02.11.12
✎
16:03
|
(15) нормальный вариант вроде, делов-то, 3 строчки навалять
|
|||
17
fisher
02.11.12
✎
16:04
|
(16) Ну, наваляй. Удиви.
|
|||
18
pessok
02.11.12
✎
16:11
|
как-то так
Процедура ОбработатьТабДок(ТабДок) Ит = 1; Пока Истина Цикл Область = ТабДок.Область("R"+Ит+"C"+НомерКолонкиРесурса); Если Область.Текст = "" Тогда Прервать; КонецЕсли; Область.Формат = "ЧДЦ=2"; Ит=Ит+1; КонецЦикла; КонецПроцедуры |
|||
19
pessok
02.11.12
✎
16:12
|
не проверял, есессна)
|
|||
20
fisher
02.11.12
✎
16:15
|
"НомерКолонкиРесурса" - это да, тонко...
И строки результата тоже зачетно определяешь... Короче, всё у тебя просто, если делать криво или не тебе. |
|||
21
pessok
02.11.12
✎
16:22
|
(20) ну блин. колонку ресурса ищи обходом в цикле колонок ТД, по имени параметра... первую строчку тоже можно определять, к примеру, по первой границе ячейки... я тебе рыбу накидал )
|
|||
22
fisher
02.11.12
✎
16:28
|
Самое обидное, что процессор компоновки скармливает процессору вывода готовый кусочек макета и список параметров, где все числа с полной точностью. Что, блин, ему стоит их в значения записать? Эх...
Как хоть зная ячейку, добраться до её СКД-х расшифровок? |
|||
23
pessok
02.11.12
✎
16:29
|
(22) а зачем? у твоего ТабДока те же самые расшифровки же
|
|||
24
fisher
02.11.12
✎
16:31
|
О них и речь.
|
|||
25
Aprobator
02.11.12
✎
16:33
|
(0) нефиг не понял. Формат вывода программно не подкрутить? Просто для отчета пусть с округлением делается, при выгрузке с требуемой точностью.
|
|||
26
France
02.11.12
✎
16:36
|
(22) создай свой макет, определи тип ячеек, выводи в него результат. И СКД все правильно будет скармивать, и доп программирования не нужно.
|
|||
27
pessok
02.11.12
✎
16:40
|
(26) в своем макете минусы, что, при смене структуры отчеты он будет работать криво
(24) ТД.Область().Расшифровка, не? |
|||
28
Aprobator
02.11.12
✎
16:40
|
(26) при сохранении вроде пофиг. Там все равно представление записывается.
|
|||
29
fisher
02.11.12
✎
16:43
|
(26) Это аналитический отчет. Максимально универсальный.
|
|||
30
France
02.11.12
✎
16:47
|
(38) не, не пофиг.... учитывает тип ячейки...
(29) ок, успехов.. |
|||
31
fisher
02.11.12
✎
16:52
|
(27) О! Точно. Там номер элемента расшифровки лежит.
Тогда я знаю, как правильно сделать. Красиво определять строки с данными я умею. Количество столбцов - это ширина таблицы. А из расшифровок ячеек с данными я достану имена ресурсов и их неокругленные значения. Вроде всё должно получиться как надо... Жалко проще нельзя... <катятся слезы обиды> |
|||
32
Aprobator
02.11.12
✎
16:53
|
(30) и чего при выводе числа тип ячейки строка?
|
|||
33
France
02.11.12
✎
16:54
|
(32) вопрос в том, чтобы переопределить тип после вывода..
|
|||
34
Aprobator
02.11.12
✎
16:55
|
(33) зачем, если тип число?
|
|||
35
France
02.11.12
✎
17:00
|
(34) так, смешались люди кони.
в общем, если в СКД для ресурсов поставить форматирование (по условиям задачи в 0), то после вывода результата попытка сохранить его в эксель ведет к потере точности.. но, если для табличного документа, где есть результата скд установить для ресурса тип ячейки число и задать формат, то можно сохранить в эксель с заданной точностью... |
|||
36
Aprobator
02.11.12
✎
17:01
|
(35) т.е. СКД по умолчанию тип ячейки для ресурсов не число ставит? Собственно с этого то сыр бор и начался.
|
|||
37
fisher
02.11.12
✎
17:05
|
Аааааа!!! Ненависть! Значения ресурсов (именно ресурсов!) в расшифровках не хранятся! Придется таки через опу из текста в число, потом обратно в текст...
(36) СКД вообще выводит нетипизированные ячейки. Тупо свойство "Текст" заполняет и всё. |
|||
38
Aprobator
02.11.12
✎
17:07
|
(37) во, а то мне тут понимаете ли мозг чел парит )))
Грю меняй строку формата находу. Сделай кнопку выгрузка в эксель и пусть через нее сохраняются. Делов то минут на 10. |
|||
39
fisher
02.11.12
✎
17:09
|
(38) Пользователи привыкли к хорошему. Они и в екселе хотят видеть округленные представления и неокругленные значения (чтобы дальше можно было в екселе считать правильно). Из других систем им именно так выгружает. Не срамить же 1С :)
|
|||
40
Aprobator
02.11.12
✎
17:14
|
(39) так они этого и не увидят. Кнопка показать отчет и кнопка выгрузить в ексель. И все.
|
|||
41
France
02.11.12
✎
17:15
|
а если полезут "Файл - сохранить копию"??
|
|||
42
Aprobator
02.11.12
✎
17:16
|
(41) ТабПоле.Вывод = ...
|
|||
43
Aprobator
02.11.12
✎
17:16
|
запретить сохранение табличного документа имелось ввиду.
|
|||
44
France
02.11.12
✎
17:21
|
а как же тогда "Не срамить же 1С :)"))
|
|||
45
Aprobator
02.11.12
✎
17:25
|
ну это уже не ко мне) Учет в Экселе сам по себе срам, имхо. Особенно при наличии управленческого учета.
|
|||
46
fisher
02.11.12
✎
18:02
|
Всё получилось.
Сделал по схеме (31). Только значение пришлось брать из текста и переформатировать. |
|||
47
Aprobator
02.11.12
✎
19:23
|
Во ты монстр, однако :-)
|
|||
48
vmv
02.11.12
✎
19:32
|
(0) не читал бред профанов выше
так вот, в СКД это делают так Заводим в общаковом модуле метод, второй параметр способ округления и прочая ересь МойОбщийМодул.Округлить(Хрень, ПараметрОкругленияСмещенияИ прочая) заводим Вычисляемые поля: ИмяПоля........./Выражение......./ РСуммаХрени...../Хрень........../ РСуммаХрениЦел../МойОбщийМодул.Округлить(Хрень, 1) РСуммаХрениТыс../МойОбщийМодул.Округлить(Хрень, 2) РСуммаХрениМлн../МойОбщийМодул.Округлить(Хрень, 2) заводим Ресурсы: Ресурс........./Выражение......./ .............................. РСуммаХрени.../СУММА(СуммаХрени)/ РСуммаХрениЦел/СУММА(РСуммаХрениЦел)/ РСуммаХрениЦел/СУММА(РСуммаХрениТыс)/ РСуммаХрениЦел/СУММА(РСуммаХрениМлн)/ достаем два пальца и конструктором ваяеем отчет - все! Все кто поступают иначе - дураки! |
|||
49
Aprobator
02.11.12
✎
19:39
|
Пятнично, причём очень.
|
|||
50
fisher
06.11.12
✎
11:36
|
+(46) Пришлось отказаться от такого решения.
На больших табличных документах начинает нереально тормозить. Замерять было лень, но полное впечатление, что рост тормозов нелинейный к увеличению размера документа. Думаю, что связано с режимом ячеек "Содержит значение", которое видать заточено на режим ввода данных и не оптимизировано для больших табличных документов. |
|||
51
Aprobator
06.11.12
✎
12:28
|
делай по моей схеме ) Быстро и просто.
|
|||
52
Classic
06.11.12
✎
12:36
|
(10)
Значение валяется в расшифровке |
|||
53
fisher
06.11.12
✎
14:43
|
(52) Значения ресурсов в расшифровках пусты. Значения группировок - да, есть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |