Система компоновки данных - практика разработкиСКД Консоль - изучение Системы Компоновки Данных OnLine. Использование отборов в скд Управление представлением отчетов

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

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


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

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

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

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

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

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

    Два языка

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

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

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

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

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

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

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

    Например:

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

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

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

    Пример:

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

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

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

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

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

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


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

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


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


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

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

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

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


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

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

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

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


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


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

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

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

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

    Ниже приведено краткое описание того, что можно полезно получить из этого курса. Но я советую лично ознакомиться с видеоматериалами. Продолжительность всего 5,5 часов.
    Возле каждой полезности написан номер видеоурока вида L18

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

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

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

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

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

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

    Пользователь сможет убирать отбор, если он ему не нужен

    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. Дополнительные функции СКД можно использовать:

    В вычисляемых полях

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

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

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

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

    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. Неделя + Месяц (и бо́льшие периодичности) будет давать неправильные остатки. Это особенность системы.

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

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

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

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

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

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

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

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

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

    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. Пользователи могут создать собственные поля через «Изменить вариант» – вкладка «Пользовательские поля». Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки.

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

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

    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”);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    КонецЕсли;

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

    Внимание! Теперь курс проводится и в вечернее время с 18:30 до 21:30 в формате погружения.

    Курс предназначен:

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

    Основной упор в курсе сделан на ознакомление с возможностями:

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

    После курса Вы сможете:

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

    В стоимость очного дневного курса включено:

    • 3 дня с 10:00 до 17:00
    • методические материалы
    • обеды, кофе-брейки

    В стоимость очного вечернего курса включено:

    • 6 вечеров с 18:40 до 21:40
    • методические материалы
    • кофе-брейки
    • свидетельство 1С-Учебного центра №3

    В стоимость WEB-курса включено:

    • 5 недель курса, 5 вебинаров с преподавателем
    • свидетельство 1С-Учебного центра №3 (при условии выполнения практики)

    В стоимость очного курса-погружения включено:

    • 5 дней с 10:00 до 17:00 или 9 вечеров с 18:30 по 21:30
    • конспект, наушники
    • обеды, кофе-брейки
    • доступ на 2 года к обновляемым видеоматериалам после окончания курса
    • свидетельство 1С-Учебного центра №3

    В стоимость он-лайн трансляции включено:

    • он-лайн трансляция очного курса в режиме вебинара, 3 дня с 10:00 до 17:00 по мск времени
    • методическое пособие в печатном виде (заранее отправляется почтой России)
    • свидетельство 1С-Учебного центра №3

    Форматы обучения

    Очное дневное

    Для кого этот формат: Для тех, кто может пройти обучение с отрывом от работы и предпочитает классическое очное обучение.

    Продолжительность: 24 академических часа

    WEB-обучение

    Что это за формат: Предлагаемый формат сочетает многие преимущества дистанционного обучения с очной составляющей, представленной видеоматериалами и онлайн-консультациями.
    WEB-курс состоит из видеороликов, практических задач и вебинаров с преподавателям. Ко всем материалам курса предоставляется круглосуточный доступ через Интернет – можно заниматься в удобное время. Курс разделен на занятия. В течение занятия изучаются материалы по текущей теме, выполняются практикумы, задаются вопросы преподавателю. В конце каждого занятия проводится вебинар, на котором преподаватель разбирает все поступившие вопросы, типовые ошибки, объясняет правильное решение. Запись вебинаров доступна в портале. Таким образом проходят несколько занятий одно за другим. В конце проводится итоговая самостоятельная работа и итоговый вебинар.

    Продолжительность: 5 недель

    Что это за формат:


    Продолжительность: 40 академических часов

    Онлайн-трансляция

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

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

    Продолжительность: 24 академических часа

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

    Технические требования:

    • доступ в Интернет (проверить свой канал связи Вы сможете подключившись к ),
    • наличие платформы 1С:Предприятие 8.3 для отработки практических заданий курса.

    Можно использовать «1С:Предприятие 8.3» Версия для обучения программированию.

    Система компоновки данных (СКД) — мощный механизм платформы 1С (8.2 и новее) для разработки отчетов, а вовсе не система контроля доступа.

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

    Видеоурок по созданию отчета «Журнал документов» в 1С СКД:

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

    Получите 267 видеоуроков по 1С бесплатно:

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

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

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

    Основа управляемого интерфейса 1С — СКД

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

    Как освоить и научиться делать отчеты на СКД?

    Доброго дня, коллеги!

    Сегодня мы рассмотрим решение кейса, основанного на реальном проекте .

    О чем это видео

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

    Применимость

    В материалах видео в качестве примера используется конфигурация, «Бухгалтерия предприятия, редакция 3.0 » (3.0.25.122). Материал актуален и для текущей версии данной конфигурации, т.к. представляет из себя именно готовый кейс с объяснением логики построения отчета с использованием СКД. Если вы обратитесь к комментариям к этом видео, то увидите, что после знакомства с представленным материалом, много разработчиков приняло решение о покупке нашего курса «Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)», что тоже является показателем применимости полученной информации;)

    Исходные данные

    У клиента используется типовая 1С:Бухгалтерия. В учетной политике зафиксирован учет себестоимости по средней.

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

    Объем документооборота небольшой – 10-20 документов в день.

    Весь товар поступает из-за границы – дополнительные расходы (ТЗР) связаны с таможенными операциями.

    Требуется

    Клиенту нужно получать точную себестоимость партии “на текущий момент” – на основании данных о себестоимости партий руководство утверждает цены отгрузки.

    При этом партионный учет включать недопустимо.

    На первый взгляд решаемая задача требует доработки, потому что…

    Однако можно добиться нужного функционала, не меняя конфигурации – без единой строчки кода .

    В следующих 3 видео мы покажем один из вариантов решения этой задачи.

    Выбор метода решения задачи

    В видео проанализируем исходные данные демобазы 1С:Бухгалтерии 8.

    Будут подобраны проводки бух. учета для получения нужной информации.

    Поддержка – 2 месяца . Объем курса – 34 учебных часа .

    Не откладывайте свое обучение!

    Понравилась статья? Поделитесь с друзьями!