v8: Вопрос по СКД: Как задать условное оформление.. #364680


#0 by MoneG
Как задать условное оформление конкретной строки результата СКД? Строка не обязательно детельная. Например, строки - документ и номенклатура (в иерархии), и ресурс - сумма по документу. Для номенклатуры эта сумма лишена смысла, но в табдок выведется.
#1 by Иван Таранов
выбираешь область, ставишь отбор, задаешь оформление. Все.
#2 by MoneG
не совсем всё. пример: (2 варианта порядка группировок) 1)                        и 2) док,ном  | сумма            ном,док  | сумма -----------------           ----------------- док1     | 50 #             ном1     |   суть в чем. если в случае 1) затереть *, то всё красиво. НО в случае 2) при том же отборе будет вообще всё затерто. как однозначно "добраться" до конкретной строки ?
#3 by Иван Таранов
Что-то я не догоняю. какой отбор?
#4 by MoneG
макс, что можно вытянуть, это отбор типа "Док Заполнено"
#5 by MoneG
и еще одна интересная вещь. Области, где "Ном Заполнено" выделяются верно, но вот областей, где "Ном НеЗаполнено" вообще типа нет :). Если бы "НеЗаполнено" сработало, проблему решил бы..
#6 by Иван Таранов
для поля сумма ставь оформление в завис. от полей документ и номенклатуры.
#7 by MoneG
Иван, так и делаю. но существует НО, если порядок строк изменить
#8 by Гаркин
Не там ищешь решение. Смотри в настройках ресурса, по каким группировкам его нужно считать. Делать это через условное оформрение тоже можно, но, имхо, изврат.
#9 by MoneG
с ресурсами всё ок. два набора данных - сумма только для дока и номенклатура. Однако, соединение их выдает дублирование и по номенклатуре. (Сумма по доку иная, чем сумма всей номенклатуры в документе)
#10 by Гаркин
"сумма только для дока и номенклатура" - Зачем нужна сумма для "номенклатура" ?
#11 by MoneG
вот вот. для номенклатуры нужно наименование, а не сумма. Суть в том, что сумма для дока дублируется для поля Номенклатура при объединении компоновщиком
#12 by MoneG
up
#13 by Гаркин
Нет счас 8 рядом, если не разберешься апни вечером.
#14 by MoneG
"невывод" лишнего можно только при отображении результата, поскольку результат запроса будет дублировать сумму (конкретному доку соответствует одновременно номенклатура и сумма по доку). Вывод результата СКД обрабатывает не построчно, а только поэлементно, что не дает однозначный доступ к конкретной строке. Не нашел никакого способа это обойти. Видел тему с такой же ситуацией по колонкам. Имхо, 1С стоит подумать над этим.. Ап-аю
#15 by MoneG
up
#16 by MoneG
up
#17 by MoneG
Эксперимент: В отборе условного оформления ставлю "Номенклатура НеРавно Справочники.Номенклатура.ПустаяСсылка" - закрасить в красный. Результат: Строки номенклатуры в ТабДоке красные, все остальные - обычные. Вывод: Как закрасить оставшиеся в другой цвет (чему равно Номенклатура в оставшихся строках) ?
#18 by Garkin
Давай сначала. Если "Сумма" это ресурс и в отчете нет детальных записей, тогда все решается установкой флажков в поле "Расчитывать по ..." в закладке "Ресурсы".
#19 by Garkin
Чтобы однозначно идентифицировать Групировку в условном оформлении можно  создать дополнительное вычисляемое поле и ресурс по нему (С расчетом только по этой группировке )со значением к примеру "Номенклатура"
#20 by AquaKosh
Юзай для этого Заполнено/Не заполнено, т.е. в твоём случае будет "Номенклатура Заполнено НужныйТебеЦвет".
#21 by MoneG
AquaKosh, не катит. Ситуация такова, что если номенклатура в верхнем уровне группировки "Заполнено", то в нижнем она тоже "Заполнено", хотя и не выводится. Garkin, попробую. думаю, ты прав.
#22 by Staryi
Как разблокировать конфигурацию заблокированную средствами управления распределенной ИБ? 1С Розница 8. Надо поставить производителя в ценник,а конфигурация заблокирована.
#23 by AquaKosh
Стоп, стоп, подождите, зачем такие сложности!? В настройке структуры отчёта, т.е. там, где задаётся порядок группировок, прямо для конкретной группировки и задаётся условное оформление, вот и будет однозначная идентификация группировки.
#24 by MoneG
AquaKosh, поясни..
#25 by AquaKosh
Условное оформление можно задать как для всего отчёта, так и для конкретной группировки ещё на этапе проектирования группировок. Что конкретно-то не понятно?
#26 by MoneG
понял. проверил. то, что хочется добиться. НО при смене порядка группировок настройки сбрасываюся :(
#27 by AquaKosh
Есть такое. А если сделать несколько предопределённых группировок, а потом из отчёта выбирать нужный блок группировок... так не покатит?
#28 by MoneG
вот есть 5 группировок и юзер... прикинь, сколько вариантов настроек будет? была такая идея, но я её сразу откинул
#29 by MoneG
в общем, никаких решений, не ограничивающихся самим СКД, не нашел. ПРИШЛОСЬ работать РУКАМИ с ТабДоком через одну-единственную зацепку. Это идентификатор расшифровки. После вывода идентификатор расшифровки СКД дублируется у каждой ячейки ТабДока, для которой это имеет смысл. Одно не понял, почему-то существует смещение на 2.. Так вот, кроме идентификатора из структуры СКД выцепляю название группировки. НО! чтобы однозначно понять, что это за группировка, необходимо знать порядок группировок при текущем раскладе. Однако, это не тот Порядок, что есть в СКД. Поэтому, ПРИШЛОСЬ отдельно формировать упорядоченный список группировок, затем программно "догадываться", какому названию_из_СКД соответствует реальное_название. Всё бы хорошо, но снова НО! Повторяющиеся группировки на одном уровне СКД вообще никак не именует! снова РУКАМИ использую Отступ из ТабДока... В итоге, на весь отчет оформляю строки Номенклатура с белым текстом, программно вывожу в ТабДок и добавляю такое: Если кто понял, пользуйтесь.. Поскольку это всё извращение (работающее), думаю, тема не закрыта. P.S. Координаты шапки всё равно вычислять, поэтому сразу "привинтил" ФиксациюСверху и ПовторятьПриПечатиСтроки - полезно.
#30 by MoneG
Есть идеи по-проще?
#31 by MoneG
UP кто реальное шарит в СКД, поделитесь идеями!
#32 by MoneG
up
#33 by Filippov
Гаркин в давал правильное решение. Я делел так. Об этом написано и в статье о ресурсах СКД на ИТС. И никакого кодирования не требуется - такого, например, как описано для случая Построителя отчетов в "Профессиональной разработке"
#34 by MoneG
Тогда подробней расскажите
#35 by MoneG
Поясните, пока книжки нет.. up
#36 by Гаркин
Идея в том, что поле может быть выбрано в ресурсах несколько раз, с различными формулами для различных групировок.
#37 by MoneG
Идея понятна; не понятно, как ей пользоваться..
#38 by Гаркин
Ыыы.. В ресурсах щелкаешь по полю "Сумма", поле появляется в списке ресурсов. В формуле ставишь "1", в "Рассчитывать по ..."  устанавливаешь птицу напротив "Номенклатура", все остальные снимаешь. Еще раз щелкаешь по полю "Сумма", в списке ресурсов появляется еще одно поле "Сумма". В формуле ставишь "2", в "Рассчитывать по ..."  устанавливаешь птицу напротив "Документ", все остальные снимаешь. Проверяешь.
#39 by MoneG
Спасибо, за идею! В дальнейшем буду учитывать. Но это не решение, к сожалению. Проверил в теории и на практике.. Объясню суть еще раз. В простейшем случае есть 2 группировки - Документ и Номенклатура - и один схожий ресурс Сумма. При этом Сумма для Документ НЕ есть сумма всей его номенклатуры. Для понимания происходящего примем Сумма_по_документу = 0 (не отображается). Пусть порядок вывода группировок "Документ, Номенклатура", и нужные галочки в "Рассчитывать по ..." поставлены правильно. Тогда: Док,Ном | СуммаНом | СуммаДок | --------|----------|----------| Док     |     -    |    10    |  Ном1  |     1    |    10    |  Ном2  |     4    |    10    | =============================== Итог    |     5    |    10    | Как видно, не смотря на то что у ресурса СуммаДок "Рассчитывать по ..." напротив Номенклатура пустая галочка, в колонке СуммаДок значение продублировалось и для группировки Номенклатура. Такие записи в колонке СуммаДок не имеют смысла. При помощи условного оформления (для всего отчета) по группировке Номенклатура "убираем" некорректные значения: Док,Ном | СуммаНом | СуммаДок | --------|----------|----------| Док     |     5    |    10    | =============================== Итог    |     5    |    10    | Но давайте изменим порядок группировок на "Номенклатура, Документ", Тогда при уже заданном условном оформлении для группировки Номенклатура увидим: Ном,Док | СуммаНом | СуммаДок | --------|----------|----------| Ном1    |     1    |     -    |  Док   |     1    |     -    | Ном2    |     4    |     -    |  Док   |     4    |     -    | =============================== Итог    |     5    |    10    | Как видно, группировка Документ тоже "затерлась" ! (Уровень Док больше уровня Ном, поэтому на уровне Док  "Заполнено(Ном) = Истина"). Вариант условного оформления группировок не для всего отчета не решение. Ибо при каждой смене порядка группировок оформление сбрасывается. Вариант с хитростями в "Рассчитывать по... " не решение. Ибо "(Уровень Док больше уровня Ном, поэтому на уровне Док  "Заполнено(Ном) = Истина")". ---------------------------------------------- Как без "ручек" решить такую проблему в простейшем отчете?
#40 by Гаркин
читай внимательно
#41 by MoneG
Гаркин, прекрасно тебя понял, спасибо за идею. Проверил. Не то :( P.S. >Для понимания происходящего примем Сумма_по_документу = 0 (не отображается). Читать как "".
#42 by Гаркин
Проверь еще раз. P.S. Кстати какая платформа?
#43 by MoneG
11.67 в аську? либо я тебя не понимаю, либо ты меня
#44 by Гаркин
Вечером
#45 by MoneG
Так, парни, помогайте дальше. Если сделать по - то есть прописывать "0" по группировке Ном, всё красиво, за неким исключением: 1) при выводе номенклатуры в иерархии верхние ее уровни остаются без "изменений"; 2) если по колонке СуммаДок вывести "СуммаДок.ПроцентОбщий", в таблице будет "Деление на 0", что логично - ведь сумма ресурса по группировке Ном = 0. --------------------------------------- Какие могут быть решения?
#46 by MoneG
умным людям UP
#47 by MoneG
ап
#48 by Garkin
1) с иерархией действительно облом, пиши условное оформление на условие Номенклатура.ЭтоГруппа=Истина 2) условное оформление по условию СуммаДок=0
#49 by MoneG
- 1) если написать, а потом номенклатуру перед документом поставить, то снова сабж :(
#50 by MoneG
- 2) тоже облом. Почему-то не во всех строках срабатывает и, если сумма по итогу =0, то название колонки тоже примет заданное оформление :(
#51 by Garkin
Добавь "СуммаДок" в ресурсы еще раз, в  "Рассчитывать по ..."  ничего не меняй. :)  С этим проблема, воспроизвести не смог, у меня все работает.
#52 by MoneG
Думаю, ветку можно закрывать. Выводы (в упрощенном варианте): 1) на вкладке Ресурсы задаю 2 поля:    Поле    | Выражение      | Рассчитывать по...   =========|================|==================     ...    | ...            | ... 2) на вкладке Настройки - Условное оформление задаю оформление на случай иерархии:    Область | Отбор                              | Оформление   =========|====================================|================== 3) нулевой итог не обойти никак. Дописал: Пользуйтесь на здоровье! Величайшее спасибо Гаркину за содействие!!
#53 by Garkin
Знаешь чем отличается хороший программист от плохого. Плохой напишет 3) нулевой итог не обойти никак. Хороший сформулирует это следующим образом: 3) нулевой итог обойти можно, но я незнаю как.
#54 by MoneG
как ты красиво системное поле обойдешь, которое автоматически вычисляется? только дебагом внутренностей СКД. В рамках того, чем приходится довольствоваться - никак, но руками обойти можно :)
#55 by Garkin
Ну вопервых это системное поле можно имитировать через вычисляемые поля Примерно так СуммаДок/Вычислить("Сумма(СуммаДок)","Группировка","ОбщийИтог") -  для процента по группе, но это так к слову. Если к нашим баранам, то мы стобой договорильсь что группировку "Номенклатура" однозначно можно определить методом из + , что мешает написать условное оформление затирающее деление на ноль даже если п.2 не катит?
#56 by Garkin
+ "если п.2 не катит?" читать как "если п.2 не катит?"
#57 by MoneG
Ладно, ты не злись. "Не обойти" - это о системных процентах. 1Сники эту ситуацию просто выкидывают в результат и .. как говорится, конем оно. Можно было как-то более деликатно сделать.
#58 by Garkin
как ты определил что я злюсь?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям