1с изменить отчет скд
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД
Автор уроков и преподаватель школы: Владимир Милькин
Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.
Готовим рабочее место
Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .
Если у вас уже есть установленная 1С версии 8.3 - используйте её. Если нет - скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.
На вашем рабочем столе должен появиться вот такой ярлык:
Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.
Если вы её удалили - скачайте заново по следующей ссылке, распакуйте и подключите в список баз.
Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).
Ставим цель
Цель этого урока - создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:
- Имя
- Пол
- Любимый цвет клиента.
Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.
Чтобы сформировать такой отчет в 1С пользователю нужно будет запустить базу в режиме пользователя, открыть этот файл и нажать кнопку "Сформировать".
Создаём отчёт
Запускаем конфигуратор для базы "Гастроном":
Из главного меню выбираем пункт "Файл"->"Новый. ":
Выбираем "Внешний отчет":
Создаём схему компоновки данных внутри отчёта
Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1", а затем жмём кнопку "Открыть схему компоновки данных":
Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных" и жмём кнопку "Готово":
Открылось основное рабочее окно, с множеством закладок и полей, в котором мы и будем настраивать нашу схему компоновки данных.
Не нужно пугаться - возможностей здесь действительно много, но далеко не все из них нам нужны. Особенно на первом уроке.
Сейчас мы находимся на закладке "Наборы данных". На ней и останемся.
Пишем запрос через конструктор
Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.
Самый простой способ - написать запрос к базе. В предыдущих модулях школы мы научились писать и понимать запросы - поэтому я рассчитываю, что вы обладаете соответствующими навыками.
Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт "Добавить набор данных - запрос":
Добавился набор данных с именем "НаборДанных1", но мы видим, что поле "Запрос" в нижней части окна пока пустое:
Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?
В этом запросе мы выбрали три поля ("Наименование", "Пол" и "ЛюбимыйЦвет") из таблицы "Справочник.Клиенты".
Но не торопитесь писать этот текст в поле "Запрос" вручную.
Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется "Конструктор запроса".
Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса. " в верхней правой части поля "Запрос":
В открывшемся окне перетащим таблицу "Клиенты" из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:
Получилось вот так:
Далее раскроем таблицу "Клиенты" во втором столбце по знаку "Плюс", чтобы увидеть все её поля и перетащим поле "Наименование" из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле "Наименование":
Получилось вот так:
Поступим точно так же с полями "Пол" и "ЛюбимыйЦвет". Результат будет таким:
Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".
Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:
Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.
Настраиваем представление данных
Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!
Чтобы сотворить такое чудо перейдём на вкладку "Настройки" и нажмём кнопку конструктора настроек (волшебная палочка):
В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее":
В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет", "Наименование" и "Пол"):
Получим вот такой результат и нажмём кнопку "ОК":
Конструктор настроек закрылся и появился пункт "Детальные записи":
Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.
Сохраняем отчёт в виде файла
Откроем пункт главного меню "Файл"->"Сохранить":
Я сохраню его на рабочий стол под именем "Урок1":
Проверяем отчёт в режиме пользователя
Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:
Имя пользователя "Администратор", пароля нет:
Через меню выберем пункт "Файл"->"Открыть. ":
И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":
Открылась форма отчёта, нажмём кнопку "Сформировать":
Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:
Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл"->"Печать. ":
Вот так просто, без программирования нам удалось создать полноценный отчёт, который пользователи смогут открывать в своих базах, формировать и распечатывать.
То ли ещё будет, наберитесь терпения
Эталонная обработка, после выполнения всех шагов этого урокаВойдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: меняем созданный отчет
Автор уроков и преподаватель школы: Владимир Милькин
На этом уроке мы научимся менять уже созданный на основе СКД отчёт.
Ставим цель
Целью этого урока будет:
- Скопировать файл отчёта с прошлого урока "Урок1.erf".
- Изменить имя скопированного отчёта на "Урок2.erf".
- Открыть отчёт "Урок2.erf" в конфигураторе.
- Внести изменения в схему компоновки данных.
Создаём копию отчёта с предыдущего урока
Вначале копируем отчёт предыдущего урока.
. и вставляем его на рабочий стол:
Далее переименовываем получившуюся копию.
Открываем копию в конфигураторе
Открываем базу "Гастроном" в конфигураторе:
Открываем в конфигураторе отчёт .
В открывшейся форме отчёта меняем имя на "Урок 2" и нажимаем кнопку "Открыть схему компоновки данных":
Вот она наша схема - в том виде как мы её настроили на прошлом уроке:
Меняем заголовки столбцов
Вы помните как выглядит этот отчёт в режиме пользователя? Вот так:
Давайте изменим нашу схему так, чтобы вместо "Наименование" выводилось "Имя", а вместо "Пол" выводилось "М/Ж".
Сделать это проще простого.
В схеме на закладке "Наборы данных" в области "Поля" устанавливаем галку и меняем заголовок соответствующих полей:
Сохраняем наш отчёт нажатием на значок дискета:
И вновь открываем его в режиме пользователя (при этом не забудьте закрыть предыдущий отчет) и нажимаем кнопку "Сформировать":
Заголовки колонок изменились нужным образом. Отлично
Меняем порядок столбцов
Но порядок колонок не совсем правильный. Давайте добьёмся того, чтобы колонка "Наименование" шла первой, "Пол" второй и "ЛюбимыйЦвет" третьей.Для этого возвращаемся в конфигуратор (вообще не нужно было его закрывать) в нашу схему компоновки данных и переходим на закладку "Настройки".
В этой закладке прежде чем что-то делать всегда будем в начале выделять слово "Отчет" (шаг 2). Пока просто запомните это и делайте так всегда.Выделив "Отчет" переходим (ниже) на закладку "Выбранные поля", выделяем там поле "Наименование" и при помощи стрелки перемещаем его наверх:
Получилось вот так:
Аналогичным образом меняем порядок оставшихся полей, чтобы получилось вот так:
Вновь сохраняем отчёт и, не закрывая конфигуратора, открываем и формируем его в режиме пользователя:
Всё получилось. Порядок колонок теперь вполне логичный.
Меняем оформление и добавляем заголовок
Теперь давайте сделаем небольшое "украшательство" нашего отчёта и изменим его цветовое оформление.Для этого в режиме конфигуратора переходим на закладку "Настройки", обязательно выделяем "Отчет", далее в самом низу переходим на закладку "Другие настройки" и нажимаем на кнопку выбора для пункта "Макет оформления":
Выбираем вместо основного вариант "Античный":
Теперь давайте добьёмся того, чтобы у нас в отчёте перед таблицей выводился заголовок "Наши клиенты".
Чтобы это сделать проматываем список других настроек вниз и устанавливаем поля "Выводить заголовок" и "Заголовок" как на рисунке ниже:
Сохраняем отчёт и открываем его в режиме пользователя:
Видим, что появился заголовок и изменилось оформление.
Меняем сортировку
А ещё давайте сделаем, чтобы в нашем отчёте сначала шли женщины, а затем мужчины.Для этого сделаем сортировку полю "Пол".
Снова возвращаемся к конфигуратору. Переходим на закладку "Настройки", выделяем "Отчет" и переходим на закладку (в самом низу) "Сортировка".
Там перетаскиваем поле "Пол" из первой колонки во вторую:
А также указываем для него направление сортировки "По убыванию":
Сохраняем отчёт, а затем формируем его в режиме пользователя:
Отлично, строки в отчёте отсортированы по полу: вначале идут женщины, а затем мужчины.
Эталонная обработка, после выполнения всех шагов этого урокаВойдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: меняем оформление
Автор уроков и преподаватель школы: Владимир Милькин
Ставим цель
- Сделать копию отчёта с прошлого урока
- Изменить его имя на "Урок4.erf"
- Внести изменения в копию отчёта (сегодня разбираем примеры с условным оформлением)
Делаем копию отчёта с прошлого урока
Делаем копию отчёта с прошлого урока:
Переименовываем копию в "Урок4.erf":
Открываем базу "Гастроном" в конфигуратор:
Открываем отчёт "Урок4.erf":
В форме отчёта меняем имя на "Урок4" и открываем схему компоновки данных:
Давайте вспомним, как выглядит отчёт прошлого урока в режиме пользователя:
Сокращаем длину дробной части
Первая проблема, которую нам предстоит решить, это вывод слишком большого количества цифр после запятой (177,666666. ).
Причиной этого послужило деление при нахождении среднего. Чтобы устранить этот недостаток укажем в настройках поля "СредняяКалорийность" формат вывода чисел, подразумевающий только 2 числа в дробной части.
Для этого переходим на закладку "Настройки", там выделяем пункт "Отчет", далее в самом низу выделяем закладку "Условное оформление" и нажимаем зелёный плюсик, чтобы добавить новую запись:
В появившейся записи настраиваем поле "Оформляемые поля", чтобы указать к каким именно полям мы будем применять условное оформление:
В открывшемся диалоге нажимаем зелёный плюсик, чтобы добавить поле:
Добавляем поле "СредняяКалорийность" (именно в нём выводится слишком много чисел в дробной части), получилось вот так:
Теперь переходим к настройке поля "Оформление":
Наша задача задать правильный числовой формат:
Указываем значение точности равное двум:
Получилось вот так:
Итоговая запись условного оформления выглядит так:
Сохраняем отчёт и открываем (конфигуратор закрывать не нужно) в режиме пользователя:
Отлично, теперь дробная часть округляется до 2 чисел.
Выводим итоги жирным шрифтом
Теперь было бы здорово, чтобы итоговые значения вкуса, калорийности и средней калорийности выводились жирным шрифтом.
Это также легко сделать при помощи условного оформления.
Переходим на закладку "Настройки", далее выделяем пункт "Цвет" (потому что мы делаем настройку оформления, которая будет относится только к группировке цвет), далее переходим на закладку "Условное оформление" и снова нажимаем зелёный плюсик:
В новой записи настраиваем пункт "Оформляемые поля" (кнопка многоточие) и выбираем поля "Вкус", "Калорийность" и "СредняяКалорийность":
Переходим к настройке поля "Оформление":
Здесь находим пункт "Шрифт" и также открываем его по кнопке многоточие:
Начертание шрифта настраиваем вот так:
Нажимаем "Ок" и ещё раз "Ок":
Получилось вот так:
Сохраняем отчёт и формируем в режиме пользователя:
Отлично, но не совсем. Хочется, чтобы жирным выводились только значения итогов напротив цветов, а у нас условное оформление применилось ещё и к заголовкам полей и к общим итогам. Исправим это.
Для этого возвращаемся к записи условного оформления, которую мы только что создали и настраиваем поле "Область использования":
Снимаем галки напротив "В общем итоге" и "В заголовке полей":
Снова сохраняем отчёт и формируем в режиме пользователя:
Выводим жирным шрифтом общие итоги
А теперь давайте добьёмся, чтобы вся общая строка итогов (включая слово "Итого") выводилась жирным шрифтом.
Для этого переходим на закладку "Настройки", выделяем пункт "Отчет" (применяем настройки в целом к отчёту), далее переходим на закладку "Условное оформление" и добавляем ещё одну запись (зелёная кнопка плюс):
В новой записи не указывать "Оформляемые поля", что означает, что мы хотим применить оформление ко всем полям, а вместо этого настраиваем оформление:
Наконец, правильно настраиваем "Область использования" нашей записи:
Оставляем единственный пункт - "В общем итоге":
Получилось вот так:
Сохраняем отчёт и формируем в режиме пользователя:
Мы добились своего
Разукрашиваем фон заголовка полей и общие итоги
А что, если нам разукрасить фон заголовка полей и итоговой строки в зелёный цвет? А текст в белый?
Я покажу как легко это делается.
Вновь переходим на закладку "Настройки", выделяем пункт "Отчет", далее переходим на закладку "Условное оформление" и жмём зелёный плюсик, чтобы добавить ещё одну запись:
Сразу настраиваем "Область использования новой записи (оставляем только "В общем итоге" и "В заголовке полей"):
Далее переходим к полю "Оформление" новой записи, настраиваем цвет фона и цвет текста как на картинке ниже:
Получилось вот так:
Сохраняем отчёт и формируем в режиме пользователя:
Добавляем заголовок
Ну и в качестве завершающего приёма этого урока установим заголовок отчёта (мы это уже делали в прошлых уроках).
Для этого переходим на закладку "Настройки", выделяем пункт "Отчет", далее переходим на закладку "Другие настройки" и там настраиваем пункты "Выводить заголовок" и "Заголовок" вот так:
Сохраняем отчёт и формируем в режиме пользователя:
Эталонная обработка, после выполнения всех шагов этого урокаВойдите на сайт как ученик
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
О чем эта статья
В статье рассмотрен пример доработки типового отчета «Расчетный листок» в конфигурации «Зарплату и Управление Персоналом 3.0». На данном примере показываются общие шаги разработчика, в случае если он слабо знаком с конкретной реализацией конкретного типового отчета на базе СКД.
Применимость
В материалах статьи в качестве примера используется конфигурация, «Зарплата и Управление Персоналом», редакции 3 3.0.25.122. Но от этого примеры доработки, продемонстрированные в видео, не стали устаревшими, т.к. акцент сделал именно на логике рассуждений разработчика перед которым поставлена подобного рода задача. Смело смотрите видео, это must have!
Что конкретно мы будем делать
Очень простая задача :)
А параллельно мы разберем и приемы работы с СКД:
Итак, поехали! 21 минута видео :)
Видео 1: Как за 10 минут понять логику формирования типового отчета
В этом уроке приступаем к решению задачи по модификации Расчетного листка в ЗУП 3.0.
В данном уроке мы показываем, как понять логику формирования типового отчета на СКД с программным заполнением полей и ручным выводом данных в табличный документ.
Видео 2: Как с помощью 2 строк кода изменить заполнение отчета
В итоге задача решается с минимальными изменениями:
- Новая строка в макете
- Левое соединение в запросе
- Две строки в программном коде.
Эта тема детально раскрыта в курсе:
Не откладывайте свое обучение!
Комментарии / обсуждение (65):
Добрый день! Вопрос по УТ 11. В типовых отчётах добавляются доп. реквизиты. Вопрос: как их исключить из отчетов?
Подробнее.
Существует, примерно, 100 видов номенклатуры, к каждому из которых привязан свой набор доп. реквизитов от 5 до 10).
При изменении варианта отчета, где используется номенклатура, при раскрытии её, вываливается список всех доп. реквизитов. Жуткий тормоз. Можно ли сделать так, чтобы при отборе или добавлении поля, не выводились эти доп. реквизиты?
В УТ 11 не требуется заполнять закладку Характеристики в тексте запроса набора данных.
Дело в том, что в этой конфигурации настроены характеристики на уровне объектов метаданных. Например, можно в конфигураторе обратиться к справочнику Номенклатура, в контекстном меню выбрать пункт Характеристики:
Здесь указано, откуда система будет получать перечень характеристик и их значения.
СКД учитывает эту настройку, поэтому дополнительно прописывать характеристики в запросе не нужно.
По поводу переноса в обычне реквизиты. Дело в том, что у каждого вида номенклатуры свои доп. реквизиты и они не пересекаются. Это сколько же их будет?!
Можно на копии базы сделать тестовый пример, проверить производительность и все остальные аспекты, принять решение, стоит ли выполнять такие действия на рабочей базе.
>> Также из видео Вы узнаете, для чего в запросе может использоваться конструкция “Выбрать Первые 0”
А я так и не понял для чего используется такая конструкция?
Ведь на выходе такой запрос будет возвращать пустую таблицу с колонками.
А как тогда выбираются данные для этой таблицы?
Да, конечно, не изменится. Но можно выделить 2 способа использования именно такой конструкции:
1. Она обеспечивает формирование пустого результата запроса с набором колонок нужного типа. Если использовать просто ВЫБРАТЬ, то в результате будут данные (одна строка с пустыми значениями).
2. Это может быть удобным маркером, признаком, что именно этот запрос нужно подменить. Потому что в обычном запросе для получения данных из базы такая конструкция точно не будет применяться.
Пожалуйста. Обращайтесь:)
И приходите к нам на курс по СКД. В Мастер-группе отвечаем на Ваши вопросы по СКД.
РезультатЗапроса = Запрос.ВыполнитьПакет();
Выборка = РезультатЗапроса[0].Выбрать();
ОбластьИнформацияСтудента.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьИнформацияСтудента, Выборка.Уровень());
ТабДок.Вывести(ОбластьРезультат);
ТабДок.Вывести(ОбластьРезультатыСдачиШапка);
//Выборка = Выборка.РезультатыСдачи.Выбрать();
//Каждому студенту свои предметы
Выборка2.Следующий();
ОбластьРезультатыСдачи.Параметры.Заполнить(Выборка2);
ТабДок.Вывести(ОбластьРезультатыСдачи, Выборка2.Уровень());
Читайте также: