1с скд авто позиция ресурсов

Содержание

Использование ресурсов в СКД на примере создания внешнего табличного отчёта

Задача

Есть регистр сведений «Остановки по маршруту», в котором хранится информация о расстоянии от начальной до конечной остановки.

Рис. 1. Регистр сведений «Остановки по маршруту»

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

Решение

В любой конфигурации, поддерживающей управляемые формы, создадим непериодический регистр сведений «Остановки по маршруту». Добавим в него измерения Маршрут и Остановка с типом строка длиной, соответственно 4 и 50, а также ресурс Расстояние с типом число длиной 10.2. Сохраним изменения в новой конфигурации. Для создания внешнего отчёта в Меню—>Файл—>Новый выбираем “Внешний отчёт”, зададим его название и открываем схему компоновки данных:

Рис. 2. Создание внешего отчёта на СКД

В открывшемся окне нажимаем кнопку “Добавить набор данных” и выбираем строку “Добавить набор данных – запрос”:

Создадим новый запрос. Для решения задачи нам понадобится в запросе регистр сведений «Остановки по маршруту» и, поскольку отчёт должен наглядно показывать расстояние между любыми двумя остановками, сформируем запрос для табличного представления по осям X и Y, используя полное внешнее соединение таблицы регистра с самим собой:

Рис. 4. Текст запроса

Далее, перейдём на закладку «Ресурсы» и укажем их для СКД:

Рис. 5. Указание ресурсов для СКД

Перейдём теперь на закладку «Настройки» и с нажмём кнопку «Открыть констуктор настроек», выберем тип отчёта Таблица:

Рис. 6. Выбор типа отчёта

Далее, последовательно настроим поля отчёта, поля группировки и поля сортировки как показано на рис. 7, 8 и 9:

Рис. 7. Выбор полей отчёта

Рис.8. Выбор полей группировки

Рис. 9. Выбор полей сортировки

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

Рис. 10 Пользовательские и другие настройки.

Отчёт готов. Теперь перейдём из конфигурации в Предприятие, и заполним регистр сведений (если он ещё не заполнен):

Рис. 11. Заполнение регистра сведений

И, наконец, из Меню—>Файл вызываем наш отчёт из места, куда мы его сохранили в конфигураторе, нажимаем кнопку «Сформировать» и видим решение задачи:

Рис. 12. Отчёт «Расстояние между остановками»

На написание статьи меня подтолкнула публикация

Спасибо авторам за интересную задачу.

Скачать файлы

Специальные предложения

Обновление 16.05.13 14:37

Код открыт Не указано

См. также

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5 Промо

Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

21.12.2020 3217 15 huxuxuya 11

Интерактивная справка по объектам 1С (подключаемое расширение)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

29.09.2020 9132 53 sapervodichka 43

Конвейер проверки качества кода

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

04.09.2019 29077 25 Stepa86 46

Алгоритмы поиска пути в графе

Реализуем алгоритмы поиска пути в графе на платформе 1С 8.3, такие как алгоритм А*, поиск в ширину, жадный поиск, алгоритм Дейкстры и вконце волновой.

09.07.2019 19462 12 RonX01 10

Вам нравятся запросы в 1С? Промо

Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!

03.07.2019 23043 6 m-rv 88

Работа с публикациями «Инфостарт»

Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

13.09.2018 23717 13 RocKeR_13 16

HTTP Сервисы: Путь к своему сервису. Часть 3

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

27.08.2018 43126 63 dsdred 17

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

09.08.2018 30624 28 informa1555 26

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар») Промо

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

Читайте также:  Тракторы и автомобили грм

01.06.2018 32284 88 m-rv 57

Работа с данными выбора

17.07.2018 55031 20 kalyaka 16

Полезные примеры составления схемы компоновки данных #2

Еще один набор примеров как решить частные задачи в СКД

22.05.2018 34205 11 SITR-utyos 13

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

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

06.12.2017 28777 54 kwazi 6

Заполняем по шаблону (по умолчанию) Промо

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

08.02.2018 30315 20 mvxyz 17

Паузы при исполнении кода (Sleep для 1С)

Решил проверить все найденные варианты паузы для 1С. В результате получилась обработка для тестирования и небольшая статья с итогом.

28.11.2017 54130 14 swimdog 44

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

09.11.2017 23666 77 freelancer 4

Telegram-боты

Описание теории, разбор архитектуры и пример реализации telegram-ботов. Сразу скажу, со структурированием изложения мало что могу поделать. 🙂 редакция от 18.07.2018 Правки последней редакции выделены жирным.

01.09.2017 36199 137 PLAstic 59

Нечеткий поиск одним запросом Промо

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

28.12.2015 29931 71 vasvl123 9

Умный дом на 1С + ардуино

Конфигурация для автоматизации быта программиста 1C и не только. В данной статье будет рассказано, как можно использовать 1С для задач, не входящих в стандартные рамки этой платформы. Например, управление домом. В качестве периферии для подключения будет использован микроконтроллер (МК) Ардуино, но на нём не будет никакой логической нагрузки, весь процесс будет проходить на сервере 1С. Работа с пинами ввода/вывода происходит напрямую из 1С.

07.08.2017 24710 21 sasha777666 64

Расширения конфигураций 1С: учимся перехватывать методы

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

30.05.2017 144629 13 signum2009 48

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

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

13.03.2017 33805 117 romasna 49

1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут Промо

Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании

14.08.2016 50301 36 Demanoidos 60

Распознавание текста с помощью нейросетей Google Cloud Vision и 1С

Возможности Google Cloud Vision в распознавании текста.

08.02.2017 32685 136 kiv1c 18

Графическая схема. Управление при помощи XDTO.

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

16.01.2017 24817 110 Alxby 23

Простой редактор плана помещения JavaScript

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

23.11.2016 22980 99 igel9780 22

Быстрое определение интервалов в запросе Промо

В статье описывается новый метод определения интервалов между данными различных записей в запросе. В отличие от общеизвестного метода, время работы предлагаемого метода зависит от объема данных ЛИНЕЙНО. Это обеспечивает ему значительный выигрыш по быстродействию на больших объемах данных. В качестве иллюстрации возможностей метода приведен отчет, показывающий гистограмму распределения времени между продажами.

01.10.2015 54897 35 ildarovich 41

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9

14.11.2016 29265 16 Anton64 22

Загрузка файлов на сервер с прогрессом и докачкой

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

04.10.2016 14683 53 mrstomak 21

Несколько шаблонов для доработки типовых конфигураций

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

03.10.2016 38549 96 json 25

HTTP-сервис: отчеты [Расширение]

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

30.08.2016 29083 143 Stepa86 15

Недокументированное использование стандартных форм Upd.

Вам не хватает возможностей в платформе 1С или у Вас нет времени на углубленное изучение платформы 1С? Рассмотрены возможности использования стандартных форм, вызываемых из платформы.

26.07.2016 30325 91 ZhokhovM 64

Хранение файлов в томах на диске (для УПП 1.3)

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

05.06.2016 60971 11 wowik 32

БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)

Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

18.05.2016 66361 196 rozer 66

Остатки на каждый день в запросе

Запрос формирует остатки товаров на каждый день в пределах выбранного периода.

26.04.2016 65426 19 arakelyan 22

Еще один способ расчета остатков на каждый день в запросе

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

Читайте также:  Тип автомобиля уаз 3741

24.04.2016 36686 51 ildarovich 23

Вывод печатных форм с запросом данных в форму «Печать документов» из подсистемы БСП «Печать».

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

29.03.2016 99411 192 lopatin 14

Источник

17 вопросов и ответов по СКД, проектированию форм, навигации, панелям и т.п.

Как мы уже писали, “закармливать” видео пока не будем 🙂

Зато мы просмотрели вопросы, которые разбирали в Мастер-группах и выбрали несколько “общественно полезных” 🙂

Немного причесали, и – готово, можно читать:

Несколько вопросов из Мастер-группы курса
Профессиональная разработка интерфейсов и форм в 1С:Предприятие 8.3

Можно ли из модуля объекта вывести сообщение с привязкой к реквизиту управляемой формы?

Прошу на примере УТ 11 (см. скриншот) пояснить, как быстро найти команду, отображенную в командном интерфейсе?

Окно командного интерфейса подсистемы, которое приведено на скриншоте, не подходит для этих целей. Для поиска команды следует использовать окно Все подсистемы.

Необходимо в дереве найти интересующую команду и вызвать в контекстном меню пункт Найти в дереве:

Есть управляемая форма документа с табличной частью, где заполнена колонка «Номенклатура».

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

Да, это возможно. Вот программный код, который это реализует:

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

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

Как можно на командной панели формы разместить две команды так, чтобы первая из них занимала крайнее левое положение, а вторая – крайнее правое?

Чтобы реализовать такое размещение, необходимо:

В процессе выполнения кода создается текстовый файл. По окончании формирования файла используется метод ПоказатьОповещениеПользователя().

Можно ли в этом методе создать гиперссылку, при переходе по которой будет открываться созданный файл?

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

Можно создать общую форму ФормаТекстовогоДокумента, клиентскую глобальную переменную глТекстовыйДокумент и выводить оповещение следующим образом:

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

Подскажите, пожалуйста, как убрать контекстное меню элемента формы.

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

Этот код не работает:

Необходимо в контекстном меню включить отображение командной панели:

После чего в свойствах контекстного меню нужно выключить Автозаполнение:

Подскажите, можно ли получить владельца списка подчиненного справочника, если список пустой?

Например, в БП3 выбрал контрагента, перешел на вкладку «Договоры» – список пуст.

Как получить ссылку на контрагента?

Так как в форме контрагента при переходе по команде Договоры открывается форма списка справочника «Договоры» с отбором по текущему контрагенту, значение контрагента можно получить 2 способами:

1-й способ – получение контрагента из параметров открываемой формы, можно использовать только в обработчике ПриСозданииНаСервере:

2-й способ – получение контрагента из отбора по владельцу, размещенного в фиксированных настройках:

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

Вот программный код:

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

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

Каким образом можно дождаться завершения работы запущенной базы?

Все дело в том, что 1cestart.exe — это универсальная программа запуска, целью которой является запуск толстого или тонкого клиента нужной версии.

Ничего удивительного в том, что 1cestart.exe закрывается, нет. Поэтому лучше запускать нужный клиент напрямую.

Например, для версии 8.2.19.83 строка запуска толстого клиента:

Можно ли выключить видимость у «Панель навигации и действий» по умолчанию для новых пользователей?

Для этого потребуется программным способом устанавливать настройки текущего пользователя при первом входе в базу.

Сделать это можно только на сервере, поэтому эффективнее всего использовать «Модуль сеанса», так как его код исполняется на стороне сервера до выполнения кода других модулей и до формирования главного окна приложения.

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

Поддержка: 60 дней. Стоимость: 3900 рублей.

Поддержка: 90 дней. Стоимость: 7400 рублей.

Несколько вопросов из Мастер-группы курса
Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)

Для чего могут потребоваться пользовательские поля, если в схеме компоновки можно использовать ресурсы и вычисляемые поля?

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

В пользовательском режиме можно создать новое поле, которое разработчик не определил в схеме компоновки.

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

Полученное поле можно использовать в отчете:

Затем настроенный вариант отчета с новым добавленным полем можно сохранить.

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

Но создать новое вычисляемое поле, задать или изменить выражение для ресурса в режиме «1С:Предприятие» нельзя. Для этого потребуется обратиться к конструктору схемы компоновки.

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

Перейти к виду сравнения для быстрых пользовательских настроек можно при помощи команды на форме «Еще» — «Изменить форму»:

По умолчанию вид сравнения скрыт.

Разработчики платформы обосновывают это следующим допущением.

Если у отбора установлен вид сравнения «Равно», то пользователю нужно иметь возможность быстро вводить значение и не отвлекаться на вид сравнения. А если ему нужно изменить вид сравнения, то для этого следует воспользоваться формой настроек. Эта же форма используется для редактирования и других «не быстрых» настроек.

Читайте также:  Can шина на грузовых авто

Например, в УТ 11.2 (БСП) выбор вида сравнения реализован при помощи контекстного меню:

Если в отчете «ОстаткиТоваровНаСкладах» установить выражение представления для поля «Количество»:

то при формировании отчета символ «%» не выводится. В чем может быть дело?

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

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

Поэтому, чтобы получить символ «%» в итоговом отчете, можно использовать два варианта.

Первый вариант – в настройках структуры отчета воспользоваться детальными записями:

Тогда в отчете в колонке «Количество» будет использоваться выражение представления:

Второй вариант – изменить выражение для ресурса «Количество»:

А для более красивого представления можно использовать такое выражение:

Тогда отчет будет выглядеть следующим образом:

Отчет строится по оборотному регистру накопления «Продажи». Для ресурсов используются следующие выражения:

В настройках структуры отчета дважды используются детальные записи (первый раз – как подчиненная группировка, второй раз – как отдельная группировка):

При этом данные в отчет выводятся по-разному. В первом случае в детальных записях указывается количество документов, а во втором – сам Регистратор:

В чем причина такого поведения системы?

Вы столкнулись с особенностью использования детальных записей.

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

Для детальных записей, подчиненных «Контрагенту», в списке выбранных полей используется «Автополе».

Если развернуть его, то можно увидеть, что оно состоит из двух ресурсов («Регистратор» и «Количество»). Получается, что в группировке есть только ресурсы, поэтому в первом случае система выводит только итог по этим ресурсам.

На уровне детальных записей, вложенных в «Контрагента», в выбранных полях можно удалить «Автополе», добавить явно поля «Контрагент», «Регистратор» и «Количество»:

Тогда в этой группировке система будет выводить представление регистратора, а не значение агрегатной функции:

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

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

Автоматическое добавление параметров «НачалоПериода» и «КонецПериода» связано с использованием автозаполнения в наборе данных.

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

Управлять поведением системы можно при помощи конструкций в фигурных скобках (расширение языка запросов для системы компоновки). Возьмем для примера вот такой фрагмент:

Для системы это значит:

Т.е. значение параметра «НачалоПериодаТекущий» используется, только если в настройках не установлено значение параметра «НачалоПериода».

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

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

В таком случае список параметров выглядит следующим образом:

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

Для ресурса «Количество» используется следующее выражение:

При этом итоги в отчет выводятся не так, как ожидается, а общий итог вообще не выводится:

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

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

Нужно изменить выражение для ресурса на следующее:

В таком случае система будет рассчитывать итог по группировке следующим образом.

Обходятся все записи, для каждой выполняется проверка: если Количество > 0, будет использоваться само значение Количество, иначе будет использоваться значение . Полученные значения складываются. Так будет получен итог по группировке.

То есть, чтобы получить корректный итог, нужно использовать агрегатную функцию, а условное выражение указать внутри нее.

Тогда получится ожидаемый результат:

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

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

Можно задать следующую структуру отчета:

Тогда отчет будет отображаться следующим образом:

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

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

Зададим имя Организация для группировки в колонках таблицы:

Чтобы «накрыть шапкой» такие колонки, воспользуемся макетом заголовка:

В ячейках указываются шаблоны и специальные «маркеры» — символы «??».

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

Эти ячейки объединяются, получается общая шапка для колонок.

Пример программного кода в модуле отчета приведен ниже:

Процедура ОбъединитьЯчейкиВШапке ( ТабДок )

Если НЕ НачальнаяКолонка Тогда
НачальнаяКолонка = ИндексКолонки ;
КонецЕсли ;

ИначеЕсли НЕ НачальнаяКолонка = 0 Тогда

КонецЕсли ;
НачальнаяКолонка = 0 ;

Если НЕ ОбъединяемаяОбласть = Неопределено Тогда
Продолжить ;
КонецЕсли ;

Здесь используется программное формирование отчета, после чего дорабатывается полученный табличный документ, объединяются соседние ячейки с одинаковым текстом, начинающимся с «??».

Получается вот такой отчет:

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

Было добавлено два вычисляемых поля:

Для этих вычисляемых полей на закладке «Ресурсы» заданы выражения:

Но при формировании отчета поле Отклонение (%) не выводится:

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

Тогда отчет будет выглядеть следующим образом:

Теперь видно, почему на уровне группировки не заполняется Отклонение (%).

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

Для каждой строки рассчитывается вычисляемое поле. На уровне группировки простое суммирование отклонений даст неправильный результат.

Чтобы получить корректный результат, нужно изменить выражения для ресурса:

При таких настройках в отчет попадут следующие данные:

Поддержка: 60 дней. Стоимость: 3900 рублей.

Поддержка: 90 дней. Стоимость: 7400 рублей.

PDF-версия статьи для участников группы ВКонтакте

Статья в PDF-формате
Вы можете скачать эту статью в формате PDF по следующей ссылке: Ссылка доступна для зарегистрированных пользователей)

Источник

Поделиться с друзьями
Расскажем обо всем понемногу
Adblock
detector