Одна из самых важных областей бизнес-софта – это отчетность. От того, насколько легко настроить под меняющиеся потребности бизнеса (и законодательства) существующий отчет или сделать новый, может зависеть (причем не в переносном смысле!) судьба бизнеса, будь то отчет для налоговой инспекции или диаграмма зависимости спроса на товары от сезона и других факторов. Мощная и гибкая система отчетности, позволяющая легко извлечь из системы нужные данные, представить их в доступном для понимания виде, позволяющая конечному пользователю перенастроить стандартный отчет так, чтобы увидеть данные в новом свете – это идеал, к которому должна стремиться каждая бизнес-система.

В платформе «1С:Предприятие» за построение отчётов отвечает механизм под названием «Система компоновки данных» (сокращенно СКД). В этой статье мы постараемся дать краткое описание идеи и архитектуры механизма СКД и его возможностей.

image

СКД – это механизм, основанный на декларативном описании отчетов. СКД предназначен для построения отчетов и для вывода информации, имеющей сложную структуру. Кстати, помимо разработки отчетов механизм СКД также используется в «1С:Предприятии» в динамическом списке, средстве показа списочной информации с богатой функциональностью (показ плоских и иерархических списков, условное оформление строк, группировки и т.п.).

Немного истории


В самой первой версии платформы «1С:Предприятие 8», версии 8.0, отчеты делались так:

  1. Писался один или несколько запросов на языке запросов 1С (SQL-подобный язык, подробнее о нем ниже).
  2. Писался код, который переносил результаты выполненных запросов в табличный документ или в диаграмму. Код также мог делать работу, которую в запросе сделать невозможно – например, вычислял значения, используя встроенный язык 1С.

Подход прямолинейный, но не самый удобный – визуальных настроек минимум, все приходится программировать «врукопашную». А один из козырей на тот момент совсем новой платформы «1С:Предприятие 8» — это минимизация в прикладном решении объема кода, который нужно писать вручную, в частности, за счет визуального проектирования. Логично было бы пойти этим же путем и в механизме построения отчетов. Что и было сделано путем разработки нового механизма — Системы Компоновки Данных.

Одной из идей, легших в основу СКД, была гибкость и настраиваемость отчетов, причем доступная как разработчику, так и конечному пользователю. В идеале хотелось бы дать доступ конечному пользователю к тому же набору инструментов для дизайна отчета, что и разработчику. Логично было бы сделать единый набор инструментов, доступный всем. Ну а раз инструменты предполагают участие конечного пользователя – значит, нужно использование программирования в них убрать до минимума (лучше всего – устранить совсем), и по максимуму использовать визуальные настройки.

Постановка задачи


Задача перед командой разработки стояла такая – сделать систему создания отчетов, основанную не на алгоритмическом (т.е. через написание кода), а на декларативном подходе к созданию отчетов. И мы считаем, что задачу успешно решили. По нашему опыту, около 80% требуемой отчетности может быть реализована с помощью СКД без единой строчки кода (за исключением написания формул вычисляемых полей), по большей части — через визуальные настройки.
Разработка первой версии СКД заняла около 5 человеко-лет.

Два языка


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

Язык запросов


Язык запросов основан на SQL и легко осваивается знающими SQL. Пример запроса:
image

Легко видеть аналоги стандартных для SQL-запроса секций — SELECT, FROM, GROUP BY, ORDER BY.

При этом язык запросов содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке прикладных решений:

  • Обращение к полям через точку. Если поля какой-либо таблицы имеют ссылочный тип (хранят ссылки на объекты другой таблицы), разработчик может в тексте запроса ссылаться на них через ".", при этом количество уровней вложенности таких ссылок система не ограничивает (например, ЗаказКлиента.Соглашение.Организация.Телефон).
  • Многомерное и многоуровневое формирование итогов. Итоги и подитоги формируются с учетом группировки и иерархии, обход уровней может выполняться в произвольном порядке с подведением подитогов, обеспечивается корректное построение итогов по временным измерениям.
  • Поддержка виртуальных таблиц. Виртуальные таблицы, предоставляемые системой, позволяют получить практически готовые данные для большинства прикладных задач без необходимости составления сложных запросов. Так, виртуальная таблица может предоставить данные по остаткам товаров в разрезе периодов на какой-то момент времени. При этом виртуальные таблицы максимально используют хранимую информацию, например, ранее рассчитанные итоги и т.д.
  • Временные таблицы. Язык запросов позволяет использовать в запросах временные таблицы. С их помощью можно повысить производительность запросов, в некоторых случаях снизить количество блокировок и сделать текст запроса более легким для восприятия.
  • Пакетные запросы. Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами — таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных точкой с запятой (";"). Запросы в пакете исполняются один за другим. Результатом выполнения пакетного запроса, в зависимости от используемого метода, будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.
  • Получение представлений ссылочных полей. Каждая объектная таблица (в которой хранится справочник или документ) имеет виртуальное поле — «Представление». Это поле содержит текстовое представление объекта и облегчает работу создателя отчетов. Так, для документа это поле содержит всю ключевую информацию — название типа документа, его номер и дату (например, «Продажа 000000003 от 06.07.2017 17:49:14»), избавляя разработчика от написания вычисляемого поля.
  • и др.

Механизм запросов автоматически модифицирует запрос с учетом ролей, к которым принадлежит пользователь, от имени которого выполняется запрос (т.е. пользователь увидит только те данные, которые имеет право видеть) и функциональных опций (т.е. в соответствии с настроенной в прикладном решении функциональностью).

Есть также специальные расширения языка запросов для СКД. Расширение осуществляется при помощи специальных синтаксических инструкций, заключаемых в фигурные скобки и помещаемых непосредственно в текст запроса. С помощью расширений разработчик определяет, какие операции конечный пользователь сможет проводить, настраивая отчет.

Например:

  • ВЫБРАТЬ. В этом предложении описываются поля, которые пользователь сможет выбирать для вывода. После данного ключевого слова через запятую перечисляются псевдонимы полей из основного списка выборки запроса, которые будут доступными для настройки. Пример: {ВЫБРАТЬ Номенклатура, Склад}
  • ГДЕ. Описываются поля, на которые пользователь сможет накладывать отбор. В данном предложении используются поля таблиц. Использование псевдонимов полей списка выборки недопустимо. Каждая часть объединения может содержать собственный элемент ГДЕ. Примеры: {ГДЕ Номенклатура.*, Склад }, {ГДЕ Документ.Дата >= &ДатаНачала, Документ.Дата <= &ДатаКонца}
  • и др.

Пример использования расширений:
image

Язык выражений компоновки данных


Язык выражений компоновки данных предназначен для записи выражений, используемых, в частности, для описания выражений пользовательских полей. СКД позволяет определять в отчете пользовательские поля, используя либо собственные выражения, либо наборы вариантов с условиями их выбора (аналог CASE в SQL). Пользовательские поля являются аналогом вычисляемых полей. Они могут задаваться как в конфигураторе, так и в режиме «1С:Предприятие», но в выражениях пользовательских полей нельзя использовать функции общих модулей. Поэтому пользовательские поля предназначены скорее для пользователя, чем для разработчика.

Пример:
image

Процесс создания отчета на СКД


При создании отчета нам нужно создать макет, определяющий, как данные будут отображаться в отчете. Можно создать макет, базирующийся на схеме компоновки данных. Схема компоновки данных описывает суть данных, которые предоставляются отчету (откуда получать данные и как можно управлять их компоновкой). Схема компоновки данных представляет собой базу, на основе которой могут быть сформированы всевозможные отчеты. Схема компоновки данных может содержать:

  • текст запроса с инструкциями системы компоновки данных;
  • описание нескольких наборов данных;
  • подробное описание доступных полей;
  • описание связей между несколькими наборами данных;
  • описание параметров получения данных;
  • описание макетов полей и группировок;
  • и др.


image

Например, можно в качестве набора данных добавить в схему компоновки данных запрос, и вызвать конструктор запроса, позволяющий в графическом виде составить запрос произвольной сложности:

image

Итогом запуска конструктора запросов будет текст запроса (на языке запросов «1С:Предприятия»). Этот текст можно при необходимости скорректировать вручную:

image

Наборов данных в схеме компоновки данных может быть несколько, наборы данных могут быть связаны в макете произвольным образом, могут быть добавлены вычисляемые поля, заданы параметры отчета и т.п. Стоит упомянуть интересную особенность работы механизма запросов в 1С:Предприятии. Запросы в конечном итоге транслируются в диалект SQL, специфичный для СУБД, с которой непосредственно работает приложение. Мы вообще стараемся задействовать возможности серверов СУБД по максимуму (нас ограничивает то, что мы используем только те возможности, которые есть одновременно во всех поддерживаемых платформой «1С:Предприятие» СУБД – MS SQL, Oracle, IBM DB2, PostgreSQL). Таким образом, на уровне запроса в вычисляемых полях мы можем использовать только те функции, которые транслируются в SQL.

А вот на уровне схемы компоновки данных мы уже можем добавлять пользовательские поля и использовать в них функции на встроенном языке разработки 1С (в том числе и написанные нами), что сильно расширяет возможности отчетов. Технически это выглядит так – всё, что можно транслировать в SQL, транслируется в SQL, запрос выполняется на уровне СУБД, результаты запроса помещаются в память сервера приложений 1С и СКД вычисляет для каждой записи значения вычисляемых полей, чьи формулы написаны на языке 1С.

image
Добавление пользовательских полей

В отчет можно добавить произвольное количество таблиц и диаграмм:

image
Дизайнер отчетов

image
Отчет во время выполнения

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

Коротко описать процесс построения и формирования отчета можно так:

  • Разработчик в design time с помощью дизайнера (или в runtime с помощью кода) определяет схему компоновки данных:
    • Текст запроса/запросов
    • Описание вычисляемых полей
    • Связи между запросами (если их несколько)
    • Параметры отчета
    • Настройки по умолчанию
    • И т.д.
  • Вышеописанные настройки сохраняются в макете
  • Пользователь открывает отчет
    • Возможно, делает дополнительные настройки (например, меняет значения параметров)
    • Нажимает кнопку «Сформировать»
  • Настройки пользователя применяются к схеме компоновки данных, определенной разработчиком.
  • Формируется промежуточный макет компоновки данных, содержащий в себе инструкции, откуда получать данные. В частности, корректируются запросы, заданные в макете. Так, из запроса удаляются поля, которые не используются в отчете (это делается с целью минимизировать объем получаемых данных). В запрос добавляются все поля, участвующие в формулах вычисляемых полей.
  • В дело включается процессор компоновки данных. Процессор компоновки выполняет запросы, осуществляет связь наборов данных, рассчитывает значения вычисляемых полей и ресурсов, выполняет группировку. Словом, делает все расчеты, которые не были выполнены на уровне СУБД.
  • Процессор вывода данных запускает запрос на исполнение и выводит полученные данные в табличный документ, диаграмму и т.п.


image
Процесс формирования отчета механизмом СКД

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

Пользовательские настройки


Весь инструментарий СКД доступен как разработчику, так и конечному пользователю. Но практика показала, что конечного пользователя часто пугает обилие возможностей инструмента. Тем более что в большинстве случаев вся мощь настроек конечному пользователю и не нужна – ему достаточно иметь быстрый доступ к настройке одного-двух параметров отчета (например, периода и контрагента). Начиная с определенной версии платформы у разработчика отчета появилась возможность отметить, какие настройки отчета доступны пользователю. Делается это с помощью флажка «Включать в пользовательские настройки». Также у настроек отчета появился флаг «Режим отображения», принимающий одно из трех значений:

  • Быстрый доступ. Настройка будет выведена непосредственно в верхнюю часть окна отчета.
  • Обычный. Настройка будет доступна через кнопку «Настройки».
  • Недоступный. Настройка будет недоступна конечному пользователю.


image
Режим отображения настройки в design time

image
Отображение настройки в режиме «Быстрый доступ» во время выполнения (под кнопкой «Сформировать»)

Планы развития


Одно из приоритетных направлений в развитии СКД для нас – упрощение настроек пользователя. Наш опыт показывает, что для части конечных пользователей работа с пользовательскими настройками – все еще серьезный труд. Мы это учитываем и работаем в этом направлении. Соответственно, и разработчикам также станет проще работать с СКД, т.к. мы, как и раньше, хотим предоставлять единый инструментарий настройки отчетов и для разработчика, и для конечного пользователя.

Комментарии (62)


  1. fishca
    24.08.2017 10:49

    Где 8.3.11?
    Почему нет скринов конфигуратора, а только EDT?


    1. PeterG Автор
      24.08.2017 11:03

      Где 8.3.11?

      А почему интересует именно 8.3.11? Извините, что вопросом на вопрос.

      Почему нет скринов конфигуратора, а только EDT?

      EDT мне больше нравится.


      1. fishca
        24.08.2017 11:31

        Потому что ждали релиз, а вышла тестовая и не в срок :(
        И EDT — всего лишь бэта


        1. Elanor
          24.08.2017 15:14

          Так тестовая 8.3.11 тестовая еще ж не выходила. Как же релиз без тестовой? ;)


          1. PeterG Автор
            24.08.2017 15:18

            Тестовая 8.3.11 вышла, если не ошибаюсь, сегодня.


            1. Elanor
              24.08.2017 16:22

              Вышла-то сегодня, но fishca ждал «релиз».


      1. iwans90
        24.08.2017 11:48

        > А почему интересует именно 8.3.11?
        Меня тоже это интересует. В ней обещали починить баги клиента под Mac, приводящие к падению клиента. Пользователи Mac ждут 8.3.11 как второго пришествия.


        1. SONANT
          24.08.2017 11:53

          Им некогда заниматься тем, что ждут пользователи, они чатики делают…


          1. dadyjo
            24.08.2017 12:52

            Согласен. 1С уже не тот, выкладывают в продакшен неработающую платформу и даже не отзывают! (8.3.10.2505)


            1. iwans90
              24.08.2017 13:19
              +3

              У нас 2505 в продакшене стоит, люди работают, под виндой проблем с платформой нет. У 1с есть баг-трекер, если есть какая-то существенная проблема, я бы предложил провести диагностику и зарегистрировать ее там, вдруг, с этим столкнется кто-то еще.


              1. dadyjo
                28.08.2017 18:18

                Ошибка 1с известна. Пофиксили в новой версии. Но по правильному должны были платформу отзывать, так как релиз неработоспособный!

                www.forum.mista.ru/topic.php?id=802612


    1. smakki
      24.08.2017 11:31

      Только что появилась тестовая:)


  1. iliabvf
    24.08.2017 10:54
    -3

    Эти топорные графики не стыдно выставлять на Хабр? Тут ведь не инфостарт, народ знаком с JS и canvas :)
    Хотя и на инфостарте есть пару графиков на JS, но они не имеют к СКД никакого отношения…


    1. dmpas
      24.08.2017 10:59
      +1

      Поддержу. Система компоновки данных — очень мощный механизм и пара круговых диаграмм вообще не раскрывает тему сисек ни одной из прелестей.


      1. iliabvf
        24.08.2017 11:02

        я хорошо знаком с СКД, вопрос был на тему дизайна, есть ли они, дизайнеры, вообще в 1С?


      1. PeterG Автор
        24.08.2017 11:04

        Как считаете — как именно эффектней было бы раскрыть прелести СКД?


        1. fishca
          24.08.2017 11:30

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


          1. SuhoffGV
            24.08.2017 12:31
            +1

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


            1. fishca
              24.08.2017 13:20

              Точно, сначала дадут инструмент, а потом обижаются на то что пользователь его не умеет готовить и неправильно настраивает.


        1. bolonov
          24.08.2017 13:04

          Петр, в добавок к показанному на мой взгляд стоило бы:
          1. Проиллюстрировать примером использования СКД в кач-ве «движка» динамических списков
          2. Рассказать про возможность программной работы с СКД и в частности с получением рез-тов ее исполнения в виде тех же таблиц значений. Это позволяет один раз реализовав какую-нибудь аццки сложную логику (пример — расчет среднесписочной численности сотрудников) иметь ее И в виде отчета И в виде данных на входе чего-нибудь еще.


          1. PeterG Автор
            24.08.2017 13:56

            Спасибо!
            Это, пожалуй, тема для отдельной статьи.


  1. erwins22
    24.08.2017 11:30

    1. Добавьте наконец в вычисляемые поля редактор!
    2. 2 таблицы идущие подряд это кошмар, нельзя задать сквозную ширину колонок
    3. если 3 строки в ячейке, то и в итоге 3 строчки
    4. разбитие по страницам в СКД НЕТ
    и еще 1000 «тут должен быть мат» мелочей

    такое впечатление что после определенного шага развития решили оставить как есть.
    Вычислитьвыражение это вообще попытка решить вопрос с помощью большого костыля врожденные проблемы.

    Кстати, не разу не потребовалось за много лет сделать диаграмму.


  1. shumkiiv
    24.08.2017 12:07
    +2

    Да редактировать к примеру такое в вычисляемых полях image
    это просто жесть, реально нужен редактор


    1. PeterG Автор
      24.08.2017 12:20

      В Enterprise Development Tools будет редактор для вычисляемых полей. Точнее, уже есть, просто Enterprise Development Tools пока в статусе Beta.


      1. fishca
        24.08.2017 13:23

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


      1. vis_inet
        24.08.2017 13:56

        Действительно не хотите поддерживать старый конфигуратор?


        1. PeterG Автор
          24.08.2017 13:58

          Функциональность конфигуратора будет поддерживаться. Другое дело, что какие-то нововведения (не принципиальные — вроде поля редактора в вычисляемых полях) могут быть реализованы в EDT и не быть реализованы в Конфигураторе.


          1. Neikist
            24.08.2017 14:25

            И это правильно. Конечно не от jetBrains, но хоть нормальная IDE будет. И надо всех силой на нее пересаживать. Иначе некоторые работодатели не будут переход поддерживать.


            1. bolonov
              24.08.2017 17:04

              >нормальная IDE будет

              Конфигуратор вполне годная IDE

              >надо всех силой на нее пересаживать.

              Люди при наличии выбора сами выберут более подходящее им. И не надо силой никого и никуда


              1. Neikist
                24.08.2017 17:26

                Конфигуратор вполне годная IDE

                Да ладно, будь еще возможность без проблем плагины писать под него, более умную контекстную подсказку, и прочие плюшки нормальных IDE — можно было бы поспорить. А так… Есть подозрения что умельцы даже в vim или emacs больше возможностей добавить смогут…


          1. cleaner_it
            24.08.2017 14:45

            Я попробовал EDT, старый добрый конфигуратор удобнее. Может, и привыкну потом. А по теме — основы рассказали. Описывать всё не нужно, концепции вполне достаточно.


            1. vis_inet
              24.08.2017 15:26

              Я попробовал EDT, старый добрый конфигуратор удобнее

              А в чём тогда преимущества EDT?


              1. Neikist
                24.08.2017 15:29

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


            1. PeterG Автор
              24.08.2017 15:28

              Мне, наоборот, с EDT обратно на Конфигуратор пересаживаться не хотелось. А что не понравилось в EDT? Не считая того, что еще не реализовано в бета-версии.


              1. bolonov
                24.08.2017 17:08

                EDT на уровне интерфейса подтормаживает в сравнении с Конфигуратором. Доли секунды, но заметны. Не знаю, то ли дело в нативности Конфигуратора, по сравнению с джавовским EDT, то ли в меньшей его навороченности.

                И чисто эстетически Конфигуратор кажется более… элегантным, что ли

                ЗЫЖ я понимаю что за EDT будушее и ряд его фишек стоят того, чтобы на него переходить


          1. ssdvig
            24.08.2017 15:26

            А что, EDT уже полноценно заменяет конфигуратор?


            1. PeterG Автор
              24.08.2017 15:28

              Релиз — заменит. В принципе на бете у меня получалось полноценно работать. Но: на EDT можно разрабатывать только управляемые приложения.


              1. ssdvig
                24.08.2017 15:30

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


                1. PeterG Автор
                  24.08.2017 15:57

                  В бета-версии — насколько помню, еще не было. Ну у меня область работы специфическая.
                  В релизе, кончено, все перечисленное будет.


                  1. erwins22
                    24.08.2017 16:20

                    Будут обычные формы?


                    1. PeterG Автор
                      24.08.2017 16:25

                      Только управляемые приложения.


                      1. bolonov
                        24.08.2017 17:09

                        Решение понятное, но, кажется, это здорово отодвинет массовый переход на EDT


              1. fishca
                24.08.2017 16:07

                можно разрабатывать только управляемые приложения

                Так как же он заменит, если толстые формы не поддерживаются?


                1. Neikist
                  24.08.2017 16:12
                  +1

                  Серьезно? Кто то использует их в новых проектах?


                  1. fishca
                    24.08.2017 16:19

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


                    1. PeterG Автор
                      24.08.2017 16:25

                      ВСЁ существующее продолжает поддерживаться в Конфигураторе.

                      Большинство типовых решений от 1С (ERP, УТ, КА, БП, ...) — написаны как управляемые приложения. Для новых разработок и рекомендуется DT.


    1. erwins22
      28.08.2017 14:29

      А еще лучше добавить сюда локальные переменные.
      Код сократиться раза в 3.


    1. tormozit
      28.08.2017 14:29

      Частично проблема решается runtime средствами разработки, где есть достаточно удобные редакторы выражений. Тем более обычно сначала схема отлаживается в режиме предприятия и только потом помещается в конфигурацию.


      1. erwins22
        28.08.2017 14:32
        -1

        обычно сначала схема отлаживается в режиме предприятия и только потом помещается в конфигурацию


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


  1. vis_inet
    24.08.2017 15:25

    del


  1. geminirff
    24.08.2017 16:56

    СКД очень мощный инструмент. С его помощью можно сделать много вещей, без кодирования. Но … бывает очень сложно сделать то, что нужно.
    Это ИМХО за многие годы работы с ней.


    1. PeterG Автор
      24.08.2017 16:57

      бывает очень сложно сделать то, что нужно.

      Можете привести пример?


      1. geminirff
        24.08.2017 17:31

        Да вот же erwins22 написал.

        А у самого, из недавнего …
        Нужен отчет с диаграммами «в строку»: первая справа, вторая слева. Строк много. Для некоторых необходимо рядом размещать таблицу данных, но с расширенным и переменным описанием объектом анализа.

        Всё это необходимо сохранить в ECXEL с сохранением редактирования.

        В итоге 800 строк интерфейсной логики, и 4200 — расчетной/оформительской. Предупреждаю — код не Ctrl+C, Ctrl+V, а хорошо декомпозирован.

        Бывает и так …
        Необходимо разработать сложный отчет с двумя десятками показателей и пятком объектов анализа. Рассчитать все это в СДК можно, но управлять потом невозможно. Это выльется в десяток наборов данных, с простынями «ВЫБРАТЬ», и бойницами параметров (о них писал shumkiiv). И попробуй ошибись с объединением наборов!

        Или вот ещё …
        Расшифровка и макеты. Специально ездил за книгой Хрусталёвой чтобы разобраться вот с этим …

        Ну, не заходит оно.

        Далее …
        Программное управление параметрами отчета, его структурой: скрыть добавить группировку, убрать параметры при отсутствии какой-то группировки … и подобное. Всё это требует наличия какой-то библиотеки, и её использование ПриКомпоновкеРезультата.
        Управление структурой отчета – всегда боль. И всячески нужно скрывать возможность порчи настроек пользователем. Об этом тоже писали.

        Говорю об этом в противовес мнению «СДК – это супер отчеты без программирования».
        Опять, же ИМХО, но СДК плохой механизм.


  1. Tippy-Tip
    24.08.2017 18:57

    Когда в СКД будет реализован нормальный WYSIWYG-редактор макетов?


  1. svcoder
    24.08.2017 20:48

    Насколько я понимаю, СКД одна из 3-х запатентованных технологий 1С (вместе с механизмом поддержки конфигурации и периодических расчетов), поэтому воспроизведение в какой-либо форме будет преследоваться по закону?


    1. bolonov
      25.08.2017 10:19

      Поделитесь источником знания, плз


  1. svcoder
    25.08.2017 11:46
    +1

    Можно начать вот с этого www.findpatent.ru/patent/253/2536390.html


    1. artbear
      25.08.2017 13:14

      Интересная тема, спасибо, не знал.


    1. bolonov
      28.08.2017 13:50

      О как! Спасибо


  1. krovlads
    29.08.2017 11:15
    +1

    PeterG Статья про 1с на Хабре и ни одного комментария про код кириллицей.
    Можно считать это победой.
    Верным путём идёте.


    1. Neikist
      29.08.2017 13:33

      По моему все претензии к языку обычно идут не от русскости, а от бедности синтаксиса, разве не? Не, конечно бывают отдельные индивидуумы, но по моему их даже на хабре минусили обычно.


    1. artbear
      29.08.2017 14:20

      Отличное замечание!