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

Публикация № 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?

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

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

 

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

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

Больше статей можно прочитать здесь.


 

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

 

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

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


Но речь идет всё же об объединении запросов, а не наборов. Это принципиально разные вещи. В следующем моем посте это важно учитывать.
7. echo77 1726 11.11.21 07:33 Сейчас в теме
(1) Согласен. Спасибо! Поправил
2. Hatson 514 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 Сейчас в теме
Я пробовал выносить второй запрос объединения во временную таблицу, выбирать из временной таблицы – результат остается тем же, данные из второй таблицы в итоговый отчет не выводятся
Кажется, надо выносить во временную таблицу именно первый запрос, а не второй.
Оставьте свое сообщение

См. также

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

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

07.02.2023    3286    quazare    7    

36

Выборочная свертка группировок для СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

16.01.2023    1752    schthaxe    3    

27

Разрабатываем отчет на СКД, содержащий данные из расширения

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

17.10.2022    3961    al_zzz    9    

44

Хитрости СКД. Часть 4

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

12.10.2022    5107    milkers    17    

45

Тестовая задача: таблица умножения на СКД

СКД Платформа 1С v8.3 Бесплатно (free)

Альтернативное решение предложенной задачи.

14.06.2022    4209    81    echo77    6    

38

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.05.2022    6671    milkers    11    

87

Отчет на СКД с использованием форм из БСП. Варианты передачи списка значений в параметр СКД

БСП (Библиотека стандартных подсистем) СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

20.04.2022    5329    eugene-p    8    

28

По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Как скрестить формирование отчетных данных с помощью СКД и вывод в табличный документ с помощью Макет.ПолучитьОбласть(...) и ТабДок.Вывести(Секция)? А также сделать этот процесс простым и удобным? Об этом в статье ниже.

1 стартмани

22.03.2022    4866    Alxby    8    

47

Редактирование данных в ячейках СКД (простая реализация)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

11.03.2022    8536    7    Flashill    20    

52

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

Универсальные функции СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

17.02.2022    5413    Yashazz    29    

31

Шаблон отчета на СКД (обычные формы)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

14.02.2022    6693    19    Eugen-S    4    

9

Отладка СКД

СКД Система компоновки данных Бесплатно (free)

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

08.02.2022    10616    ProgrammingStore    5    

85

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

СКД Система компоновки данных Бесплатно (free)

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

04.02.2022    4551    pbazeliuk    4    

69

Доработка типового отчета на СКД с помощью расширения

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

09.01.2022    9365    Spacer    9    

26

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.12.2021    14545    quazare    6    

130

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

СКД Система компоновки данных Бесплатно (free)

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

18.11.2021    3715    drmaxart    0    

42

Грабли на СКД

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

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

02.11.2021    15175    echo77    17    

136

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

СКД Платформа 1С v8.3 Система компоновки данных 8.3.14 Бесплатно (free)

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

27.10.2021    12542    Neti    19    

192

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

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Бесплатно (free)

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

07.08.2021    29192    Eugen-S    35    

102

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

СКД Платформа 1С v8.3 Запросы Россия Бесплатно (free)

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

18.07.2021    3399    mysm    14    

27

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

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

12.07.2021    4351    Yashazz    7    

37

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

27.04.2021    6830    John_d    14    

74

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    5333    SergeyN    13    

39

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

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

06.04.2021    18255    Neti    9    

215

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

СКД Система компоновки данных Бесплатно (free)

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

30.03.2021    23028    Neti    21    

364

Динамическая расшифровка СКД (на примере отчета)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Предлагаю Вашему неподкупному вниманию вариант более-менее унифицированной реализации динамически формирующейся расшифровки СКД на примере простейшего отчета для конфигурации УТ 11.

1 стартмани

08.12.2020    3668    mr_sav    3    

23

СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

07.12.2020    12017    user1502278    23    

58

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

08.10.2020    25380    dabu-dabu    18    

238

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

СКД Платформа 1С v8.3 Бесплатно (free)

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

05.08.2020    3167    Yashazz    0    

23

Быстрое формирование наборов данных Объект схемы СКД

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.07.2020    12649    8    Алексей Воробьев    16    

56

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

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

24.05.2020    13347    kasper076    19    

26

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

СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

29.04.2020    20098    ixijixi    50    

112

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

15.04.2020    28926    SeiOkami    43    

125

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

СКД Запросы Система компоновки данных Россия Бесплатно (free)

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

15.04.2020    7513    ProgrammingStore    3    

33

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

СКД Запросы Система компоновки данных Россия Бесплатно (free)

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

13.04.2020    12765    ProgrammingStore    5    

51

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

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

13.04.2020    7882    starik-2005    17    

45