Имеется отчет на СКД. Несколько детальных записей, группировок. Задал Для каждой группировки свой макет.
При выводе отчета между группировками автоматически вставляется пустая строка.
Задача: Убрать пустые строки между группировками
Сломал голову, облазил множество форумов.
Вывод один:
Убирать пустые строки программно. В обработчике события ОбновлениеОтображения формы отчета
вставил код:
Таб = ЭлементыФормы.Результат;
Таб.Очистить();
ЭтотОбъект.СкомпоноватьРезультат(Таб);
мсвПустыеСтроки = Новый Массив;
Для Стр=1 По Таб.ВысотаТаблицы Цикл
ЭтоПустаяСтрока = Истина;
Для Кол=1 По Таб.ШиринаТаблицы Цикл
Обл = Таб.Область(Стр,Кол);
Если ЗначениеЗаполнено(Обл.Текст) Тогда
ЭтоПустаяСтрока = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЭтоПустаяСтрока Тогда
мсвПустыеСтроки.Вставить(0,Стр);
КонецЕсли;
КонецЦикла;
Для Каждого Эл Из мсвПустыеСтроки Цикл
Таб.УдалитьОбласть(Таб.Область(Эл,,Эл),ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЦикла;
После этого отчет выводится как надо, без пустых строк между группировками
При выводе отчета между группировками автоматически вставляется пустая строка.
Задача: Убрать пустые строки между группировками
Сломал голову, облазил множество форумов.
Вывод один:
Убирать пустые строки программно. В обработчике события ОбновлениеОтображения формы отчета
вставил код:
Таб = ЭлементыФормы.Результат;
Таб.Очистить();
ЭтотОбъект.СкомпоноватьРезультат(Таб);
мсвПустыеСтроки = Новый Массив;
Для Стр=1 По Таб.ВысотаТаблицы Цикл
ЭтоПустаяСтрока = Истина;
Для Кол=1 По Таб.ШиринаТаблицы Цикл
Обл = Таб.Область(Стр,Кол);
Если ЗначениеЗаполнено(Обл.Текст) Тогда
ЭтоПустаяСтрока = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЭтоПустаяСтрока Тогда
мсвПустыеСтроки.Вставить(0,Стр);
КонецЕсли;
КонецЦикла;
Для Каждого Эл Из мсвПустыеСтроки Цикл
Таб.УдалитьОбласть(Таб.Область(Эл,,Эл),ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЦикла;
После этого отчет выводится как надо, без пустых строк между группировками
По теме из базы знаний
- Вывод вариантов СКД в таблицы на управляемой форме
- Полезняшки по СКД и построителям. Просто код
- Метод восстановления битых ссылок в настройках СКД при консольно-конфигураторной разработке отчетов
- Как я с отчетом СКД боролся (произвольный макет)!
- Различный расчет итогов в одной колонке отчета для разных группировок. СКД. Ресурсы vs Пользовательские поля
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
На счет пустых строк в запросе - НЕТ, их нету. Проверял результат запроса в консоли запросов - нет пустых строк.
Запросы были самые разные, в результатах запросов НЕТ ПУСТЫХ СТРОК.
пустая строка при выводе отчета на СКД появляется независимо от запроса.
Пустая строка НЕ ЯВЛЯЕТСЯ строкой данных запроса. Она вставляется автоматически системой СКД между группировками.
Я не открывал велосипед, эта проблема давно известна.
На данную тему есть обсуждения на форумах, кому интересно, ГУГЛ в помощь.
Я предложил одно из решений данной проблемы. Это решение работает у меня и у других людей.
Решение достаточно кривое (ищутся и удаляются все пустые строки в форме, куда выводится запрос).
У меня в отчете, например, возникла необходимость удалять не все пустые строки (в СКД выводил данные с помощью своего макета), поэтому пришлось извращатся с условиями на поиск пустых строк (несколько первых строк не удалял).
У кого есть более изящное решение (более универсальное), прошу вас ответить.
Запросы были самые разные, в результатах запросов НЕТ ПУСТЫХ СТРОК.
пустая строка при выводе отчета на СКД появляется независимо от запроса.
Пустая строка НЕ ЯВЛЯЕТСЯ строкой данных запроса. Она вставляется автоматически системой СКД между группировками.
Я не открывал велосипед, эта проблема давно известна.
На данную тему есть обсуждения на форумах, кому интересно, ГУГЛ в помощь.
Я предложил одно из решений данной проблемы. Это решение работает у меня и у других людей.
Решение достаточно кривое (ищутся и удаляются все пустые строки в форме, куда выводится запрос).
У меня в отчете, например, возникла необходимость удалять не все пустые строки (в СКД выводил данные с помощью своего макета), поэтому пришлось извращатся с условиями на поиск пустых строк (несколько первых строк не удалял).
У кого есть более изящное решение (более универсальное), прошу вас ответить.
В настройке группировки где не нужны пустые заголовки, устанавливаешь отбор, "Имя группировки" <> пустоезначениеМетаданных (скд по умолчанию устанавливает это условие).
Прикрепленные файлы:
(7) Это частное решение, не работает в общем случае.
Я не так часто, но встречал подобные проблемы, когда СКД НЕ ЗАВИСИМО от хорошо написанного запроса вставляет пустые строки.
Нужно курить механизм изменения Запроса Системой СКД.
В отдельных случаях (МНОГОЭТАЖНЫЕ ЗАПРОСЫ) приходится ЗНАЧИТЕЛЬНО УПРОШАТЬ ЗАПРОС (Уплощать, переводить из пакетных запросов на вложенные!)
Так что подобная задача ЗНАЧИТЕЛЬНО НЕ ТРИВИАЛЬНАЯ как кажется новичкам.
Попробуйте, для примера, подобную задачу решить в случае 30 этажного ПАКЕТНОГО запроса вычисления себестоимости товаров.
Это задача достаточно ТЯЖЕЛАЯ, не сложная, а кропотливая.
ТАк что в этом вопросе нет универсальных решений, все решает опыт.
Я не так часто, но встречал подобные проблемы, когда СКД НЕ ЗАВИСИМО от хорошо написанного запроса вставляет пустые строки.
Нужно курить механизм изменения Запроса Системой СКД.
В отдельных случаях (МНОГОЭТАЖНЫЕ ЗАПРОСЫ) приходится ЗНАЧИТЕЛЬНО УПРОШАТЬ ЗАПРОС (Уплощать, переводить из пакетных запросов на вложенные!)
Так что подобная задача ЗНАЧИТЕЛЬНО НЕ ТРИВИАЛЬНАЯ как кажется новичкам.
Попробуйте, для примера, подобную задачу решить в случае 30 этажного ПАКЕТНОГО запроса вычисления себестоимости товаров.
Это задача достаточно ТЯЖЕЛАЯ, не сложная, а кропотливая.
ТАк что в этом вопросе нет универсальных решений, все решает опыт.
corelius, СКД далеко не такой изящный инструмент как кажется.
Разработчики 1с постарались, но есть множество отчетов, которые средствами СКД не построить в принципе.
СКД - это рабочий интрумент, как и любой инструмент, у него есть свои ограничения.
Другое дело если бы СКД позиционировали как комплекс инструментов, охватывающих от и до весь процесс разработки отчетов, но это было бы слишком круто и дорого.
1с ленивые (точнее сказать жадные). Они СКД недоделали (до комплекса инструментов по разработке отчетов) по той причине, что это для них слишком дорого и затратно.
Зато они радостно вопят на каждом углу что СКД мощно и круто и наценивают свою 1с с дикой накруткой. Это все реклама и маркетинг.
Если же рассматривать СКД с точки зрения удобства и применимости ко многим ситуациям (нестандартным отчетам),
то СКД неожиданно поворачивается своей невидимой стороной, которая оказывается убогой и недоработанной.
Что касается "универсальности" - это сильно загромоздило неудобный интерфейс и инструмент помощи разработчику превратился в монстра. Чтобы что-то настроить нужно закликивать до умопомрачения и разбиратся в связях каждого элемента интерфейс-монстра.
1с пошли по пути коммерции, раскрутки, саморекламы. Удобный и мощный по-задумке инструмент они превратили в красивое гламурное, но очень громоздкое средство рекламы 1с 8.
1с могли пойти по-другому пути (помощи ОПЫТНОМУ разработчику) и сделать НАБОР инструментов без гарантии результата, для помощи при разработке отчета. Такой вариант вполне устраивает программистов с головой, которые разбираются в коде и которым не важен внешний вид инструмента. Важна степень помощи и время, сокращенное при разработке благодаря инструменту. В этом плане СКД сильно проигрывает народным средствам ("народное СКД")
Разработчики 1с постарались, но есть множество отчетов, которые средствами СКД не построить в принципе.
СКД - это рабочий интрумент, как и любой инструмент, у него есть свои ограничения.
Другое дело если бы СКД позиционировали как комплекс инструментов, охватывающих от и до весь процесс разработки отчетов, но это было бы слишком круто и дорого.
1с ленивые (точнее сказать жадные). Они СКД недоделали (до комплекса инструментов по разработке отчетов) по той причине, что это для них слишком дорого и затратно.
Зато они радостно вопят на каждом углу что СКД мощно и круто и наценивают свою 1с с дикой накруткой. Это все реклама и маркетинг.
Если же рассматривать СКД с точки зрения удобства и применимости ко многим ситуациям (нестандартным отчетам),
то СКД неожиданно поворачивается своей невидимой стороной, которая оказывается убогой и недоработанной.
Что касается "универсальности" - это сильно загромоздило неудобный интерфейс и инструмент помощи разработчику превратился в монстра. Чтобы что-то настроить нужно закликивать до умопомрачения и разбиратся в связях каждого элемента интерфейс-монстра.
1с пошли по пути коммерции, раскрутки, саморекламы. Удобный и мощный по-задумке инструмент они превратили в красивое гламурное, но очень громоздкое средство рекламы 1с 8.
1с могли пойти по-другому пути (помощи ОПЫТНОМУ разработчику) и сделать НАБОР инструментов без гарантии результата, для помощи при разработке отчета. Такой вариант вполне устраивает программистов с головой, которые разбираются в коде и которым не важен внешний вид инструмента. Важна степень помощи и время, сокращенное при разработке благодаря инструменту. В этом плане СКД сильно проигрывает народным средствам ("народное СКД")
Сергей, прошу больше не выражаться. Я вас не знаю, и не потерплю фамильярностей в моем отношении. Это раз.
Эта проблема уже давным давно решена (на дворе 2016 год).
С тех пор я из детских штанишек давно вырос, и подобные проблемы каждый день пачками решаю легко и непринужденно.
Собственно, это даже не проблема а пшик. Опытный программист легко обойдет.
Она решается просто. Решений куча в инете, могу найти описание подробнейшие.
Если кому понадобиться, дам ссылку.
НЕ вижу смысла флудить решениями, если они уже многократно описаны.
Эта проблема уже давным давно решена (на дворе 2016 год).
С тех пор я из детских штанишек давно вырос, и подобные проблемы каждый день пачками решаю легко и непринужденно.
Собственно, это даже не проблема а пшик. Опытный программист легко обойдет.
Она решается просто. Решений куча в инете, могу найти описание подробнейшие.
Если кому понадобиться, дам ссылку.
НЕ вижу смысла флудить решениями, если они уже многократно описаны.
(16) Извиняюсь, за фамильярность. ( слово "трабла" - это такой жаргон, переводится как "проблема", то есть я писал "проблема" Имя).
Если Вам не сложно, тыкните в "подбробнейшее описание".
На моем примере - запрос выводит записи, нет никаких пакетов и сложных соединений.
П.С. Да, на дворе скоро 2017 год, но не все используют новые платформы.
Если Вам не сложно, тыкните в "подбробнейшее описание".
На моем примере - запрос выводит записи, нет никаких пакетов и сложных соединений.
П.С. Да, на дворе скоро 2017 год, но не все используют новые платформы.
(16) Петр, подскажите пожалуйста как Вы решили проблему пустых строк в отчете СКД. У меня простейший отчет карточка счета на СКД со своим макетом и почему то между группировками есть пустые строки. Вариант с редактированием итоговой таблицы это на крайний случай. Может есть вариант изящнее?
Хороший вопрос, Игорь.
С тех времен, как был открыт пост (2011) разработчики 1с видимо успешно решили данный вопрос.
В новых версиях платформы (я щас работаю на 1с 8.3.10.2375) эту траблу решили. На данный момент, СКД выводит группировки без пробелов (я по крайней мере не встречал отчетов где есть пробелы в последние года).
Может я и не прав, если у вас все еще эта проблема встречается, просьба сообщить:
1. Версию платформы
2. Скриншот
Если хотите, чтобы я подумал чем могу помочь, просьба выложить отчет и версию конфигурации в которой запускаете, я попробую воспроизвести и поразмыслю над причинами.
И попробуйте установить платформ не ниже указанной у меня 8.3.10.2375. Если исчезнут пробелы между группировками, значит 1с это дело исправило в текущих релизах.
С тех времен, как был открыт пост (2011) разработчики 1с видимо успешно решили данный вопрос.
В новых версиях платформы (я щас работаю на 1с 8.3.10.2375) эту траблу решили. На данный момент, СКД выводит группировки без пробелов (я по крайней мере не встречал отчетов где есть пробелы в последние года).
Может я и не прав, если у вас все еще эта проблема встречается, просьба сообщить:
1. Версию платформы
2. Скриншот
Если хотите, чтобы я подумал чем могу помочь, просьба выложить отчет и версию конфигурации в которой запускаете, я попробую воспроизвести и поразмыслю над причинами.
И попробуйте установить платформ не ниже указанной у меня 8.3.10.2375. Если исчезнут пробелы между группировками, значит 1с это дело исправило в текущих релизах.
Оживлю немного тему, ибо тоже потратил время на решение этого вопроса.
Достаточно создать пустую группировку детальных записей с отключенными авто-полями и к ней уже дочерними группировками добавлять произвольные группировки, которые должны идти вместе, с одной шапкой и без промежутков между ними.
Далее, на закладке Макеты создаём макеты группировок (Добавить макет группировки ) с типом Заголовок для всех группировок, включая Шапку.
Получаем единую таблицу с общей шапкой и единой структурой.
Надеюсь это сэкономит кому-нибудь время и нервы ))
Достаточно создать пустую группировку детальных записей с отключенными авто-полями и к ней уже дочерними группировками добавлять произвольные группировки, которые должны идти вместе, с одной шапкой и без промежутков между ними.
Далее, на закладке Макеты создаём макеты группировок (Добавить макет группировки ) с типом Заголовок для всех группировок, включая Шапку.
Получаем единую таблицу с общей шапкой и единой структурой.
Надеюсь это сэкономит кому-нибудь время и нервы ))
Прикрепленные файлы:
(27) В статье описано простое решение. Вы его попробовали? Вы попробовали другие способы, предложенные в комментариях. Вы их попробовали? Если у вас КОНКРЕТНЫЙ вопрос, опишите что у вас не получилось, на какой версии платформы, при каких условиях, приложите обработку или отчет с примером вашего кода. Какой вопрос такой и ответ.
Если вы желаете получить помощь, разворачивайте полно ваш вопрос и приложите некоторые усилия, чтобы я вас понял, что вы хотите.
Если вы желаете получить помощь, разворачивайте полно ваш вопрос и приложите некоторые усилия, чтобы я вас понял, что вы хотите.
(28) На мой взгляд, все подробно расписано по шагам. И в самом коде все расписано. Далее в комментариях описано изменение решения проблемы с течением времени. В более новых версиях платформы данная проблема была решена разработчиками. Если у вас старая версия, попробуйте на практике те способы решения, которые были предложены в рамках данной статьи и в комментариях.
Если у вас не получается, конкретизируйте ваш вопрос.
Я тоже могу задать вам общий вопрос: "А почему вы не убрали? А почему не получилось? А какая версия платформы? А какой отчет? А не предоставите ли ваш код, способы его проверки, сколько раз проверяли, при каких условиях?"
Если у вас не получается, конкретизируйте ваш вопрос.
Я тоже могу задать вам общий вопрос: "А почему вы не убрали? А почему не получилось? А какая версия платформы? А какой отчет? А не предоставите ли ваш код, способы его проверки, сколько раз проверяли, при каких условиях?"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот