115 полезностей от Буравова Андрея по курсу СКД Евгения Гилёва

Посмотрел 5,5 часовой курс по системе компоновки данных.
Нашел невероятное количество не только необходимого, но и примеры не очевидного поведения СКД.

У многих не хватает времени и терпения досмотреть курс до конца.
Прочитав 115 полезностей, вы сможете понять в каком уроке освещен интересующий вас вопрос и быстро открыть его, чтобы посмотреть видео.

Среди вложенных файлов размещено электронное оглавление от Крынецкого.

1.   L6. При разработке отчета удобно и быстро создавать его с помощью консоли отчетов СКД

2.   L5. Объединение набора данных используется для объединения с объектами типа «ТаблицаЗначений», «Табличное поле» и т.д.

3.   L6. В консоли отчетов СКД можно проверить – на сколько оптимально выполняется отчет, сначала выполнив отчет, затем посмотрев на xml схему макета компоновки данных на второй вкладке внизу «Макет для табличного поля документа»

4.   L7. Когда делаем отчет на СКД – не нужно указывать условия отбора в самом запросе. Надо указывать их на вкладке «Настройки – Отбор». Тогда:

  1. — не будет ошибок, если параметр не был заполнен

  2. — можно будет использовать различные виды сравнения (Равно, В группе, Заполнено…)

  3. — пользователь сможет убирать отбор, если он ему не нужен

5.   L8. Тем не менее, если отбор должен быть заложен жестко (например, фильтр по предопределенному значению или «Не включать помеченные на удаление»), тогда фильтровать можно и в запросе.

6.   L9. Итоговую сортировку также надо производить на вкладке Настройки – Сортировка, а не в запросе.

7.   L9. Если пользователю нужно запретить сортировку по какому-либо полю, можно на 1 вкладке СКД «Наборы данных» поставить галочку «Ограничение поля – Упорядочение». Подобные ограничения можно использовать и для запрета выключения этого поля, запрета использования отбора по этому полю, запрета группировок по этому полю.

8.   L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система.

9.   L12. Если в запросе есть виртуальная таблица типа «Остатки», «СрезПервых», «СрезПоследних», то СКД автоматически добавит параметр «Период». Если в запросе есть виртуальная таблица «Обороты» или «Остатки и обороты», СКД автоматически добавит параметры «НачалоПериода» и «КонецПериода».

10.  L12. Если в запросе не надо иметь возможность отдельно определять 3 параметра: период, начало периода и конец периода, то правильнее написать у поля Период выражение &КонецПериода, а в конструкторе запроса на вкладке «Компоновка данных» наложить так называемые необязательные параметры, а именно установить период в параметрах виртуальный таблица = &КонецПериода. Тогда из параметров СКД, параметр «Период» который нельзя было удалить, просто пропадет. В сам запрос попадет параметр, заключенный в фигурные скобки ОстаткиТоваров.Остатки({(&КонецПериода)}, ) – что будет являться расширением языка запросов компоновки данных. Фигурные скобки означают «необязательный параметр». Таким образом, если КонецПериода в СКД мы не указали, остатки будут получены на текущую дату.

11.  L12. После того, как мы создали множество таких необязательных параметров, может возникнуть необходимость перестать использовать какой-нибудь параметр. Вместо того чтобы бегать по всему запросу и удалять созданные параметры, можно просто поставить галочку «Ограничение доступности» на вкладке «Параметры» в СКД. Тогда параметры просто не будут использоваться, т.к. они не обязательные из-за фигурных скобок {}.

12.  L13. СКД при включенном флажке «Автозаполнение» всегда включает в поля компоновки все измерения регистров накопления (даже если они не были выбраны в запросе). Выводить эти поля в отчет нельзя, но по ним можно устанавливать отбор. Это видно из галочек «Ограничение поля» — только в поле «Условие» галочки нет. Таким образом, можно использовать эти измерения только в отборе отчета.

Расширение языка запросов компоновки данных

13.  L14. На вкладке «Компоновка данных» в конструкторе запроса можно определить поля, которые попадут в поля компоновки данных.

14.  L14. На вкладке «Поля», флажок «И» (Использовать дочерние) дает возможность по ссылке обращаться к дочерним значениям поля. Например из Номенклатуры узнать ВидНоменклатуры, Код,Наименование и т.д. Для примитивных типов (число, строка, булево, дата) этот флажок не ставится.

15.  L14. На закладке «Компоновка данных» в конструкторе запроса, если нужно установить параметр виртуальной таблицы, не нужно писать Номенклатура = &Номенклатура, получите кучу ошибок и не разберетесь в чем дело. Просто пишите Номенклатура (не указывая операции сравнения), тогда пользователь сам сможет указывать вид сравнения в настройках отчета, да и как минимум – отчет будет нормально работать.

16.  L14. Чтобы включить возможность устанавливать отбор по какому-либо полю в СКД – его нужно добавить на вкладку «Условия» (Конструктор запроса – Компоновка данных).

17.  L16. Подробное описание дополнительных функций СКД можно найти в справке F1 – Встроенный язык – Общие объекты – Система компоновки данных – Язык выражений системы компоновки данных – Функции языка выражений системы компоновки данных. Там описаны примеры использования тех или иных функций.

18.  L16. Дополнительные функции СКД можно использовать:

  1. — в вычисляемых полях

  2. — в поле «Выражение» вкладки Параметры СКД

  3. — во вкладке Настройки – Пользовательские поля

  4. — во вкладке Наборы данных – Выражение представления

  5. — во вкладке Наборы данных – Выражение упорядочивания

19.  L17. СКД может оптимизировать запрос таким образом, что изначально заложенный смысл полностью поменяется. Если вы замечаете, что запрос выводит неверные данные – выполните схему компоновки данных в консоли отчетов СКД и посмотрите xml макета. В нем вы увидите, во что СКД превратила ваш запрос своей оптимизацией. Т.е. она может удалить из пакетного запроса какие-нибудь нужные поля. Чтобы такого не происходило, можно в «Роли» этого поля поставить флажок «Обязательное».

20.  L18. Если в запросе для СКД какому-нибудь полю задается псевдоним, например: «ВЫБРАТЬ Номенклатура КАК ТОВАР», то тогда при автозаполнении полей компоновки данных, в поля попадут и Номенклатура и Товар отдельно. Если пользователь захочет установить отбор по товару, он увидит среди доступных для отбора полей и Номенклатуру и Товар, что может его запутать. Решение – задавать название в поле «Путь» компоновки данных. Тогда на всех вкладках мы (разработчики, в конфигураторе 1С) сможем обратиться к полю «Номенклатура» через «Товар». Пользователю же будет выводиться то, что указано в поле «Заголовок» компоновки данных. Этот заголовок будет использоваться и в качестве названия поля шапки таблицы, и в качестве заголовка поля по которому можно производить отбор, сортировку, группировку, условное оформление. Таким образом «Путь» — это то, что видит разработчик в конфигураторе. А пользователь видит «Заголовок», когда нажимает «Изменить вариант» в отчете.

21.  L19. То, что написано в поле «Путь» будет использоваться для сопоставления нескольких наборов данных в объединении. Поэтому задавайте одинаковые пути на одно и то же поле, если используете несколько наборов данных и планируете их объединить.

22.  L19. К Товару можно создать виртуальный вложенный реквизит, например задав для реквизита «Качество» Путь = Товар.Качество. Тогда на вкладке «Настройка» СКД мы сможем обратиться к нему развернув (плюсом +) реквизит Товар и выбрав вложенное поле «Качество».

23.  L20. «Ограничение поля» — накладывает ограничения на само поле. «Ограничение реквизитов» — накладывает ограничения на вложенные реквизиты поля. Причем если нужно скрыть само поле (среди отборов, например) – обязательно должны стоять два этих флажка.

24.  L21. «Выражение представления» — это то, что будет выводиться в отчет. Например можно написать «Товар.Артикул + “ – “ + Товар.Наименование». В качестве выражения можно использовать все возможности языка компоновки данных (например, ВЫБОР…), можно обращаться к экспортным функциям общих модулей (с флагом компиляции «Сервер»). Но использовать функции общих модулей не рекомендуется, т.к. это приводит к обращению к БД при выводе каждой строки (Запрос в цикле). Лучше получать данные запросом и использовать либо встроенные функции языка компоновки данных, либо описывать вычисляемые поля.

25.  L22. «Выражение упорядочивания» – это нестандартная сортировка.

26.  L23. «Тип значения» используется, когда нужно ограничить возможные типы Составного поля. Например, Склад может быть складом или подразделением. Если задать тип = СправочникСсылка.Склады, то пользователю в 1С при установке отбора по полю Склад не будет выскакивать окно выбора типа данных (Склад, Подразделение).

27.  L23. «Доступные значения» — можно указывать возможные для выбора предопределенные значения

28.  L24. В параметрах редактирования можно задать Быстрый выбор = Истина. Тогда при отборе по этому полю не будет открываться форма выбора, а все значения появятся выпадающим списком.

29.  L25. В вычисляемых полях, к сожалению, нельзя обращаться к другим вычисляемым полям.

30.  L26. Ресурсы в СКД – это тоже что и Итоги в запросах.

31.  L27. В выражении Ресурса можно задавать произвольное выражение, а не только Сумма(Сумма) или Количество(Номенклатура). Например, можно описать такое выражение: Сумма(Количество)/Сумма(Сумма). Таким образом, можно использовать все возможности встроенного языка компоновки данных.

32.  L28. Одно и то же поле можно использовать в ресурсах несколько раз, только если на один ресурс рассчитываются Итоги по одним группировкам, а на другой – по другим группировкам. Например: Сумма(Количество) – по номенклатуре. Минимум(Количество) – по контрагенту.

33.  L28. Чтобы вывести по контрагенту долю проданных товаров по отношению к другим контрагентам, в процентах, необходимо воспользоваться функцией «Вычислить», добавив следующий ресурс: Поле: Количество. Выражение: «Сумма(Количество)/Вычислить(“Сумма(Количество)”, “ОбщийИтог”)*100». Рассчитывать по: Контрагент.

34.  L29. Чтобы в запросе проверить какое-либо значение на пустую ссылку, следует использовать примерно следующую конструкцию: ВЫБОР КОГДА Номенклатура = Значение(Справочник.Номенклатура.ПустаяСсылка) ТОГДА…

 

35.  L29. При обращении к виртуальным таблицам Остатков у поля обязательно должна быть заполнена Роль (например, НачОст). Если стоит флажок «Автозаполнение», роль установится автоматически.

36.  L30. При получении остатков из виртуальных таблиц, чтобы они отображались корректно, обязательно необходимо выбирать в запросе и поле ПериодСекунда. При этом в поле «Роль» компоновки данных, должна быть следующая нумерация периодов: Регистратор 1. ПериодСекунда 2. ПериодМесяц 3 (или иной период).

37.  L32. «Родитель» в «Роли» заполняем для поля «ВидНоменклатуры», когда оно является дочерним для поля Номенклатура (например). Иначе система выдает неверные остатки.

38.  L33. «Счет» в «Роли» — указываем путь к полю, в котором хранится вид счета, например Счет.Вид. Если вид счета явно не указать, то счет будет считаться активно-пассивным, а остатки будут определяться как: Положительные – Дт, Отрицательные – Кт. А должно быть по стороне Дт для активного счета, по стороне Кт для пассивного.

39.  L34. Роль «Остатки». Поле «Имя» — это имя группы остатков. Например группы «Количество», «Сумма» или «Валютная сумма». Следует задавать одинаковые имена группам остатков как для начального остатка так и конечного, т.е. парами.

40. L37. При получении остатков в запросе Обязательно должны присутствовать и начальный и конечный остаток, чтобы остатки рассчитались корректно. Выводить или не выводить один из остатков в самой настройке варианта отчета – не влияет на корректность остатков.

 

41.  L38. Неделя + Месяц (и боL9;льшие периодичности) будет давать неправильные остатки. Это особенность системы.

42.  L39. Еще одна особенность: Если из виртуальной таблицы нужно получать данные подчиненных реквизитов регистратора, нужно либо:

  1. — Регистратора добавить в группировки в настройках варианта

  2. — Получать реквизиты, подчиненные регистратору в запросе, а затем в выражении представления поля Регистратор, указывать например «Регистратор + “, ” + РегистраторКонтрагент»

  3. — Получать подчиненные реквизиты в запросе, а затем в поле компоновки данных для каждого из них прописать подчиненность полю Регистратор. Например Регистратор.КонтрагентСКД (СКД добавляем чтобы отличать это поле от простого поля Контрагент, которое мы получили в запросе).

43.  L41. Т.к. остатки формируются на начало какой-либо даты,

  1. 1. Нужно на вкладке «Компоновка данных» в конструкторе запроса для виртуальной таблицы установить параметры виртуальной таблицы Период = ДобавитьКДате(КонецПериода(&Период, ДЕНЬ), Секунда, 1)

  2. 2. Затем закрыть конструктор запроса и в тексте запроса убрать псевдоним (типа «Поле 2») в параметрах виртуальной таблицы.

  3. 3. Затем в Параметрах СКД установить для параметра «Период» состав даты: Дата.

  4. После чего на вкладке Настройки СКД установить для параметра Период флажок «Включать в пользовательские настройки»

44.  L42. Стандартный период сам приводит конечную дату ко времени 23:59:59

45.  L43. Если нужно получить несколько характеристик для каждой записи отчета, не следует делать связь с регистром сведений ЗначенияСвойствОбъектов (например). Получится огромное количество соединений. Лучше всего подключить механизм характеристик на вкладке «Характеристики» конструктора запроса. Тогда все характеристики будут добавлены в СКД как реквизиты, подчиненные основному реквизиту, например Номенклатуре. Что очень быстро и удобно.

46.  L44. Реквизит «ТипЗначения» у плана видов характеристик имеет специфичный тип «ОписаниеТипов» которого нет ни у одного другого объекта или реквизита конфигурации.

47.  L45. Чтобы установить используемый по умолчанию вариант отчета, нужно добавить в имя варианта «Основной» и отсортировать их стрелками. Такая вот странная сортировка вариантов.

48.  L51. В отчете не обязательно должны быть детальные записи. Например, в самом отчете выбираем ресурс «Количество» и добавляем одну группировку по номенклатуре. Тогда мы увидим сгруппированную номенклатуру, возле которой (а не под которой) будет указано количество. Таким образом, не обязательно группировать записи в самом запросе.

49.  L52. Иерархия по номенклатуре включает отображение групп, в которые входит номенклатура. Причем группы можно будет сворачивать так же, как и другие уровни группировок.

50.  L54. Если нужно получать остатки по дням, то нужно использовать виртуальную таблицу ОстаткиИОбороты, ибо виртуальная таблица Остатки показывает остатки только на выбранную дату.

51. L54. Чтобы остатки из виртуальной таблицы ОстаткиИОбороты рассчитались верно, обязательно в запросе нужно выбрать и НачальныйОстаток и КонечныйОстаток. А уже затем в самом отчете отображать только поле с КонечнымОстатком или только с НачальнымОстатком.

 

52.  L54. Чтобы отображать период с дополнением по дням, месяцам и другим периодам, нужно в настройках СКД добавить группировку по полю Период и указать ТипДополнения = День (или другой). А в начальной и конечной дате периода указать поле компоновки данных «НачалоПериода» и «КонецПериода» соответственно.

53.  L54. Если мы укажем в начальной и конечной дате периода тип данных «ТипДополненияПериодаКомпоновкиДанных», затем укажем например «Месяц», затем при формировании отчета зададим период с 15 мая по 20 июля, то система выведет дополнение только для тех периодов, где были записи с остатками. Т.е. если «Стол кухонный» стал фигурировать в остатках только в июне, 31 запись за май (31 день в месяце) не попадет в отчет вообще, ибо за тот период не было ни одной записи об остатках.

54.  L56. Пользователи могут создать собственные поля через «Изменить вариант» – вкладка «Пользовательские поля». Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки.

  1. — «Поле-выражение» можно писать с использованием всех возможностей языка компоновки данных

  2. — «Поле-выбор» выводит определенные данные при определенном условии. Например, если элемент предопределенный, то выводим строку «Эксклюзивный», иначе – «Стандартный».

 

55.  L58. Отбор в СКД можно устанавливать на каждую группировку отдельно. Таким образом, можно формировать отчет с одним набором данных, но с множеством различных группировок с различными отборами.

56.  L60. Отбор по ресурсу на уровне группировки применяется, когда нужно вывести всю номенклатуру, где общий итог по количество (например) больше 100. Таким образом, отбор на уровне отчета это отбор для детальных записей, а отбор на уровне конкретной группировки – это отбор для итога по этой группе.

57.  L61. Если в выбранные поля включено «Автополе» и еще вдобавок поле «Номенклатура», а в «Автополе» итак содержится Номенклатура, то СКД не будет добавлять второе поле «Номенклатура». «Автополе» — исключает дублирование.

58.  L61. Если добавить Автополе в диаграмму – она возьмет ТОЛЬКО первый ресурс, т.к. диаграмма должна и может содержать только один ресурс. Поэтому добавлять необходимые ресурсы в диаграмму лучше вручную.

59.  L62. Условное оформление может применяться и для Итогов по ресурсам. Просто нужно задавать условное оформление либо на уровне отчета, либо на группировке, стоящей выше детальных записей.

60.  L63. В условном оформлении диаграммы используются только 2 параметра: Цвет в диаграмме и Формат.

61.  L63. В круговой диаграмме указываются только серии. Точки не указываются.

62. L64. Значение «Авто» на вкладке Настройки – Другие настройки для Заголовка и Отбора означает «выводить отбор (заголовок), если он указан. Если не указан – не выводить». Поэтому рекомендуется оставлять значение «Авто».

 

63.  L65. Для группировок можно задавать вертикальный «ТипМакета» на вкладке Настройки – Другие настройки. Тем самым группировки будут транспонированы.

64.  L65. «Расположение итогов» – влияет на расположение итогов по группе. Общие итоги настраиваются в соответствующем параметре «Расположение общих итогов».

65.  L65. Если поставить «Расположение группировок» = Конец, тогда в отчете будет идти сначала номенклатура, а под ней Контрагент. При сворачивании группировки, вся вышестоящая номенклатура будет сворачиваться в нижнюю группировку. Поэтому почти никогда не стоит использовать такое значение этого параметра.

66.  L65. «Расположение полей группировок = Отдельно и только в итогах» следует использовать, когда нужно чтобы Номенклатура шла не под группировкой Контрагент, а в отдельном поле. Это требуется, например, в задаче 1.3 экзамена 1С: Специалист по платформе 8.2

67.  L65. «Расположение ресурсов» следует использовать, если в отчете более одного ресурса. Их можно вывести горизонтально или вертикально.

68.  L66. «Расположение реквизитов» настраивает отображение подчиненных реквизитов. Например «Качество» у «Номенклатуры» и т.д.

69.  L66. «В специальной позиции» означает крайнее правое расположение, но перед всеми ресурсами.

70.  L68. Отчеты можно открывать с дополнительным отбором. Добавляем команду, подчиненную справочнику или документу и видим закомментированный код открытия отчета с отбором.

71.  L69. Чтобы открыть определенный вариант отчета программно, необходимо в переменную ПараметрыФормы дописать «Ключ варианта»:

  1. ПараметрыФормы = Новый Структура(“СформироватьПриОткрытии, Отбор, КлючВарианта”, Истина, Отбор, “Вариант1”);

72.  L70. Чтобы сделать фиксированные столбцы сверху или слева, нужно в модуле объекта отчета в событии «ПриКомпоновкеРезультата» написать:

  1. ДокументРезультат.ФиксацияСверху = 1;

  2. Справку по остальным методам можно найти в синтаксис помощнике по слову «ТабличныйДокумент».

73.  У отчета в модуле объекта можно обращаться напрямую к переменным:

  1. КомпоновщикНастроек – все, что есть на вкладке Настройки в СКД.

  2. СхемаКомпоновкиДанных – все, что есть на остальных вкладках СКД.

74.  L71. Программное создание отчета на СКД.

75.  L71. Можно написать функцию, которая возвращает табличный документ. А затем вызвать ее следующим образом: ПолучитьТабличныйДокумент().Показать();

  1. Таким образом, мы можем через точку указывать вызов любого метода, который доступен для возвращаемого значения (в данном случае – для табличного документа).

76.  L72. Программно передать параметр в компоновку данных можно следующим образом:

  1. Схема = Отчеты.ПрайсЛист.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

  2. Настройки = Схема.НастройкиПоУмолчанию;

  3. Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

  4. Если Параметр <> Неопределено Тогда

  5.        Параметр.Значение = ТекущаяДата();

  6.        Параметр.Использование = Истина;

  7. КонецЕсли;

77.  L73. Отчет на СКД можно строить на основе внешних объектов. При этом на компоновке данных не работает автоматическое заполнение, поэтому его нужно обязательно заполнять вручную. Можно, например, взять информацию из другой базы программным образом, заполнить ею таблицу значений, а затем на основе этой таблицы значений строить отчет. Таким образом, можно объединять несколько информационных систем, даже если это не 1С. Внешний набор данных передается в модуле объекта отчета в событии «ПриКомпоновкиРезультата» (обязательно пишем СтандартнаяОбработка = Ложь);

78.  L74. Создание отчета на СКД по журналу регистрации действий пользователей

79.  L75-L77. Программное создание настроек отчета СКД.

80.  L78. Программное создание отбора, условного оформления отчета СКД.

81.  L79-L80. Программное создание схемы компоновки данных с нуля.

82.  L81-L82. Программная фиксация заголовка отчета. Ошибки при программной фиксации сверху, если пользователь установил отбор на отчет.

83.  L83. Как всегда открывать определенную (не основную) схему компоновки данных.

84.  L84. Работа с набором данных «Объединение»

85.  L85. Соединять наборы данных между собой можно на вкладке «Связи наборов данных». В нем используется левое внешнее соединение.

86.  L85. Преимущество соединения на уровне СКД – соединение запросов и объектов. Но нужно помнить, что запрос выполняется на стороне сервера СУБД, а СКД выполняется на стороне сервера приложений.

87.  L86. Устранение дублей строк при получении отчета по закупкам и продажам. Если нужно получить итоги по закупкам и продажам, устанавливая левое соединение по номенклатуре, обязательно нужно сгруппировать суммой итоги по продажам и итоги по закупкам. Представим что у нас в таблице Закупки была одна строчка «Хлеб 50 шт.», а в таблице Продажи две и более строк на 10 шт, 5 шт и т.д. При левом соединении у нас продублируются закупки ровно столько раз, сколько было продаж. Следовательно, нужно делать суммовую группировку.

88.  L87. Если пользователю понадобится отчет, в котором нужно выводить суммы продаж и закупок, а под ними вложенные детальные записи по документам, нужно делать группировку по номенклатуре НЕ в запросе, а на вкладке «Связи» компоновки данных. Тогда можно будет получить и итоговые суммы и детальные записи вплоть до документов продаж, без косяков с суммами по количеству.

89.  L88. Если нас не интересует группировка по количественным показателям, а нужно, например, получить только номенклатуру и дату из табличной части документа, то лучше поставить флажок «Без повторяющихся» на вкладке «Дополнительно».

90.  L88. В запросе можно выводить даже сам получаемый параметр. Для этого создаем новое поле и пишем &Период (или другое поле-параметр).

91.  L88. Если нужно соединить табличную часть документа и регистр накопления, то можно воспользоваться полями «Параметр» на вкладке «Связи наборов данных» в СКД. Номенклатура будет попадать в параметр &Номенклатура, затем передаваться в виртуальную таблицу остатков регистра накопления, а затем будут выводиться данные согласно этой связи.

92.  L89. Полное соединение в запросе. Как работают связи наборов данных

93.  L90. В отчете нельзя использовать поля из разных не связанных наборов данных, в одной группировке. В разных группировках – можно.

94.  L91-L94. Организация произвольной иерархии документов, например. Для этого нужен иерархический справочник «Уровни документов» (с полем «Родитель») и у всех документов нужно добавить поле «Уровень» со ссылкой на этот справочник. После чего создается отчет на СКД с двумя связями наборов данных: 1. Получаем иерархию. 2. Получаем сами документы. Тогда в отчете мы сможем видеть многоуровневую вложенность.

95.  L95. На вкладке «Наборы данных» поле «Проверка иерархии» используется для организации отбора по уровню иерархии.

96.  L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» — то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка.

97.  L96. Флажок «Обязательная связь» на вкладке «Связи наборов данных» означает, что связь будет использоваться, если на вкладке «Настройки» выбрано хотя бы одно поле приемника. Если флажок снят – то связь будет использоваться, если в «Настройках» выбрано поле выражения источника.

98.  L96-L97. Чтобы прописать дополнительное условие связи на вкладке «Связи наборов данных», можно использовать поле «Условие связи».

99.  L96-L97. В поле «Начальное значение связи» на вкладке «Связи наборов данных» указывается элемент, начиная с которого нужно начать рекурсивно разворачивать набор данных.

100.      L97. Эффективнее получить все необходимые поля в запросе, а в СКД просто их использовать. Чем получать несколько полей в запросе, а затем по ссылкам обращаться к их подчиненным полям через СКД.

101.      L98-L100. Вложенные схемы. Связь схем компоновки данных. Кнопка «Новый вложенный отчет» при щелчке на группировку. С помощью этих вложенных схем можно в типовых конфигурациях очень быстро разрабатывать новые отчеты, базируясь на существующих. Установка отбора по периоду на вложенной схеме

102.       L99. На вкладке «Параметры» флажок «Включать в список доступных полей» означает возможность программного отбора по этому полю.

103.      L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»

104.      L102. Создание макетов отчета (произвольное расположение элементов). Создание макетов оформления (шрифт, цветовая гамма).

105.      L103. Создание макета оформления компоновки данных. Создается макет оформления в «Общие макеты» в дереве метаданных.

106.      L103. Измененные элементы макета подсвечиваются жирным шрифтом.

107.      L103. Макет оформления можно создавать на основании предопределенного макета (Основной, Море, Арктика…). Для этого в созданном макете нужно нажать кнопку «Стандартный макет…» внизу слева.

108.      L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля».

109.      L104. Создание произвольного макета компоновки данных.

110.      L104. Не обязательно рисовать макет всего отчета. Можно добавить в макет только поле группировки. Тогда будут оформляться только макеты группировки. А остальные поля будут оформлены в соответствии с выбранным макетом оформления.

111.       L105. Запомнить что такое «Заголовок группировки», «Заголовок иерархии» и т.п. для произвольного макета тяжеловато. Чтобы было проще – можно создать в «Общие макеты» произвольный макет оформления и, открыв его, станет визуально понятно у каких группировки какие названия.

112.      L106. Если вы проводите мышью над полем и появляется значок с крестом и лупой, это означает что по этому полю возможна расшифровка.

113.      L106. Чтобы заработала расшифровка, нужно в произвольном макете для ячейки с параметром указать свойство «Параметр расшифровки». А затем задать выражение для этого параметра в параметрах макета (табличка слева, на той же вкладке «Макеты»). Причем если мы выбираем просто поле для расшифровки (например «Номенклатура»), то обязательно нужно написать и выражение (то же «Номенклатура»).

114.      L106. Свойство «ИспользованиеРасшифровки» влияет на то, как будет открываться расшифровка – при щелчке на ячейку, на любое место в строке, или без обработки.

115.       L107-L110. Можно сделать произвольную обработку события двойного щелчка по ячейке. Для этого необходимо создать свою форму отчета СКД и для табличного поля «Результат» задать событие «ОбработкаРасшифровки».

 

www.buravov.pro

69 Comments

  1. Flashill

    Посмотрел 5,5 часовой курс по системе компоновки данных.

    Нашел невероятное количество не только необходимого, но и примеры не очевидного поведения СКД.

    У многих не хватает времени и терпения досмотреть курс до конца.

    Прочитав 115 полезностей, вы сможете понять в каком уроке освещен интересующий вас вопрос и быстро открыть его, чтобы посмотреть видео.

    Перейти к публикации

    Reply
  2. mtv:)

    (0) Хорошая статья. Полезеная шпаргалка по курсу.

    Заметил опечатку в пункте 76, в строке

    Схема = Отчеты.ПрайсЛист.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»;

    вконце строки не хватет закрывающей скобки.

    Reply
  3. Flashill

    (1) mtv:), спасибо! Еще несколько опечаток наберу и исправлю статью.

    Reply
  4. pwn

    Полезная «выжимка». Автору спасибо. Сам курс в свое время слушал на плеере, коротая время в метро. Сегодня с удовольствием прочитал данную статью.

    Reply
  5. KliMich

    Отличные «полезности» к курсу Гилева! Автору Респект!

    Reply
  6. fnv

    Автор, спасибо!

    Reply
  7. Sybr

    Я то по названию и простоте душевной подумал, что будет аж 115 полезностей о которых не рассказали в бесплатном курсе.

    Reply
  8. gavrikprog

    нечитабельно

    Reply
  9. Flashill

    (3) pwn, (4) KliMich, (5) fnv, всегда пожалуйста. Рад что пригодилось 🙂

    (6) Sybr, здесь есть и то о чем рассказывали в бесплатном курсе и то чего не рассказывали (мои идеи по поводу применения тех или иных механизмов СКД)

    (7) gavrikprog, не могли бы вы дать более развернутый конструктивный комментарий? Что именно исправить? Я исправлю.

    Reply
  10. gavrikprog

    шрифт уменьшить примерно как тут http://infostart.ru/public/124145/

    Расставить отступы.

    Reply
  11. Alraune

    Я бы не стала уменьшать шрифт, если он немного крупнее, читать легче.

    __

    Хотя сам шрифт, может, стоит изменить, при распечатке «версии для печати» буквы кое-где «наехали» друг на друга

    Reply
  12. echo77

    Да, шрифт лучше уменьшить — пусть будет обычный. Если кому надо увеличить — покрутит колесо или изменит размер сам.

    Опечатка в анонсе:

    нет хватает времени

    Можете прикрепить оглавление к курсу, сделанное на 1С:

    http://depositfiles.com/files/6gw21czze

    Reply
  13. Flashill

    (1) mtv:), исправил (добавил скобку).

    (9) gavrikprog, (10) Alraune, (11) echo77, шрифт исправил.

    (11) echo77, спасибо за оглавление! Прикрепил его к статье.

    Reply
  14. vlengin

    Начал читать, и бросил. Небезопасное чтиво: весь материал пропущен через призму собственного восприятия, иногда далекого от первоисточника.

    Как пример:

    У Вас:

    L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система.

    У Гилева:

    L10. Отборы в пакетном запросе.

    Финальная фраза урока: Т.е. отбор будет работать на все таблицы пакеты запроса, где встречается соответствующее поле.

    Reply
  15. Flashill

    (13) vlengin, оригинал я приложил. Статья так и называется «115 полезностей от Буравова Андрея«. Так что естественно почти весь материал пропущен через призму моего восприятия.

    Я не зря написал к каждому пункту номер урока вида L10, который вы можете самостоятельно посмотреть и выяснить первоначальный смысл Гилева.

    Вот если я исковеркал смысл, укажите где именно и как будет правильно. Я исправлю.

    Касательно L10 — что я написал не верно?

    Reply
  16. vlengin

    (14) Flashill,

    То что если установить отбор «по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы.» — это очевидно и это, конечно, верно.

    Где хоть слово о пакетых запросах, и особенности отборов в них. В примере урока установка отбора на параметры виртуальных таблиц — это лишь частный случай отбора полей таблиц пакетного запроса.

    Суть урока — «Отборы в пакетном запросе», и причем здесь параметры виртуальных таблиц.

    Поэтому статью надо было назвать не 155 «полезностей», а «СКД. Как его понял я».

    Reply
  17. Flashill

    (15) vlengin, пожалуйста изложите текст, который вы хотите вставить вместо этого пункта?

    Reply
  18. vlengin

    (16) Flashill,

    а я его (текст) уже писал, Вы и не заметили. Цитируем Гилева:

    «Отбор будет работать на все таблицы пакеты запроса, где встречается соответствующее поле».

    Reply
  19. echo77

    в (14) дельное замечание — если используете отбор в настройках СКД и СКД выполняет отбор в запросе пакета — не стоит удивляться непредсказуемым результатам

    Reply
  20. Alexey55

    вчера делал отчет, и как раз была такая ситуация с отбором..часа 3 не мог понять как так получается

    сначала думал в запросе дело.. потом запрос из отчета на скд скопировал в консоль отчетов и получил нужный результат, отличающийся от результата отчета на СКД

    а так автору спасибо за труд!

    Reply
  21. al_zzz

    Спасибо, Андрей!

    Сам сейчас обучаюсь по видеокурсу и очень нехватало мне Вашего оглавления — даже сам начал писать. Правда, на листочке. 🙂

    Reply
  22. scream

    фотка зачет

    Reply
  23. Clod

    Сей труд полезен прежде всего как оглавление. Странно, что Гилев не сделал этого.

    Reply
  24. electronik

    Заметки интересные и что самое главное актуальные. Узнал много интересного и полезного. Автору Респект и Уважение ну конечно заслуженое 5+

    Reply
  25. vlengin

    (23) Clod,

    У Гилева, есть и подробное оглавление и тезисные слайды к урокам, все зависит от источника получения курсов.

    Reply
  26. zspr

    Полезная статья. Автору спасибо.

    Reply
  27. SERJ_1CC

    А я только благодаря этой статье узнал о курсе. Большое спасибо, обязательно воспользуюсь и курсом и вашей статьей! Как раз не хватает полноценных знаний по СКД!!!

    Reply
  28. Gesperid

    По 3-му пункту, ткните где в UCR вкладка «Макет для табличного поля документа»?

    Reply
  29. vitn

    Автору огромный респект! Молодец!

    Reply
  30. Sunhare

    Спасибо, удобная штука.

    Reply
  31. Flashill

    (19) Alexey55, (20) artbear, (21) al_zzz, (22) scream, (23) Clod, (24) electronik, (26) zspr, (27) SERJ_1CC, (29) vitn, (30) Sunhare,

    благодарю, коллеги! Приятно осознавать оказанную помощь.

    (28) Gesperid, есть разные консоли отчетов. Попробуйте другую. Не во всех есть эта вкладка.

    Reply
  32. Svetlana_K

    Спасибо огромное. Очень интересно.

    Reply
  33. w1ncent

    Спасибо за полезную инфу.

    Reply
  34. a1ex4ndr

    (31) Flashill, а какую консоль отчетов использовали Вы?

    Reply
  35. Flashill

    (34) a1ex4ndr, если не ошибаюсь, с диска ИТС.

    http://infostart.ru/public/57704/ — довольно интересная консоль отчетов.

    Reply
  36. e.kogan

    » Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки.» — это с каких пор?

    «96. L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» — то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка.» — тот же вопрос. ПКМ — «Выбрать», вот вам и группа.

    «103. L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»» — а при чём тут СКД?

    «108. L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля».» — в последних версиях платформы есть такая штука, как настройка «Авто позиция ресурсов» на «Других натсройках».

    Reply
  37. rikony

    много от себя имхо

    Reply
  38. phosphorror

    Отличная статья. Побольше бы таких. Жму автору его могучую гениальную и интеллектуальную руку. Побольше бы таких вдохновенных статей столь же глубоких и всесторонне-охватывающих проблемную область. Эта колоссальное по своему масштабу и инеллектуальному размаху творение обогатило сокровищницу знаний системы 1с и явило собой венец творения в данной сфере научной мысли.

    Reply
  39. Gandalf Белый

    Большое спасибо! Очень позновательно и интересно!!! Узнал много нового!

    Буду ждать еще подобных статей!

    Reply
  40. bar_s

    Автор, спасибо, отличная статья. Из нее узнал про курс, надо ознакомится и с ним.

    Reply
  41. Flashill

    (36) e.kogan,

    » Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки.» — это с каких пор? — возможно ошибся.

    «96. L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» — то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка.» — тот же вопрос. ПКМ — «Выбрать», вот вам и группа. — Имеется ввиду при отборе «В группе», иметь возможность выбирать элементы.

    «103. L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»» — а при чём тут СКД? — Да, формат можно создавать не только в СКД.

    «108. L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля».» — в последних версиях платформы есть такая штука, как настройка «Авто позиция ресурсов» на «Других настройках». — Здорово, проверил. Если поставить «Авто позиция ресурсов» = «Не использовать», то ресурсы будут располагаться в том порядке, в котором их задашь среди «Выбранных полей». Спасибо!

    (37) rikony, пожалуйста конкретнее. Что хотите исправить?

    (38) phosphorror, огромное спасибо за супер-мега-гипербализованное почтение 🙂

    (39) maksim.s, (40) bar_s, всегда пожалуйста! 🙂

    Reply
  42. rikony

    Буравов Андрей

    наши взгляды просто отличаются 🙂

    Reply
  43. e.kogan

    (41) Всегда пожалуйста 🙂

    Reply
  44. opiumdx

    Спасибо за статью, конструктивно и понятно. Нашел для себя интересные и полезные вещи.

    Reply
  45. sustav86

    Спасибо больщое, очень помогла как раз нашел решения проблемы, так держать…

    Reply
  46. eli1984

    Статья полезная, но когда долго читаешь, действительно надоедает, что уже последующее пункты не понимаешь о чем речь.

    А можно в более читаемый вид привести статью? Чтобы интересно было читать.

    Reply
  47. aspirator23

    Посмотреть курс, более правильно. И несмотря, на критику, спасибо автору. Меня статья подвигла на то чтобы курс пересмотреть. Курс был, времени посмотреть не было. Если бы не статья, может бы и не собрался. Посмотрел курс — очень полезен оказался. Так что плюс за популяризацию знаний среди населения 1с.

    Reply
  48. Psylocibine

    Большое спасибо! Очень позновательно и интересно, Узнал много нового!

    Буду ждать еще подобных статей!

    Reply
  49. lyashuk2012

    Так держать!!! Автору респект.

    Reply
  50. alekseies

    Полезная штука к курсу Гилева, некогда копаться, а тут коротко и ясно …..

    Reply
  51. alcoholic

    спасибо, очень интересно

    Reply
  52. testmode

    Полезная статья Всем советую.

    Reply
  53. Flashill

    (44) opiumdx, (45) sustav86, (47) aspirator23, (48) Psylocibine, (49) lyashuk2012, (50) alekseies, (51) alcoholic, (52) testmode,

    всегда пожалуйста, дорогие! 🙂

    (46) eli1984, пожалуйста напишите пару примеров вашего видения улучшения статьи?

    Reply
  54. _apelsin4ik

    Отличная выжимка основных идей курса. В принципе после этого весь 5.5 часовой курс можно не смотреть, а только основные моменты, которые вызвали вопросы) Автор молодец, очень нужная работа.

    Reply
  55. aimerlive

    Спасибо за статью, Все по делу.

    Reply
  56. maxim305

    Спасибо, полезный материал для изучения и повышения своей грамотности!

    Reply
  57. ksvd

    Сейчас, с такими темпами появления новой информации, чтобы успевать все изучить, а не просто бегло просмотреть, чтобы держаться на уровне — такие статьи, как эта, или конспекты, или курсы как например видеокурс Гилева Быстрый старт очень нужны. Надеюсь их будет больше. Спасибо

    Reply
  58. NPMar

    Спасибо, Андрей! Ну просто супер! Послушать весь курс сплошняком, конечно не плохо. Но потом найти нужное, просто невозможно. Очень Вам благодарна!

    Reply
  59. Flashill

    (54) _apelsin4ik, (55) aimerlive, (56) maxim305, (57) ksvd, очень рад что вам помогает 🙂

    (58) NPMar, рекомендую делать такие конспекты на каждый курс который вы проходите — хоть онлайн, хоть офлайн. Возможно будет поначалу тяжело. Но главная цель — узнать из курса что то новое и записать это для себя.

    Reply
  60. NPMar

    Да, Андрей, я посмотрела в конфигураторе, как Вы это делаете. Даже для меня, новичка в восьмерке, все понятно. Я могу и другие курсы так сделать и не тлько курсы. Еще раз, очень благодарю. Мне это очень пригодится!

    Reply
  61. Alex7774

    Полезная статья!

    Reply
  62. fnv

    Спасибо! узнала, что есть бесплатный курс:)))

    Reply
  63. wunderland

    Снимаю шляпу. Создать учебный курс довольно сложно. А написать на него коментарии, возможно, еще сложнее…

    Reply
  64. Alexey26
    Подробное описание дополнительных функций СКД можно найти в справке F1 – Встроенный язык – Общие объекты – Система компоновки данных – Язык выражений системы компоновки данных – Функции языка выражений системы компоновки данных.

    Кому-нибудь удалось найти в справке данный раздел?

    Reply
  65. Flashill

    (60) NPMar, (61) Alex7774, (62) fnv, (63) wunderland, спасибо за благодарности!

    (64) Alexey26, похоже в новой версии конфигурации переместили этот раздел, теперь он здесь:

    Reply
  66. Alexey26

    (65) Андрей Буравов,

    Alexey26, похоже в новой версии конфигурации переместили этот раздел, теперь он здесь:

    спасибо Вам за оперативный и наглядный ответ со скриншотом и за саму публикацию тоже, разумеется! Оказывается, я вообще не там искал этот раздел… Я думал найти его в справке в Конфигураторе)

    Reply
  67. Flashill

    (66) Alexey26, как раз там (в справке в Конфигураторе) этот раздел и находится 🙂

    Reply
  68. servs

    Краткий конспект — правильный подход, не зря его применяют в учебных заведениях.

    Призываю автора продолжать в том же духе, не обязательно по видео-курсам. Можно просто заметки на какую-либо тему в 1С.

    Была идея сделать что-то подобное именно для этого видео-курса, но потом нашел эту статью. Так что +.

    Теперь по содержанию:

    1. «L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система

    Убери эту фразу потому что в ней мало полезности (можно сказать что это минус СКД см. пост (19)).

    2. Отреагируй на пост (20), там дельное замечание. Прояви уважение к Гилеву и его команде. Ему спасибо за курс в первую очередь.

    Reply
  69. akor77

    То, что нужно! Благодарю!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *