Кейсы решения задач на СКД

Публикация № 1546376 08.11.21

Приемы и методы разработки - СКД

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

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

 

Корректный расчет остатков по нескольким регистрам

 

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

 

 

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

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

 

 

Запрос выглядит следующим образом: объединение двух виртуальных таблиц, «ТоварныеЗапасы.ОстаткиИОбороты» и виртуальной таблицы «Продажи.Обороты».

 

 

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

 

 

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

Но поскольку СКД сама рассчитывает значение ресурсов для группировок, в группировке на уровне Товар у нас указаны неправильные остатки. Для товара Bosch1234 у нас должно получиться -1, но СКД нам посчитала 0. И для Bosch15, если вычислить 4-3, то должно быть 1, но СКД тоже посчитала 0.

Почему так происходит? На сайте ИТС описана методика расчета остатков в СКД – там этому посвящена целая страница. Нас интересует единственная ветка алгоритма: расчет остатков по полям с ролью «Измерение» – по полям группировки «Товар». Там написано, что:

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

 

Например, в данном примере первая запись – документ «Корректировка остатка 000000001», по хронологии она первая, значение начального остатка 0, соответственно, на уровне группировки «Товар» у нас в качестве начального остатка тоже получается 0.

В качестве значения конечного остатка на уровне группировки берется значение конечного остатка из последней по хронологии записи. В данном случае у нас последний по хронологии – документ «Продажа 000000014».

Но на уровне группировки «Товар» значение ресурса «КоличествоКонечныйОстаток» здесь тоже 0. Так получается из-за того, что у нас используется объединение запросов. Остатки и обороты мы объединили с продажами, это значение и пошло в значение конечного остатка на уровне группировки по товару.

Решение этой задачи вытекает из того, как СКД рассчитывает остатки – остатки рассчитываются в разрезе уникальных значений измерений и по полям периода.

 

 

Чтобы дать СКД эти уникальные разрезы и изменения, мы в каждый запрос объединения вводим еще одно текстовое поле – я его называю «Раздел». В это текстовое поле пишем уникальную для этого запроса последовательность символов. Я обычно называю раздел по названию таблицы, по которой делается запрос. Для запроса 1 у меня в этом поле написано «ТоварныеЗапасы», а для запроса 2 – «Продажи».

 

 

В настройках СКД для нового поля «Раздел» мы обязательно указываем роль «Измерение» и ставим флаг «Обязательное».

Флаг «Обязательное» должен быть установлен, поскольку вы вряд ли будете выбирать в своем отчете поле «Раздел» – оно имеет техническое предназначение, только для решения конкретной задачи, вы его не будете показывать пользователю.

Если вы не установите флаг «Обязательное», то при компоновке компоновщик макетов СКД удалит это поле, и все, что вы сделали, сойдет на нет. Поэтому мы устанавливаем для поля СКД «Раздел» флаг «Обязательное», то при компоновке макета это поле удалено не будет.

 

 

При таком решении начальный и конечный остаток по виртуальной таблице «ОстаткиИОбороты» на уровне группировки «Товар» рассчитывается правильно.

Подведем итоги этому кейсу:

  • СКД сама рассчитывает итоги, это необходимо помнить. Для этого на вкладке «Набор данных» мы прописываем роли – указываем, какое поле является измерением, какое поле является полем периода и объединяем поля начального и конечного остатков в группы.

  • Для решения задачи объединения двух виртуальных таблиц мы добавляем в запросах поле «Раздел» – в моем случае это просто строка.

  • В настройках полей СКД для добавленного поля «Раздел» мы устанавливаем роль «Измерение» и ставим флаг «Обязательное».

 

Наложение отбора в объединении запросов

 

Давайте рассмотрим второй кейс – это проблема наложения отбора в объединении запросов. Причем этот кейс начинает воспроизводиться с 8.3.13 – до этого такой проблемы не было.

 

 

Мы имеем набор данных-запрос, в котором у нас производится объединение двух запросов – к виртуальным таблицам оборотов регистров «Движение денежных средств» и «Денежные средства». Я заранее добавил в это объединение поле «Раздел».

  • В первом запросе есть поля «Счет» и «СтатьяДДС».

  • Во втором запросе есть только «Счет» – поля «СтатьяДДС» в этом запросе нет.

Посмотрим, как поведет себя система, если мы в пользовательском режиме захотим отфильтровать отчет по полям «Счет» и «СтатьяДДС».

 

На слайде показано, как выглядит запрос компоновщика в платформе 8.3.12 – это не исходный запрос, а запрос, который нам скомпоновал компоновщик макета СКД.

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

Теперь давайте посмотрим, как этот механизм работает в версии платформы 8.3.13.

В первом запросе – все то же самое, а во втором запросе объединения все изменилось.

Поскольку поля «Статья ДДС» во втором запросе нет, 1С решили, что при наложении отбора на поле, которого нет в запросе объединения, СКД должна добавить в запрос отбор по условию NULL=значение параметра. То есть, в этом случае из второго запроса объединения никакие данные выбираться не будут.

Это изменение описано на сайте 1С.

Как же быть? Можно попробовать отключить в СКД флаг автозаполнения у набора данных «Запрос» и вручную проставить поля условий (поля, на которые возможно наложить отбор).

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

 

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

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

Я пробовал выносить второй запрос объединения во временную таблицу, выбирать из временной таблицы – результат остается тем же, данные из второй таблицы в итоговый отчет не выводятся. Действует правило, указанное на сайте 1С: если у вас объединение и удалось наложить отбор в один из запросов объединения, во втором запросе объединения отбор будет также наложен, и вы ничего не получите.

Но пришла платформа 8.3.14, и, к счастью, это поведение изменили – об этом также сказано на сайте 1С.

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

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

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

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

На нашем YouTube-канале я показываю много интересных кейсов решения задач по СКД.

upd: Начиная с платформе 8.3.18 поведение изменилось – теперь отбор на отсутствующие поля объединения не накладывается.

 

Вопросы

 

Встречали ли вы в типовых конфигурациях отчеты с первым кейсом – объединения двух виртуальных таблиц с выводом записей по регистратору?

В типовых конфигурациях подобного отчета я не видел. Данную задачу я решал при разработке нетипового отчета. Это было в УПП – надо было сравнить остатки и обороты по двум регистрам накопления – «ТоварыНаСкладах» и «ПартииТоваровНаСкладах».

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

Расскажите про ошибку с 8.3.13 – как вы с ней столкнулись?

В 2019-м году, когда была платформа 8.3.13 в ходу, коллега обратился – у него схема объединения двух запросов, накладываем отбор и у нас все записи из второго запроса объединения вообще не выбирается. Начали компоновать схему вручную – и в результате компоновщика макета мы увидели, что СКД добавляет отбор NULL=значение параметра.

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

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

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

По второму примеру – только автозаполнение отключать? Другого способа нет? Описывать вручную поля для большого запроса не очень удобно.

Если у вас платформа с версией выше 8.3.13 – решение этого кейса – отключать автозаполнение. Но я ничего страшного в этом не вижу.

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

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

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

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

Поскольку у нас объединение двух виртуальных таблиц по регистрам «ТоварныеЗапасы», то первые две строки не содержат показатель «КоличествоПродажи» – оно берется из регистра «Продажи». А третья строка данных – это уже информация из регистра накопления «Продажи». И здесь нет остатков, здесь есть только продажи. В этом и суть.

Кстати, отчеты по план-факту именно так и строятся – объединением запросов плана и факта. В типовых отчетах, которые показывают план-факт, эта задача решается аналогичным образом.

Сколько времени вы потратили, когда столкнулись с кейсом №2?

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

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

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

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

Итак, у нас запрос пакета – здесь все просто, объединение полей. На вкладке «Компоновка данных» мы все поля добавляем – все поля стали выбранными. И на вкладке «Условия» мы в данном случае для каждого запроса объединения добавляем все поля ресурсов.

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

 

 

На вкладке «Таблицы» закладки «Компоновка данных» есть кнопка «Параметры виртуальных таблиц». Здесь нам обязательно нужно будет прописать параметры для начала и конца периода, потому что когда мы отключаем флаг «Автозаполнение» у нас параметров «НачалоПериода» и «КонецПериода» не будет совсем. А в поле «Условие» мы добавляем измерения, на которые мы планируем накладывать отбор – и делаем это для обоих запросов объединения.

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

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

Флаг «Автозаполнение» позволяет ускорить процесс разработки схемы. В простых случаях, когда у вас запрос по одной или по двум таблицам – я согласен, что флаг «Автозаполнение» экономит время. Особенно потом, когда мы дорабатываем запрос. Но когда у вас сложный запрос, множество пакетов и вы боретесь за производительность, то наверное, придется снять автозаполнение и уже в консоли СКД смотреть, какой запрос компонует компоновщик – туда ли он накладывает отбор и оптимально ли это. Или может быть, нужно не здесь, а в другом месте отбор накладывать.

После корректного заполнения закладки «Компоновка данных» мы можем отключить флаг «Автозаполнение» и у нас ничего не потеряется – все настройки, все поля остались.

Может быть, кто-нибудь из старичков помнит объект «Построитель отчета», где дополнительно задавались настройки построителя. Здесь точно так же для компоновки.

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

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

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Практика применения СКД". Больше статей можно прочитать здесь.

Приглашаем всех 11-12 ноября принять участие в INFOSTART EVENT 2021 в Москве: event.infostart.ru/2021_msk/

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Hatson 487 09.11.21 12:14 Сейчас в теме
Но на уровне группировки «Товар» значение ресурса «КоличествоКонечныйОстаток» здесь тоже 0. Так получается из-за того, что у нас используется объединение наборов данных. Остатки и обороты мы объединили с продажами, это значение и пошло в значение конечного остатка на уровне группировки по товару.


Но речь идет всё же об объединении запросов, а не наборов. Это принципиально разные вещи. В следующем моем посте это важно учитывать.
7. echo77 1453 11.11.21 07:33 Сейчас в теме
(1) Согласен. Спасибо! Поправил
2. Hatson 487 09.11.21 12:17 Сейчас в теме
Как измениться поведение системы если вместо Объединения запросов использовать Объединение наборов? Возможно это поможет.
3. dhurricane 09.11.21 14:45 Сейчас в теме
(2) Пробовал, не помогает.
4. gybson 09.11.21 16:38 Сейчас в теме
(13)А в чем прикол такого отчета, если записи по документам дублируются? И в третьей позиции продажа 102 потерялась
5. dhurricane 09.11.21 20:53 Сейчас в теме
(4)
А в чем прикол такого отчета, если записи по документам дублируются?
Скорее всего автор не использовал группировку по полям периода и регистратора, а оставил детальные записи, дабы читателю нагляднее было, какие данные используются в отчете.
Drivingblind; echo77; +2 Ответить
6. TMV 14 10.11.21 10:15 Сейчас в теме
Я пробовал выносить второй запрос объединения во временную таблицу, выбирать из временной таблицы – результат остается тем же, данные из второй таблицы в итоговый отчет не выводятся
Кажется, надо выносить во временную таблицу именно первый запрос, а не второй.
Оставьте свое сообщение

См. также

Как просто запомнить алгоритм программного вывода в СКД Промо

СКД v8 v8::СКД Бесплатно (free)

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

01.09.2017    55284    unichkin    19    

КУ! или Нарезка графика продолжается

СКД v8 v8::СКД Россия Бесплатно (free)

Продолжение публикации https://infostart.ru/public/1639182/. Как справиться с неудачным отображением концов графика. Проверено в версии 8.3.13.1644.

23.04.2022    426    AnatolPopov    0    

Нарезка графика ломтями

СКД v8::СКД Россия Бесплатно (free)

Как в СКД простыми средствами улучшить отображение графика, которому слишком тесно на шкале. Проверено в версии 8.3.13.1644.

09.04.2022    596    AnatolPopov    0    

Убираем параметры из отбора СКД

Универсальные функции СКД v8 v8::СКД Бесплатно (free)

Заметка о некоторых технических нюансах параметров данных и отборов СКД.

17.02.2022    2745    Yashazz    28    

Полезности применения СКД Промо

СКД v8::УФ v8::СКД УТ10 Россия Бесплатно (free)

Нюансы при работе из СКД на программном уровне.

11.04.2012    53159    logarifm    42    

Отладка СКД

СКД v8::СКД Бесплатно (free)

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

08.02.2022    4744    ProfessionStore    2    

Программная работа и компоненты СКД

СКД v8::СКД Бесплатно (free)

На митапе «Практика применения СКД» выступил архитектор Digital Business Петр Базелюк. Он рассказал о том, как работать с СКД программно, и как, используя общедоступную библиотеку FoxyLink, создать свой процессор вывода результата СКД напрямую в формат JSON или в CSV.

04.02.2022    2819    pbazeliuk    3    

Реализация отборов на форме с помощью СКД

СКД v8 v8::СКД 1cv8.cf Бесплатно (free)

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

28.12.2021    4645    quazare    6    

СКД программно для обработки (не отчета) + программное восстановление значений полей из настроек для управляемых форм Промо

СКД v8::СКД 1cv8.cf Бесплатно (free)

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

29.01.2014    96235    anig99    26    

Как указать время в периоде типового отчета (СтандартныйПериод, СКД) в системах класса WMS, MES, SCADA, АСУ ТП на 1С, построить отчет за период с временем?

СКД v8 1cv8.cf Бесплатно (free)

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

13.12.2021    1154    SizovE    0    

Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)

СКД v8 v8::УФ 1cv8.cf Бесплатно (free)

Как построить отчет Анализ продаж или Остатки товаров с отбором/фильтром по списку кодов товаров/артикулов или ИНН покупателей из Эксель файла? Покажем, какой код нужно добавить в конфигурацию 1С (в том числе нетиповую), чтобы в любом отчете/отборе СКД/обработке можно было заполнять отбор по excel файлу, текстовому файлу или просто по списку строк - удобно и быстро.

23.11.2021    1215    SizovE    3    

Варианты применения СКД вне отчетов в отраслевых конфигурациях

СКД v8::СКД Бесплатно (free)

Директор и ведущий разработчик компании «Арт Порт» Максим Артеменко выступил на митапе, посвященном практике применения СКД. Максим рассказал о вариантах применения механизма настроек СКД для решения нестандартных задач – визуального оформления, сегментирования данных и автоматического заполнения примечаний к документам.

18.11.2021    2736    drmaxart    0    

СКД. Вставка разрыва страницы Промо

СКД v8::СКД 1cv8.cf Россия Бесплатно (free)

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

29.10.2011    57652    stoptime    58    

Грабли на СКД

СКД v8 v8::СКД Россия Бесплатно (free)

Наиболее частые проблемы, с которыми сталкиваются программисты 1С при разработке отчетов на СКД.

02.11.2021    6083    echo77    17    

СКД: 5 советов, как сделать лучше

СКД v8 v8::СКД 8.3.14 Бесплатно (free)

Несколько примеров решения задач с использованием разных подходов

27.10.2021    6954    Neti    19    

Программное создание отчета на СКД с расшифровкой (обычные формы)

СКД v8::СКД 1cv8.cf Бесплатно (free)

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

04.10.2021    1497    Neti    4    

Создаем отчет с заданной периодичностью на СКД Промо

СКД v8::СКД 1cv8.cf Россия Бесплатно (free)

Учимся создавать отчет с заданной периодичностью с использованием СКД.

16.04.2012    81645    Lyns_owner    38    

Программное открытие отчета СКД с параметрами и отбором

СКД v8 v8::УФ v8::СКД Бесплатно (free)

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

07.08.2021    10929    Eugen-S    20    

Объект "Схема запроса" и расширения языка запросов СКД

СКД v8 v8::Запросы Россия Бесплатно (free)

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

18.07.2021    2793    mysm    14    

СКД: скрываем нужные группы (блоки) по требованию пользователя

СКД v8::СКД 1cv8.cf Бесплатно (free)

Видимость блоков в определённой группе, регулируемая пользователем в отчёте СКД.

14.07.2021    3968    olja-ljaaa    7    

Изменение расшифровки макета СКД до компоновки

СКД v8 v8::СКД Бесплатно (free)

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    2774    Yashazz    6    

Чтоб в СКД по таблице значений был порядок!

СКД v8::СКД Бесплатно (free)

Сортировка СКД и источник - таблица значений. Заметка.

28.06.2021    1804    Yashazz    0    

Учебный пример программного формирования схемы компоновки данных: Универсальный отчет по регистрам накопления

СКД v8 Бесплатно (free)

Разберём учебную задачу создания Универсального отчета по оборотным регистрам накопления конфигурации.

14.06.2021    4038    maraton1185    4    

Формирование отчета СКД с расшифровкой из обработки

СКД v8 v8::СКД 1cv8.cf Бесплатно (free)

Формирование отчета СКД из обработки немного отличается от формирования из отчета.

27.04.2021    4814    John_d    14    

Нестандартное использование СКД

СКД v8::СКД Бесплатно (free)

Программист 1С в компании «БКС-технологии» Алексей Шиянов в ходе Infostart Meetup Novosibirsk продемонстрировал необычный способ использования СКД и сравнил результаты заполнения движений документа через СКД с классическим подходом к заполнению движений через запросы и циклы.

14.04.2021    4592    user1127305    11    

Полезные примеры СКД, ч.2

СКД v8 v8::СКД Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    13546    Neti    8    

Пример платежного календаря. СКД. Работает на любой платформе, без привязки к данным. Подробное описание действий

СКД v8 v8::СКД 1cv8.cf Бесплатно (free)

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

02.04.2021    1647    parshachello    2    

Полезные примеры СКД, ч.1

СКД v8::СКД Бесплатно (free)

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    17182    Neti    21    

Отбор на форму (документа, справочника, обработки) с помощью СКД

СКД v8 v8::СКД 1cv8.cf Бесплатно (free)

Добавляем удобный отбор на форму документа с помощью СКД

09.02.2021    7273    John_d    15    

Перенос/копирование и установка отбора/фильтра/периода при интерактивном переключении или смене варианта отчета/СКД в БСП 3.1 (1C ERP, УТ, БП, ...)

СКД v8 1cv8.cf Бесплатно (free)

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

18.01.2021    2083    SizovE    4    

Установка нескольких фильтров/отбора СКД в табличной форме, хранение в табличной части для отправки push/email уведомлений (ОтборКомпоновкиДанных, КомпоновщикНастроек, ДинамическийСписок)

СКД v8 v8::УФ v8::СКД Бесплатно (free)

Рассмотрим, как организовать установку фильтров/отбора СКД (динамического списка) на push/email уведомления в подсистеме EDIbot (WebApp) для 1С в табличной части "События уведомлений".

02.11.2020    1797    SizovE    0    

Пользовательское поле СКД одной процедурой

СКД v8 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    2525    Yashazz    0    

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

СКД v8::СКД 1cv8.cf Бесплатно (free)

В СКД создан набор данных "Запрос". Запрос выполняется к виртуальной таблице "Остатки и обороты", периодичность регистра "Авто", выбираются все измерения и ресурсы регистра, а так же выбирается Регистратор и ПериодСекунда. Для полей содержащих остатки устанавливается роль "Остатки". Для полей "Регистратор" и "ПериодСекунда" устанавливается роль "Период". Для поля "Регистратор" устанавливается выражение упорядочивания.

24.05.2020    8445    kasper076    18    

Макет оформления в отчете с несколькими СКД

СКД v8::СКД Россия Бесплатно (free)

Как заставить работать макет оформления в отчёте с несколькими СКД.

14.05.2020    5248    vendim    2    

СКД. Использование Менеджера временных таблиц в системе компоновки

СКД v8 v8::Запросы v8::СКД 1cv8.cf Бесплатно (free)

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

29.04.2020    14403    the1    48    

Ограничения полей, или как обмануть СКД?

СКД v8 v8::СКД 1cv8.cf Бесплатно (free)

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

15.04.2020    19400    SeiOkami    41    

Работа с запросами в 1С СКД. Отладка СКД

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

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

15.04.2020    5624    ProfessionStore    3    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

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

13.04.2020    9877    ProfessionStore    4    

СКД: Прозрачная обработка результата

СКД v8::СКД 1cv8.cf Бесплатно (free)

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

13.04.2020    6466    starik-2005    16    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 2

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

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

12.04.2020    8083    ProfessionStore    11    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 1

СКД v8::Запросы v8::СКД 1cv8.cf Россия Бесплатно (free)

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

11.04.2020    13434    ProfessionStore    9    

Работа с запросами в 1С СКД. Язык выражений СКД и подмена запросов

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

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

11.04.2020    12397    ProfessionStore    25    

Работа с запросами в 1С СКД. Примеры использования расширения языка запросов СКД

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

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

10.04.2020    10733    ProfessionStore    5    

Запросы 1С СКД. Возможности и ограничения

СКД v8::Запросы v8::СКД Россия Бесплатно (free)

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.

10.04.2020    14156    ProfessionStore    14    

Вложенные СКД

СКД v8 v8::СКД Бесплатно (free)

Возможности, нюансы, заметки.

26.03.2020    11005    Yashazz    19