Отчетность в 1С: Система Компоновки Данных (СКД), идея и архитектура

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

    В платформе «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
    Отображение настройки в режиме «Быстрый доступ» во время выполнения (под кнопкой «Сформировать»)

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


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

    Комментарии 75

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

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

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

        EDT мне больше нравится.
          0
          Потому что ждали релиз, а вышла тестовая и не в срок :(
          И EDT — всего лишь бэта
            0
            Так тестовая 8.3.11 тестовая еще ж не выходила. Как же релиз без тестовой? ;)
              0
              Тестовая 8.3.11 вышла, если не ошибаюсь, сегодня.
                0
                Вышла-то сегодня, но fishca ждал «релиз».
            0
            > А почему интересует именно 8.3.11?
            Меня тоже это интересует. В ней обещали починить баги клиента под Mac, приводящие к падению клиента. Пользователи Mac ждут 8.3.11 как второго пришествия.
              0
              Им некогда заниматься тем, что ждут пользователи, они чатики делают…
              • НЛО прилетело и опубликовало эту надпись здесь
                  +3
                  У нас 2505 в продакшене стоит, люди работают, под виндой проблем с платформой нет. У 1с есть баг-трекер, если есть какая-то существенная проблема, я бы предложил провести диагностику и зарегистрировать ее там, вдруг, с этим столкнется кто-то еще.
                  • НЛО прилетело и опубликовало эту надпись здесь
            0
            Только что появилась тестовая:)
            –3
            Эти топорные графики не стыдно выставлять на Хабр? Тут ведь не инфостарт, народ знаком с JS и canvas :)
            Хотя и на инфостарте есть пару графиков на JS, но они не имеют к СКД никакого отношения…
              +1
              Поддержу. Система компоновки данных — очень мощный механизм и пара круговых диаграмм вообще не раскрывает тему сисек ни одной из прелестей.
                0
                я хорошо знаком с СКД, вопрос был на тему дизайна, есть ли они, дизайнеры, вообще в 1С?
                  0
                  Как считаете — как именно эффектней было бы раскрыть прелести СКД?
                    0
                    Описать как создать достаточно сложный отчет без написания кода вручную.
                      +1
                      А потом написать как «обрезать пользователю» все лишнее, чтобы он не испортил этот отчет настройками. Очень часть пользователю нужен надежный молоток, а с СКД получается некий мультитул. Одно неловкое движение и у пользователя вместо молотка открывается космическая горелка с голосовым управлением.
                        0
                        Точно, сначала дадут инструмент, а потом обижаются на то что пользователь его не умеет готовить и неправильно настраивает.
                      0
                      Петр, в добавок к показанному на мой взгляд стоило бы:
                      1. Проиллюстрировать примером использования СКД в кач-ве «движка» динамических списков
                      2. Рассказать про возможность программной работы с СКД и в частности с получением рез-тов ее исполнения в виде тех же таблиц значений. Это позволяет один раз реализовав какую-нибудь аццки сложную логику (пример — расчет среднесписочной численности сотрудников) иметь ее И в виде отчета И в виде данных на входе чего-нибудь еще.
                        0
                        Спасибо!
                        Это, пожалуй, тема для отдельной статьи.
                  0
                  1. Добавьте наконец в вычисляемые поля редактор!
                  2. 2 таблицы идущие подряд это кошмар, нельзя задать сквозную ширину колонок
                  3. если 3 строки в ячейке, то и в итоге 3 строчки
                  4. разбитие по страницам в СКД НЕТ
                  и еще 1000 «тут должен быть мат» мелочей

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

                  Кстати, не разу не потребовалось за много лет сделать диаграмму.
                    +2
                    Да редактировать к примеру такое в вычисляемых полях image
                    это просто жесть, реально нужен редактор
                      0
                      В Enterprise Development Tools будет редактор для вычисляемых полей. Точнее, уже есть, просто Enterprise Development Tools пока в статусе Beta.
                        0
                        От этого, к сожалению, не легче. Когда выйдет EDT неизвестно, а мучиться продолжать мы будем еще долго. Плохо то что конфигуратор не хотите поддерживать.
                          0
                          Действительно не хотите поддерживать старый конфигуратор?
                            0
                            Функциональность конфигуратора будет поддерживаться. Другое дело, что какие-то нововведения (не принципиальные — вроде поля редактора в вычисляемых полях) могут быть реализованы в EDT и не быть реализованы в Конфигураторе.
                              0
                              И это правильно. Конечно не от jetBrains, но хоть нормальная IDE будет. И надо всех силой на нее пересаживать. Иначе некоторые работодатели не будут переход поддерживать.
                                0
                                >нормальная IDE будет

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

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

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

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

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

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

                                  А в чём тогда преимущества EDT?
                                    0
                                    Она более удобна если не брать во внимание привычку, более умная, имеет возможность написания плагинов, и в целом имеет больше возможностей по умолчанию, которых в конфигураторе не будет принципиально насколько я понимаю (та же работа с гитом например и т.п.)
                                    0
                                    Мне, наоборот, с EDT обратно на Конфигуратор пересаживаться не хотелось. А что не понравилось в EDT? Не считая того, что еще не реализовано в бета-версии.
                                      0
                                      EDT на уровне интерфейса подтормаживает в сравнении с Конфигуратором. Доли секунды, но заметны. Не знаю, то ли дело в нативности Конфигуратора, по сравнению с джавовским EDT, то ли в меньшей его навороченности.

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

                                      ЗЫЖ я понимаю что за EDT будушее и ряд его фишек стоят того, чтобы на него переходить
                                    0
                                    А что, EDT уже полноценно заменяет конфигуратор?
                                      0
                                      Релиз — заменит. В принципе на бете у меня получалось полноценно работать. Но: на EDT можно разрабатывать только управляемые приложения.
                                        0
                                        Про управляемые понятно. Когда я крайний раз смотрел EDT там не было плана счетов, бухгалтерских и расчетных регистров, уже есть?
                                          0
                                          В бета-версии — насколько помню, еще не было. Ну у меня область работы специфическая.
                                          В релизе, кончено, все перечисленное будет.
                                            0
                                            Будут обычные формы?
                                              0
                                              Только управляемые приложения.
                                                0
                                                Решение понятное, но, кажется, это здорово отодвинет массовый переход на EDT
                                          0
                                          можно разрабатывать только управляемые приложения

                                          Так как же он заменит, если толстые формы не поддерживаются?
                                            +1
                                            Серьезно? Кто то использует их в новых проектах?
                                              0
                                              Про поддержку существующего не забываем.
                                              Про ограниченность тонких форм не забываем
                                                0
                                                ВСЁ существующее продолжает поддерживаться в Конфигураторе.

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

                                              Кто-то еще использует технологию 15-ти летней давности?

                                                0
                                                УПП?
                                                на что можно безболезненно перейти с сильно переписанной УПП?
                                                  0
                                                  да и к тому же эти технологии исправно и стабильно до сих пор работают, как говорится «работает, не трогай»
                                                    0

                                                    В условиях быстроразвивающегося бизнеса и постоянных изменений бизнес-процессов "работает не трогай" звучит как "давайте не будем зарабатывать деньги".
                                                    Эта технология устарела, более не развивается. Ее сложно адаптировать под новые задачи. И еще сложнее поддерживать. Конечно, если подразуиевается, что система не висит мертвым грузом.
                                                    Сейчас если компания не развивает ай-ти — то ей не на что надеяться.

                                                  0
                                                  Например те, кто имеет нормально внедренную УПП с кучей доработок.
                                                  Из типовых ЦУП (http://v8.1c.ru/expert/pmc/pmc_overview.htm), например, до сих пор на них.
                                      0
                                      А еще лучше добавить сюда локальные переменные.
                                      Код сократиться раза в 3.
                                        0
                                        Частично проблема решается runtime средствами разработки, где есть достаточно удобные редакторы выражений. Тем более обычно сначала схема отлаживается в режиме предприятия и только потом помещается в конфигурацию.
                                          –1
                                          обычно сначала схема отлаживается в режиме предприятия и только потом помещается в конфигурацию


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

                                            Можете привести пример?
                                              0
                                              Да вот же erwins22 написал.

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

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

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

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

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

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

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

                                              Говорю об этом в противовес мнению «СДК – это супер отчеты без программирования».
                                              Опять, же ИМХО, но СДК плохой механизм.
                                            0
                                            Когда в СКД будет реализован нормальный WYSIWYG-редактор макетов?
                                              0
                                              Насколько я понимаю, СКД одна из 3-х запатентованных технологий 1С (вместе с механизмом поддержки конфигурации и периодических расчетов), поэтому воспроизведение в какой-либо форме будет преследоваться по закону?
                                                0
                                                Поделитесь источником знания, плз
                                                +1
                                                Можно начать вот с этого www.findpatent.ru/patent/253/2536390.html
                                                  0
                                                  Интересная тема, спасибо, не знал.
                                                    0
                                                    О как! Спасибо
                                                    +1
                                                    PeterG Статья про 1с на Хабре и ни одного комментария про код кириллицей.
                                                    Можно считать это победой.
                                                    Верным путём идёте.

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

                                                        для каждого цикл
                                                        конеццикла

                                                        пофиг
                                                          0
                                                          Вы про отсутствие асинхронности? Так она есть, правда реализована очень неудобно, но есть.
                                                            0
                                                            Знаю и использую ассинхронность в 1с.
                                                            Работает, но сделано платфорниками для платфомиников, но не для программистов 1с, сделано так, что бы не менять язык, просто добавлением большой кучи функций(ассинхронных аналогов) и т д.
                                                            А хотелось бы в современном мире чувствовать себя человеком, как например те кто пишет на python
                                                              0
                                                              erwins22
                                                              но сделано… не для программистов 1с

                                                              Тут не поспоришь. Реализация асинхронности действительно отвратительная.
                                                                0
                                                                Причем проблема в основном в сахаре.
                                                          0
                                                          Почему нет? Вот вы же написали :)
                                                          Остальным, видимо, есть о чем-то другом поговорить.

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое