Имя: Пароль:
1C
 
СКД Посчитать количество заполненных ячеек
0 pessok
 
22.11.10
13:12
Господа, а есть ли возможность посчитать количество непустых ячеек по строке?
У меня строка с колонками по дням месяца. Колонок 31 штука. Мне нужно посчитать в скольких колонках по данной строке имеются данные. Как это осуществить?
Заранее спасибо
1 pessok
 
22.11.10
13:15
Пытался сделать конструкции в вычисляемых полях, но не получается

ВЫБОР
   КОГДА Число01 = 1
       ТОГДА 1
КОГДА Число02 = 1
       ТОГДА 1
   ИНАЧЕ 0
КОНЕЦ

Т.е. я даже не знаю как подступиться
2 IronDemon
 
22.11.10
13:16
31-Число01-Число02?
3 IronDemon
 
22.11.10
13:16
А есть еще 30, 28 и даже 29.
4 pessok
 
22.11.10
13:18
Да тут не суть в том, сколько дней в месяце :) Это я для примера написал, колонки у меня динамически формируются. Мне именно посчитать нужно сколько дней заполнено.
5 pessok
 
22.11.10
13:20
(2) Так не выйдет, скорее всего, т.к. Мне нужно считать именно по 1, а не по тому, что в ячейке. В ячейке допустим 360, но посчитать мне надо как 1
Т.е. в ячейках время работ (час, 2 часа, полчаса). И мне надо посчитать в скольких днях работа происходила
6 pessok
 
22.11.10
13:38
Никто не знает? :(
7 pessok
 
22.11.10
13:55
Немножко апну. А то ускакивает :(
8 hhhh
 
22.11.10
14:23
(5) ну типа

31- ВЫБОР КОГДА Число01 > 0 ТОГДА Число01 ИНАЧЕ 0 КОНЕЦ -ВЫБОР КОГДА Число02 > 0 ТОГДА Число02 ИНАЧЕ 0 КОНЕЦ
9 pessok
 
22.11.10
14:25
(8) вариант. страшненько правда :) я думал есть более простые методы. В любом случае, спасибо
10 Defender aka LINN
 
22.11.10
14:28
(0) У тебя 31 поле в наборе данных СКД? О_о
11 pessok
 
22.11.10
15:01
(10) Угу. ТЧ документа. Никуда не деться, такие запросы руководства. Им хочется вести все а-ля в экселе, как было раньше
12 Defender aka LINN
 
22.11.10
15:34
(11) "Никуда не деться, такие запросы руководства" - ну вот нам-то заливать не надо. Руководство прямо сказало, что в таб. части документа была 31 колонка? Или это ты сам себе такой способ реализации изобрел и теперь героически преодолеваешь?
13 pessok
 
23.11.10
09:29
(12) Да, именно так и есть. В таб части должна быть 31 колонка. Чтобы все было "как в экселе" и заносилось абсолютно также
14 Defender aka LINN
 
23.11.10
09:30
(13) Тебе по слогам повторить?
15 pessok
 
23.11.10
09:32
+(12) И не 31 а динмически от количества дней в месяце. Если можете предложить другую реализацию заполнения каждогодневного графика, то скажу спасибо. В любом случае либо ТЧ, что для меня предпочительнее, так как данные надо хранить. Либо ТЗ, которую надо хранить в ХЗ и потом еще вытаскивать. А ввод данных, о ужас, вообще идет через ПТД
16 Defender aka LINN
 
23.11.10
09:35
(15) Пипец. Позовите программиста, пусть он расскажет, как можно такие данные хранить.
Для этой задачи достаточно ТЧ из 2-х колонок.
17 el-gamberro
 
23.11.10
09:36
сделай группировку месяц и считай, какие проблемы?
18 pessok
 
23.11.10
10:39
(16) Ну расскажите мне, как это можно хранить в ТЧ из 2-х колонок. Я с такими задачами вообще никогда не сталкивался. да и пользователь эту ТЧ должен мочь исправить.
(17) да я уже посчитал, это скорее флуд :)
19 pessok
 
23.11.10
10:41
+(16) если вы предлагаете транспонирование, то это не вариант
20 pessok
 
23.11.10
10:48
(16) Просто, если я реально придумал себе гемморой, то с удовольствием послушаю, как это добро можно было реализовать более грамотно. Учиться никогда не поздно
21 Defender aka LINN
 
23.11.10
11:16
(18) Номер дня и значение. ВНЕЗАПНО, да?
22 pessok
 
23.11.10
12:29
(21) И в чем разница? Вместо 31 колонки будет 31 строка. Не понимаю смысла. Да и + к тому там еще есть другие колонки с другой информации. И по каждому пункту информации будет по 31 строке? Т.е. 200*31 = 6200 строк в одном документе. И сколько времени обходить такую ТЧ для вывода в отчет? А когда таких документов нужно обойти 200+ штук строк? Не вижу смысла, честное слово
23 pessok
 
23.11.10
12:33
(21) Собсна я потому и написал, что не надо предлагать транспонирование. Тут очень частный случай
24 FIXXXL
 
23.11.10
12:37
(22) а хранится инфа только в доке? или все ж в регистре сведений?
25 Defender aka LINN
 
23.11.10
12:41
(22) Ты уже придумал, как в 31 колонке посчитать количество незаполненных?
"И по каждому пункту информации будет по 31 строке? Т.е. 200*31 = 6200 строк в одном документе" - это делается ТРЕМЯ колонкам.
"И сколько времени обходить такую ТЧ для вывода в отчет? А когда таких документов нужно обойти 200+ штук строк?" - ты вручную, что ли отчеты выводишь, с карандашом и ластиком?
26 pessok
 
23.11.10
12:41
(24) Только в доке
27 Defender aka LINN
 
23.11.10
12:42
(23) Угу. "очень частный случай". Утихомирь ЧСВ, это нифига не частный случай. Над подобной "проблемой" уже не одно поколение клювы сточило.
28 pessok
 
23.11.10
12:42
(25) Я имел ввиду сколько эти строки будут обрабатываться 1С? Запустил отчет на выполнение и пошел курить, так чтоли? А данные да, заносятся вручную.
29 pessok
 
23.11.10
12:43
(27) Ну можт быть, можт быть. ЧСВ тут не причем. Просто я говорю, что делать в документе 7к строк - не вариант для меня
30 pessok
 
23.11.10
12:43
(27) Быстрее обработается 200 строк с 36 колонками
31 Defender aka LINN
 
23.11.10
12:44
(28) Столько же, сколько и 31 колонка.
32 pessok
 
23.11.10
12:44
(25) И да, я уже посчитал количество незаполненных еще вчера, правда другим методом немного. И написал об этом в (18)
33 Defender aka LINN
 
23.11.10
12:45
(30) Ну, тогда считай свои колонки и не полоскай тут мозги.
34 pessok
 
23.11.10
12:46
(31) Замерять мне нечем. Так если работать будет с такой же скоростью, то какая разница? И у меня опльзователь может править ТЧ вручную, если требуется. Где ему тогда искать инфу после транспонирования? Иили делать 2 ТЧ, одну для пользователя и одну конечную?
35 wladimir90
 
23.11.10
12:46
ТекСтрока=Таблица.ТекущиеДанные;
КоличествоЗаполненых=0;
Если НЕ ПустаяСтрока(ТекСтрока.Колонка1) Тогда
КоличествоЗаполненых=КоличествоЗаполненых+1;
КонецЕсли;


Лучше делать в цикле.
36 pessok
 
23.11.10
12:46
(33) Повторюсь, я еще в 18 написал, что все уже посчитано :) Дальше пошел просто флуд
37 Defender aka LINN
 
23.11.10
12:47
(34) "если работать будет с такой же скоростью, то какая разница?" - покажи свой метод расчета, поймешь.
"И у меня опльзователь может править ТЧ вручную, если требуется" - а я запрещал, что ли?
38 pessok
 
23.11.10
12:47
(35) Так я и считал собственно. Просто думал, что можно быстрее посчитать в самой СКД
39 pessok
 
23.11.10
12:49
(37) Зачем выкидывать целые предложения?
Я писал: "И у меня опльзователь может править ТЧ вручную, если требуется. Где ему тогда искать инфу после транспонирования?" искать эти строки в огромной ТЧ как минимум неудобно. Метод расчета в (35). У меня практически одно и тоже. Я считаю заполненные таки не в СКД а в документе
40 Defender aka LINN
 
23.11.10
12:51
(39) "искать эти строки в огромной ТЧ как минимум неудобно" -я смотрю, до тебя с трудом доходит... на форме это будет выглядеть так же, как и у тебя.
Это не "метод расчета", это куета. Приличные люди все получают сразу в запросе.
41 FIXXXL
 
23.11.10
12:59
(39) считывать инфу из дока не есть методически гуд, для этого регистры сделаны. в принципе ничего не мешает сделать док с ТЧ какого угодно вида, а инфу писать в РС и оттуда быстренько читать. писать соответственно записями в две-три колонки.
42 pessok
 
23.11.10
13:03
(40) Ты в этот топик пришел ЧСВ чесать или что? :) Проблема уже решена :) Я уж не знаю где и что получают приличные люди, но кто мешает сделать точно такой же цикл запросом? :) Просто на данном этапе мне этого не нужно. Буду реструктуризацию делать, сделаю запросом. Когда делать нужно быстро, чтобы все было готово вчера - не до красоты. Красоту начинают наводить, когда все уже работает и нужно ускорить/подправить. ИМХО, конечно. А вот насчет на форме это будет выглядить также, отсюда можно действительно по-подробнее, потому что я представляю это только созданием второй ТЧ. Могу быть неправ ессно, тогда расскажи как :) Мериться нчием я не собираюсь
43 pessok
 
23.11.10
13:05
(41) Согласен, что это некрасиво. Согласен, что надо писать в РС, но это пока в планах. Сейчас надо, чтобы инфа из доков просто попадала в отчет
44 pessok
 
23.11.10
13:08
(41) Вот писать в РС таким методом как ты предложил - удобно, согласен
45 pessok
 
23.11.10
13:08
+(44) Это было для Defender aka LINN
46 acsent
 
23.11.10
13:10
Ресурс = 1. Итог по колонке
47 pessok
 
23.11.10
13:13
Сейчас вопрос о записи в регистр не стоит, да и там я проблем не вижу :)
Господа, всем спасибо, тема закрыта :)
48 Defender aka LINN
 
23.11.10
13:35
(42) "Когда делать нужно быстро, чтобы все было готово вчера - не до красоты" - если бы мне каждый раз давали по рублю, когда я это слышу... Вот что мешает сразу делать нормально и по-человечески? Зачем сразу выпучивать глаза и бежать воротить неподъемные и неподдерживаемые конструкции?
49 pessok
 
23.11.10
13:58
(48) Я честно готов учиться. Я не претендую на то, что моя конструкция самая лучшая и даже на то, что она имеет право на жинь (хоть и работает, и даже быстро работает). Расскажи как можно сделать правильно? По-человечески разхясни или дай ссылку на мануал, похожую проблему.
Поясню "как это выглядит":
Действие номер раз: Есть общий документ с ПТД. В ПТД пользователь забивает инфу и она должна хранится в документе. Как? Я сделал ТЧ. Можно ли сделать ТЧ не с 31 колонкой а с 2 - не уверен. Если можно, то как сделать такую ТЧ (желательно одну), чтобы пользователь в самой ТЧ видел информацию также как в ПТД?
Действие номер два: На основание строк ТЧ формируются документы - собирается информация из первой колонки ТЧ (в моем случае - контрагент) и по этому контрагенту информация из ТЧ общего документа передается другим документа.
Действие номер три: В созданных документах формируются уже другие ПТД другого формата на основании ТЧ (тут берется только дата, т.е. если она <> 0, то заносится в ПТД). После формирования ПТД у меня формируется уже окончательная ТЧ (в ней не 31 колонка (: ). Данные из этой ТЧ по каждому документу собираются непосредственно в отчет. Пока прямо из ТЧ, прикрутить к РС я не успел, потому что действительно все надо вчера, и это не метафора. Когда ставят жесткий срок - "чтобы было готово через два часа" - не всегда успеваешь продумать правильную структура и действуешь по наитию, согласись.
Собственно вот. Как сделал я тебе уже известно, как можно сделать лучше - всегда гоотв услышать. Нормальную критику я воспринимаю спокойно :) Какие-то советы - подавно.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший