1с скд упорядочить колонки
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: считаем итоги (ресурсы)
Автор уроков и преподаватель школы: Владимир Милькин
Ставим цель
Целью этого урока будет:
- Написать отчёт, который выводит список продуктов (справочник Еда), их калорийность и вкус.
- Сделать группировку продуктов по их цвету.
- Познакомиться с возможностью подведения итогов (ресурсы) и вычисляемыми полями.
Создаём новый отчёт
Как и на предыдущих уроках открываем базу "Гастроном" в конфигураторе и создаём новый отчёт через меню "Файл"->"Новый. ":
Вид документа - внешний отчёт:
В форме настройки отчёта пишем имя "Урок3" и нажимаем кнопку "Открыть схему компоновки данных":
Оставляем имя схемы по умолчанию и нажимаем кнопку "Готово":
Добавляем запрос через конструктор
На закладке "Набор данных" нажимаем зелёный плюсик и выбираем пункт "Добавить набор данных - запрос":
Вместо того, чтобы писать текст запроса вручную, вновь запускаем конструктор запроса:
На вкладке "Таблицы" перетягиваем таблицу "Еда" из первой колонки во вторую:
Выбираем из таблицы "Еда" поля, которые будем запрашивать. Для этого перетаскиваем поля "Наименование", "Вкус", "Цвет" и "Калорийность" из второй колонки в третью:
Получилось вот так:
Нажимаем кнопку "ОК" - текст запроса сформировался автоматически:
Формируем настройки представления отчёта
Переходим на закладку "Настройки" и нажимаем на волшебную палочку, чтобы вызвать конструктор настроек:
Выбираем вид отчета "Список. " и нажимаем кнопку "Далее":
Перетаскиваем из левой колонки в правую поля, которые будут отображаться в списке и нажимаем "Далее":
Перетаскиваем из левой колонки в правую поле "Цвет" - по нему будет происходить группировка строк в отчёте. Нажимаем "ОК":
А вот и результат работы конструктора. Иерархия нашего отчёта:
- отчёт в целом
- группировка "Цвет"
- детальные записи - строки с названиями еды
Сохраним отчёт (кнопка дискета) и не закрывая конфигуратора тут же откроем его в режиме пользователя. Получилось вот так:
Меняем порядок колонок
Но давайте поменяем порядок колонок (стрелки вверх-вниз), чтобы он был таким как на рисунке ниже:
Сохраним отчёт и вновь откроем в режиме пользователя:
Отлично, так гораздо лучше.
Подводим итог (сумму) по калорийности
Было бы неплохо выводить итог калорийности продуктов по группам. Чтобы видеть сумму калорийности всех продуктов, скажем, белого или жёлтого цвета. Или узнать общую калорийность вообще всех продуктов в базе.
Для этого существует механизм вычисления ресурсов.
Переходим на вкладку "Ресурсы" и перетаскиваем поле "Калорийность" (мы же по нему собираемся итог подводить) из левой колонки в правую.
При этом в поле выражение выбираем из выпадающего списка "Сумма(Калорийность)", так как итогом будет являться сумма всех входящих в итог элементов:
Сохраняем и формируем отчёт:
У нас появились итоги по каждой из групп и по отчёту в целом.
Подводим итог (среднее) по калорийности
Теперь давайте сделаем так, чтобы в ещё одной колонке выводилась средняя калорийность продуктов по группам и в целом по отчёту.
Трогать уже имеющуюся колонку "Калорийность" нельзя - в неё уже выводится итог-сумма, поэтому заведём ещё одно поле, которое будет являться точной копией поля "Калорийность".
Чтобы завести такое "виртуальное" поле воспользуемся механизмом вычисляемых полей.
Переходим на закладку "Вычисляемые поля" и нажимаем зелёный плюсик:
В колонке "Путь к данным" пишем имя нового поля (слитно, без пробелов). Пусть оно будет называться "СредняяКалорийность", а в колонке "Выражение" пишем имя уже существующего поля, на основании которого будет рассчитываться новое поле. Пишем туда "Калорийность". Колонка "Заголовок" заполнится автоматически.
Мы добавили новое поле ("СредняяКалорийность"), но в отчёте оно само по себе не появится - нужно или вновь вызывать конструктор настроек ("волшебная палочка") или добавить это поле вручную.
Поступим вторым способом. Для этого переходим на закладку "Настройки", выбираем "Отчет" (ведь мы хотим добавить поле в целом к отчёту), выбираем внизу закладку "Выбранные поля" и перетаскиваем поле "СредняяКалорийность" из левой колонки в правую:
Получилось вот так:
Сохраняем и формируем отчет:
Поле появилось и мы видим, что его значениями являются значения поля "Калорийность". Отлично!
Но мы помним, что конечная цель - посчитать среднюю калорийность по группам и в целом по отчёту.
Для этого вновь воспользуемся уже знакомым нам механизмом ресурсов (подведение итогов). Переходим на закладку "Ресурсы" и перетаскиваем поле "СредняяКалорийность" из левой колонки в правую:
При этом в колонке "Выражение" выбираем "Среднее(СредняяКалорийность)":
Сохраняем и формируем отчёт:
Видим, что по группам, то есть по каждому цвету, и по отчёту в целом совершенно верно посчиталось среднее значение. Но присутствуют лишние записи по отдельным продуктам (не по группам), которые хотелось бы убрать из отчёта.
Знаете почему они появились (значения не по группам)? Потому что, когда мы добавляли поле "СредняяКалорийность" в настройки отчёта, на втором шаге мы выделили весь отчёт в целом и это новое поле попало в элемент "Детальные записи".
Исправим ошибку. Для этого вернёмся на закладку "Настройки", выберем "Детальные записи" сначала сверху (шаг 2), а затем "Детальные записи" снизу (шаг 3), перейдём на закладку "Выбранные поля" и увидим в её правой колонке элемент "Авто".
Элемент "Авто" - это не одно поле. Это несколько полей, которые попадают сюда автоматически на основании вышестоящих настроек.
Чтобы увидеть, что это за поля - нажмём на элемент "Авто" правой кнопкой и выберем пункт "Развернуть":
Элемент "Авто" раскрылся в следующие поля:
А вот и наше поле "СредняяКалорийность", которое попало сюда из пункта "Отчет", когда мы его туда перетаскивали. Просто снимем галку рядом с этим полем, чтобы убрать его вывода:
Сохраним и сформируем отчёт:
То, что надо! Значения "СредняяКалорийность" остались только в группах (цвет) и в итоге по отчёту в целом.
Подводим итог (количество) по вкусам
Ну и напоследок, чтобы закрепить умение подводить итоги, сделаем вывод количества различных вкусов для продуктов каждого цвета.
Ну, например, для белого цвета, это значение будет равно 2 (всего два вкуса "Кислый" и "Сладкий"), а для жёлтого 3 ("Сладкий", "Солёный" и "Кислый").
Переходим на закладку "Ресурсы" и перетаскиваем поле "Вкус" из левой колонки в правую:
В качестве выражения выбираем "Количество(Различные Вкус)":
Сохраняем и формируем отчёт:
Эталонная обработка, после выполнения всех шагов этого урокаВойдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Кому подойдет информация: Программист 1С
Пожалуй, наиболее популярный вопрос, который возникает у программистов 1С при работе со схемой компоновки данных.
Когда создается отчет на СКД, то, пока не определены ресурсы, показатели будут выводиться в той последовательности, которая определена на вкладке "Выбранные поля" вкладки "Настройки".
Нажатие на изображении увеличит его
Рис.1. Пример вывода полей (колонок) отчета на СКД , пока не определены ресурсы.
Если определить, какие из полей будут ресурсами, то колонки ресурсов будут выведены схемой компоновки данных после всех полей. Для определенных задач, не смотря на то, что все же данные в отчете есть, это может оказаться не удобным хотя бы в силу человеческого восприятия. Поэтому один из популярных вопросов, касающихся отчетов, созданных на СКД - "Как СКД вывести ресурсы не в конце?" Наиболее распространенный ответ на этот вопрос заключается в том, чтобы "нарисовать" макет для группировок отчета на вкладке "Макеты" - об этом на примере можно прочитать в книге "Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных" под авторством Е.Ю.Хрусталевой в Главе 5 - "Макеты", где приведены примеры для макетов полей, ресурсов, группировок, заголовков группировок и остального. Но это может оказаться трудоемким процессом, тем более тогда, когда макет определен, а нужно отчет дополнить новыми данными. Сделать то, конечно можно, но время будет израсходовано прилично, чтобы изменять макет, особенно если отчет и макет соответственно сложный.
Нажатие на изображении увеличит его
Рис. 2. Результат вывода полей(колонок) отчета после определения ресурсов.
Но есть одно простое, не идеальное, но доступное решение этой ситуации произвольного вывода колонок ресурсов. На вкладке "Другие настройки" формы схемы компоновки для параметра "Авто позиция ресурсов" выбрать значение "Не использовать". Не идеальность заключается в том, что неплохо работает для группировок, и может совсем плохо себя "повести" для таблицы.
Нажатие на изображении увеличит его
Рис. 3. Настройки схемы компоновки данных для изменения порядка вывода ресурсов.
Тогда порядок следования колонок ресурсов между колонками полей будет соответствовать порядку, установленному на вкладке "Выбранные поля" СКД.
Нажатие на изображении увеличит его
Рис. 4. Колонки ресурсов в отчете выведены между колонками полей СКД.
СКД Скрыть колонку в таблице
Есть отчет с запросом ВЫБРАТЬ НормыВыдачиСпецодеждыСпецодежда.Наименование, .
Как скрыть колонку в макете СКД?
Доброго времени суток. Как в макете скд скрыть колонку, чтобы при открытие отчета ее не было видно.
В отчете скд как зафиксировать 1 колонку, чтобы не повторялась при выводе по периодам?
Платформа 8.1, конфигурация самописная. В приложении сам отчет и в экселе зеленым я отметил те.
Убрать поля в запросе (скрыть поля в отчете скд)
В запросе я создаю временную таблицу. В ней сгруппировав поля получаю нужную таблицу. Но некоторые.
точно. работает. спасибо.
я думал что если галочку снять, то сортироваться нельзя по нему. эта галочка она что только на видимость влияет? если я построю отчет, группировок накидаю и везде галочки сниму, то у меня отчет построется, просто видимость будет отключена. так что-ли?
Добавлено через 3 минуты
хотя может и не работает, у меня поле не заполнено, завтра на работе проверю на нормальной базе.
Решение
если я построю отчет, группировок накидаю и везде галочки сниму, то у меня отчет построется, просто видимость будет отключена. так что-ли?Нет. При отсутствии галок эти поля (группировки) не используются при построении отчета, это все равно, что их удалить.
Отчет упорядочивается по полям сортировки, а при их отсутствии по выбранным полям.
С группировками немножко сложнее. Сначала сортировка выполняется по полям группировок.
Т.е. ты хочешь сказать, что при наличии этой колонки все формируется как надо, а при отключенной нет, даже если по ней добавить сортировку?
Можешь приложить отчет?
как я его приложу. он на самописной конфе. в типовой даже таких справочников нет. все равно не откроешь его. мне надо на работе еще раз проверить. здесь данные набиты кое-как. но если я убираю галочку с поля по которому сортируюсь (сортировка остается), то отчет изменяется
Добавлено через 15 минут
протестил сейчас. набил данные. если галочку снять, поля не видно разумеется, но и не сортируется по этому полю.
Добавлено через 1 минуту
как програмно скрыть колонку? это вообще возможно?
все нормально. сортируется. спасибо. не знаете, когда отчет формируем с типом группировки Иерархия: там короче дублирование строк идет, у которых есть подчиненные элементы (справ иерархия элементов). Дубляжи я научился убирать. Но проблема в том, что убираемая мной строка, содержит нужную информацию (там другие колонки есть заполненные), а строка которая в отчете - родитель, она не заполняет эти колонки.
Добавлено через 12 часов 41 минуту
Как думаете, если я в запросе получаю ссылку. А в настройке СКД: поля вытаскиваю из этой ссылки - это очень плохо?
Просто по другому (если запросом сразу все получать), то в случае Иерархии - родительские строки остаются незаполнеными (за исключением поля Ссылка).
Запрос в отчете с СКД
У меня есть такой запрос: ВЫБРАТЬ МашинноеВремя.Дата КАК Дата, МашинноеВремя.Ссылка.
Расшифровка в отчете на скд
Необходимо сделать свою расшифровку. Для начала не могу добраться до значения ресурса. функция.
Иерархия в отчете на скд
Здравствуйте, похожие темы уже точно тут обсуждались, но решения я так и не смогла найти. Есть.
Гиперссылка в отчете СКД
Здравствуйте. В отчете СКД вывожу путь к файлу в виде строки. Можно ли вывести путь в виде.
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: делаем отбор и сортировку на уровне СКД
Автор уроков и преподаватель школы: Владимир Милькин
Ставим цель
- Создать новый отчёт "Урок5.erf".
- Вывести в этом отчёте города (включая название города, мэра и численность).
- Упорядочить города в списке по численности (по возрастанию)
- Прямо на форме отчёта дать пользователю возможность делать отбор городов по минимальной численности.
Создаём новый отчёт в конфигураторе
Открываем базу "Гастроном" в конфигураторе.
Из главного меню конфигуратора выбираем пункт "Файл"->"Новый. ":
Вид документа: "Внешний отчет":
В качестве имени пишем "Урок5" и нажимаем кнопку "Открыть схему компоновки данных":
Соглашаемся с именем схемы компоновки данных по умолчанию:
В открывшейся схеме компоновки данных добавляем набор данных - запрос:
Составляем запрос
Запускаем конструктор запроса:
Из таблицы справочника "Города" выбираем поля: "Наименование", "Мэр" и "Численность":
Получился такой запрос:
Выводим отчёт в виде списка
Переходим на закладку "Настройки" и нажимаем волшебную палочку, чтобы вызывать конструктор настроек:
Тип отчёта выбираем "Список":
В отчёте будут отображаться следующие поля:
Сохраняем отчет и тут же проверяем в режиме пользователя:
Сортируем города по численности
Теперь давайте упорядочим записи отчёта по возрастанию численности.
Для этого переходим на вкладку "Настройки", выбираем пункт "Отчет", ниже выбираем вкладку "Сортировка" и перетаскиваем поле численность из первой колонки во вторую.
Направление сортировки указываем "По возрастанию":
Сохраняем отчёт и проверяем в режиме пользователя:
Делаем отбор городов по численности
Теперь давайте сделаем так, чтобы в отчёте выводились только города с численностью от 1 миллиона человек (включительно). Такая возможность называется отбор.
Переходим на вкладку "Настройки", выбираем пункт "Отчет", далее переходим на вкладку "Отбор" и перетаскиваем поле "Численность" из левой колонки в правую.
В качестве вида сравнения указываем "Больше или равно", а в качестве правого значения - 1000000:
Сохраняем отчет и проверяем в режиме пользователя:
Видим, что остались города с численностью больше миллиона и этот факт (отбора) явно отражён в заголовке отчета.
Выносим параметр отбора на форму отчета
Осталось сделать так, чтобы пользователь мог сам настраивать пороговое значение отбора. Другими словами, чтобы вместо миллиона он мог поставить свою цифру.
Заходим на вкладку "Настройки", выделяем пункт "Отчет", внизу выбираем вкладку "Отбор", выделяем элемент отбора "Численность" и нажимаем справа внизу на зелёный плюсик:
В открывшемся окне ставим галку "Включать в пользовательские настройки":
Вновь сохраняем отчет и запускаем в режиме пользователя.
Видим, что появилось поле "Численность" меняя условие и значение которого мы управляем отбором городов в отчёте:
Эталонная обработка, после выполнения всех шагов этого урокаВойдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Читайте также: