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

Публикация № 1224243 15.04.20

Разработка - СКД

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

Каждый одинэсник знает, что такое СКД. И каждый видел (а может, даже и использовал) эти замечательные галочки ограничений у полей.

 

 

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

Но мало кто знает, что эти ограничения можно обойти. Давайте проведём эксперимент?

Делаем простой отчет. Для теста возьмём демо-базу ERP 2.4 (но конфигурация не важна). И платформу 8.3.16.1030. На разных версиях платформы могут отличаться нюансы, однако, в общем, описанное ниже будет работать везде.

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

 

Пока никаких ограничений у полей делать не будем и просто выведем все поля в отчет. А в отбор добавим Организация.ИНН и выведем его в быстрый доступ:

 

А в ПриКомпоновкеРезультата() добавим код, который будет нам выводить текст выполняемого запроса.

 

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

Отбор прекрасно сработал

Глянем выполняемый СКД запрос.

СКД любит делать параметры с именем "П" =)

Всё работает как надо. А теперь поставим ограничение на использование реквизитов поля "Огранизация" в отборах:

Достаточно просто нажать на эту галочку

В настройках видно, что наш отбор помечен красным крестиком.

 

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

интересно, что теперь поле растянуто

Но пусть, главное же, что он не сработает. Или же...

 

Как видим, отбор сработал. Может мы что-то перепутали? Давайте откроем здесь же в предприятии наш вариант по кнопке "Изменить вариант отчета"

 

Всё верно, отбор помечен красным. И в доступных полях нельзя выбрать реквизиты организации.

 

А что же стало с наши запросом?

 

Действительно, отбор сработал. И наложился на запрос, несмотря на ограничения.

А что если мы ограничим не только реквизиты поля, но и самого его?

 

Выполняем отчет

 

Отбор опять сработал. А что с остальными ограничениями?

Возьмёмся за ограничение выбора. Сначала выведем в отчет ИНН организации. Ну и для наглядности уберем из запроса "ПЕРВЫЕ 10".

 

Сделаем вывод реквизитов отдельной колонкой и посмотрим на результат

 

Всё хорошо. Теперь запретим пользователям выбирать реквизиты поля "Организация":

 

И попробуем выполнить отчет снова:

 

Как видим, ИНН не выводится. Хоть в настройках он и остался:

 

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

 

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

 

И выведем его в отчет

 

Проверим результат в базе

 

А теперь снова установим ограничение на выбор реквизитов организации

 

И проверим результат

 

Поле выводится! А что с запросом?

 

Да, поле попало в запрос. А что, если запретить выбор самого поля "Организация"?

 

Формируем отчет:

 

Поле вывелось. Организация пропала, а пользовательское поле всё равно работает. А что в запросе?

 

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

 

А если снять Автозаполнение?

Есть возможность в СКД отключить галку "автозаполнение" и в запросе полностью описать разрешенные поля.

На этом примере мы в доступных для отбора полях не указали "Организация"

 

Но это тоже не помогает и отбор сработает:

 

Но, что интересно, запрос такой:

 

Заметьте, отбора в запросе нет. Но есть выборка Организация.ИНН. А это значит, что фильтрация произойдёт не на уровне SQL, а на Сервере Приложений 1С. (интересно, как это скажется на скорости)

Установка ограничений на поля в самой СКД опять же не помогает

 

Но попробуем доработать запрос и убрать у него реквизиты организации из списка доступных к выбору полей. Для этого просто уберём ".*" :

 

Что теперь будет?

 

Отбор всё равно сработал. Но интересно, что в запросе нет выбора ИНН организации. Как же 1С фильтрует записи? На самом деле нужно копнуть глубже, а для этого глянем макет компоновки:

 

Теперь в наборах данных появился набор "ОрганизацияРеквизиты". А в нём такой запрос

 

СКД усердно старается выполнить условие, которое должно игнорироваться. Какая сила воли!

Остаётся ещё один вариант - вообще убрать поле "Организация" из доступных к выбору. В этом запросе, оно не указано в {} (хоть и указано в основном запросе).

 

И что теперь?

 

Наконец-то! Теперь уж точно пользователи не смогут наложить отбор. Правда и поле вывести... И, конечно, это не решение проблемы. Но эксперимент мы провели)

 

Ну и зачем нам всё это знать?

 

 

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

Во-первых, для понимания, как работает СКД. Ограничения влияют на пользовательскую доступность, а не на логику отчета. Частично, СКД проверяет и обрезает поля при формировании. Но не всегда, не везде и не совсем =)

Во-вторых, когда вы столкнётесь со странной ситуацией, вы вспомните об этой статье.

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

Пример из жизни. Жил да был сложный отчет с большим запросом. И пользователи любили в этом отчете выводить реквизиты регистратора. И реквизиты реквизитов регистратора. И делать на них отборы (да ещё и на табличные части). И сильно нагружали этим базу. Аналитики поговорили с пользователями, уточнили все их нужды и разработчик доработал запрос отчета так, чтобы он удовлетворял потребностям пользователей, но при этом меньше нагружал базу. А на поле "Регистратор" наложил ограничения реквизитов. Всё вроде бы хорошо, но в базе осталось множество пользовательских вариантов отчетов, которые содержали отборы типа "Регистратор.Реквизит.Реквизит". И, несмотря на ограничения в СКД, отчет всё равно нагружал базу, ведь отборы работали.

 

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

 

И загрузить из файла 😉

 

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

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

Вот так выглядит наш отбор по ИНН в XML:

 

А однажды мы нашли ситуацию, когда пользовательский вариант отчета накладывал значение на скрытый параметр. А от него зависела логика варианта отчета. Так что всякое в жизни случается =)

Хотите ещё один способ нарушить правила?

В режиме предприятия заходим в "Изменить вариант". Как видите, наложить отбор ни на ИНН ни на Организацию нельзя:

 

Нажимаем волшебную кнопку "Изменить форму"

 

В элементах находим "Доступные поля полей" и переносим на закладку с отборами:

 

Теперь у нас слева таблица с доступными к выбору полями, по центру с доступными к отбору, а справа сам отбор.

 

А сейчас просто мышкой переносим поле Организация.ИНН с самой левой таблицы в самую правую. Как вам результат?)

 

Да, поле с красным крестиком. Но отбор всё равно сработает.

 

 

И что же теперь делать?

Вот мы приблизились к решению. И оно простое:

 

Этот метод хорош и будет спасать нас в большинстве случаев. Если в ПриКомпоновкеРезультата() вы вставите этот метод, то убережёте себя от большинства таких проблем. Просто, не правда ли? Но крайне редко такое делается.

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

Помните пользовательские поля? Давайте поиграем. Возьмем такой запрос:

 

У нас нет возможности фильтровать ни по организации, ни по её реквизитам. А теперь добавляем новое пользовательское поле (даже в режиме предприятия).

 

И делаем на него отбор

 

И что получится?

 

Вуаля! Мы обошли запреты.

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

 

И вишенка на торте. КомпоновщикНастроек.Восстановить() НЕ ПОМОГАЕТ.

В данной ситуации, пользовательское поле не является запрещенным. И при его помощи можно наложить и отборы. Можно наложить отборы и сложнее:

 

Вот такой при этом будет запрос

 

 

 

Какие выводы?

 

Сеньор Одинэсник

 

У СКД нет жёстких ограничений.

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

  1. Используйте КомпоновщикНастроек.Восстановить()
  2. Снимайте галку "Автозаполнение" (вы ещё ей пользуетесь?)
  3. При обновлении отчётов, обрабатывайте пользовательские варианты
  4. Ограничивать не только отбор подчиненных, но и выбор

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

И да пребудет с вами сила!

 

Понравилась статья?

Подайте знак автору =) Поставьте лайк звездочку и оставляйте комментарий



UPDATE: поддержка 1С ответила следующее:

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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 15.04.20 09:55 Сейчас в теме
на самом деле важно только одно

3. При обновлении отчётов, обрабатывайте пользовательские варианты


это очень муторно, конеш - но делать надо.
остальные байки мол, хитропопый выгружал настройки в файл, правил, загружал,
менял форму и пр. очень просто лечиться настройкой прав.
triviumfan; +1 Ответить
2. SeiOkami 2754 15.04.20 09:56 Сейчас в теме
(1)
очень просто лечиться настройкой прав.

То есть вы предлагаете отбирать у пользователя права сохранения своих вариантов отчётов? Достаточно радикально
nekit_rdx; d4rkmesa; rpgshnik; TeMochkiN; +4 Ответить
3. VmvLer 15.04.20 10:04 Сейчас в теме
(2) запретить сохранять в файлы и менять форму как минимум - зачем это в отчетах?
для особо уникальных запретить сохранять "для всех"
для матерых запретить даже "для себя"
в исключительных случаях кодом блокировать и "ругаться"
... еще 100500 вариантов "карантина".

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

ЗЫ: Отборы через точку зло и за это зло необходимо наказывать сначала программиста, а потом пользователя.
4. SeiOkami 2754 15.04.20 10:12 Сейчас в теме
(3)

запретить сохранять в файлы и менять форму как минимум


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

Вы уверены, что это действительно лучше, чем просто КомпоновщикНастроек.Восстановить() ?)
5. VmvLer 15.04.20 10:24 Сейчас в теме
(4) вроде мои посылы понятны и ваши фантазии о деталях не уместны.

Это ограничит возможности пользователей


да, именно это и есть главный мотив, задача и обязанность спеца - ограничить пользователя,
ибо пользователь с расширенными правами обязательно будет косячить и чем больше его возможности - тем больше он будет делать что-то не так.
6. SeiOkami 2754 15.04.20 10:28 Сейчас в теме
(5)
фантазии о деталях не уместны


Почему неуместны? Как раз важна реализация.

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

главный мотив, задача и обязанность спеца - ограничить пользователя

Это спорное утверждение

ибо пользователь с расширенными правами

Это стандартные права пользователей. О расширенных тут не говорится.
TeMochkiN; d4rkmesa; +2 Ответить
7. VmvLer 15.04.20 10:32 Сейчас в теме
(6) я не сбираюсь развивать диспут

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

для ток шоу и бла-бла-бла как раз покатит)
8. SeiOkami 2754 15.04.20 10:33 Сейчас в теме
(7) ок, уровень аргументации ясен =)
mongiilol; ubnkfl; nekit_rdx; aposumks; TeMochkiN; larisab; d4rkmesa; VitaliyCeban; ice-net; BackinSoda; CyberCerber; ixijixi; +12 Ответить
9. bulpi 209 15.04.20 11:47 Сейчас в теме
Вот за такую фигню я и не люблю СКД.
29. qwinter 654 17.04.20 10:43 Сейчас в теме
(9) а я за это СКД как раз люблю.
10. toypaul 63 15.04.20 14:19 Сейчас в теме
лайкосик. особенно за обход через пользовательские поля. 1С дырявая
11. rpgshnik 3316 16.04.20 03:16 Сейчас в теме
12. PerlAmutor 129 16.04.20 08:50 Сейчас в теме
У 1С в принципе с ограничениями не очень все гладко. Во многих случаях приходится "заметать под ковер". Не нашло большинство пользователей - меньше головной боли. Я тоже устал вычищать сохраненные пользователями варианты отчетов и перезаписывать программно те ключевые параметры до которых они добрались. Например в ERP вообще сделано так, что пользователь просто обязан загубить производительность сервера. Разработчики додумались в базовые права пользователя включить отчет "Места использования". На формах разрешили использовать полнотекстовый поиск, да еще и по-подстроке (ни по началу или точному совпадению). Понавыводили в формы списков реквизиты "Ссылка", чем не гнушаются активно пользоваться. Особо продвинутые умудряются использовать вкладку "Группировка", чтобы сгруппировать все договоры по контрагенту например... Потом звонят и жалуются, что все тормозит или форма вообще перестала открываться. Правильно, там такие отборы понастроены, что откроется она только, когда сервер перелопатит всю базу соединив левым соединением сотни таблиц из Ссылки составного типа...
14. starik-2005 2808 16.04.20 09:14 Сейчас в теме
+

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

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

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

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

Но тем не менее лайк заслуженнй! )))
Yashazz; nekit_rdx; duhin; dabu-dabu; cefew; support; +6 Ответить
13. zqzq 23 16.04.20 09:08 Сейчас в теме
Вечная борьба бобра с ослом. Меня больше всего напрягает в СКД возможность выбора полей типа "Регистратор.Товары.Номенклатура" с рандомным результатом, где Товары это ТЧ (не знаю, исправили ли в новых версиях платформы).
18. improg 270 16.04.20 09:44 Сейчас в теме
(13) Это скорее к разработчику, а не к платформе.
19. SeiOkami 2754 16.04.20 09:57 Сейчас в теме
(18) почему к разработчику?
23. improg 270 16.04.20 17:45 Сейчас в теме
(19)потому что не нужно давать возможность вытаскивать поля через регистратор.
20. zqzq 23 16.04.20 10:23 Сейчас в теме
(18) В том-то и дело, что пользователи меняют настройки выбранных полей и такое выбирают. Помогает только добавление вычисляемого поля "Регистратор.Товары" равному пустой строке, но это костыль.
21. SeiOkami 2754 16.04.20 10:44 Сейчас в теме
(20) вообще, к сожалению, в СКД нельзя нормально ограничить обращение к конкретным реквизитам поля.
Не так, что либо "можно обращаться к любому реквизиту", либо "нельзя обращаться к реквизитам"
32. Activity 19.05.20 12:46 Сейчас в теме
(21) Потребовалось обеспечить именно такое ограничение, коллеги задумались о безопасности некоторых данных и это вызвало некоторые проблемы. Пока не решено как обеспечивать. А именно поле должно быть доступно только из рабочего места, а в отчетах и другом запретить выводить

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

Но, в теории, чтобы наверняка ограничить доступ похоже нужно выводить исключительно примитивные типы данных. Т.е. формировать таблицу отдельно (например запросом) и передавать её в скд, а уже с помощью скд обеспечивать вывод информации. Таким образом пользователь сможет делать отборы, группировки и т.д. но не доберется до лишней информации
33. SeiOkami 2754 19.05.20 13:29 Сейчас в теме
(32)
А именно поле должно быть доступно только из рабочего места, а в отчетах и другом запретить выводить

Не знаю, конечно, подробностей вашей ситуации, однако, мы реализовывали хранение в БСПшном регистре "Безопасное хранилище данных".
34. Activity 19.05.20 14:18 Сейчас в теме
(33)
Согласен, хороший подход, с не большим изменением структуры хранения данных (т.е. сейчас данные хранятся в справочнике, а будет в регистре). по идее как вариант решения будет обеспечить безопасное хранение конкретной информации

В целом тема интерес вызвала т.к. на лету однозначный ответ не нашелся
36. FlyVodolaz 21.05.20 22:41 Сейчас в теме
(21)
вообще, к сожалению, в СКД нельзя нормально ограничить обращение к конкретным реквизитам поля.
Не так, что либо "можно обращаться к любому реквизиту", либо "нельзя обращаться к реквизитам"

Если очень хочется, то можно достаточно просто
ВЫБРАТЬ
	Валюты.Ссылка КАК Валюта,
	Валюты.ПараметрыПрописи КАК ПараметрыПрописи
ПОМЕСТИТЬ Валюты
ИЗ
	Справочник.Валюты КАК Валюты

Теперь если в таблице поля у реквизита "ПараметрыПрописи" изменить путь на "Валюта.ПараметрыПрописи" и поставить ограничение поля, то из доступных отборов исчезает только это поле
37. SeiOkami 2754 22.05.20 06:37 Сейчас в теме
(36) да, подобный костыль описывали в (20). Но это всё равно костыль)
38. FlyVodolaz 22.05.20 13:28 Сейчас в теме
(37) Там целиком зануляют. А в моем примере, поле можно оставить в отборах и скрыть из выводимых или наоборот.
24. improg 270 16.04.20 18:04 Сейчас в теме
(20)если изначально как только зародился отчёт наложить ограничение, проблем описанных в статье не будет, а мы все прекрасно знаем что к регистратору в запросе нужно относиться аккуратно.
26. SeiOkami 2754 16.04.20 18:37 Сейчас в теме
(24) в статье указано несколько способов обойти ограничения. Как минимум, пользовательские поля дают лёгкий обход )
40. Dansur 261 10.06.21 20:11 Сейчас в теме
(26) настройки скд на то и настройки, чтобы пользователь мог получить информацию ему нужную без программиста. Да - ограничения полей в скд работают слабо - согласен, но вопросы кониденциальности нужно решать не настройками полей скд, а настройкой прав и RLS.
25. improg 270 16.04.20 18:06 Сейчас в теме
(20)по возможности вообще там его не использовать.
15. Поручик 4618 16.04.20 09:17 Сейчас в теме
Я и мой коллега пользуемся Автозаполнением и чо?
Vlad_2008; VitaliyCeban; +2 Ответить
35. FlyVodolaz 21.05.20 22:27 Сейчас в теме
(15)
Я и мой коллега пользуемся Автозаполнением и чо?

Хотя-бы потому, что автозаполнение работает на поля всех таблиц, а не последней. Т.е. запрос вида
ВЫБРАТЬ
	Валюты.Ссылка КАК Валюта
ПОМЕСТИТЬ Валюты
ИЗ
	Справочник.Валюты КАК Валюты
{ГДЕ
	Валюты.Ссылка КАК Валюта}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	РеализацияТоваровУслуг.Ссылка КАК Реализация,
	РеализацияТоваровУслуг.ВалютаДокумента КАК Валюта
ИЗ
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		ЛЕВОЕ СОЕДИНЕНИЕ Валюты КАК Валюты
		ПО РеализацияТоваровУслуг.ВалютаДокумента = Валюты.Валюта
ГДЕ
	Валюты.Валюта ЕСТЬ NULL
Показать

При отбора скажем Валюта=руб.
Без автозаполнения выведет все не рублевые документы. А с автозаполнением не выведет ничего. И когда запрос не из двух подзапросов состоит, очень легко поймать такие накладывания полей
16. improg 270 16.04.20 09:28 Сейчас в теме
Дык надо в 1С писать чтобы латали дыры ))
17. improg 270 16.04.20 09:32 Сейчас в теме
Удивляться нечему чем больше возможностей в платформе, тем больше дырок, для 1С тем более, всегда были дырки и будут.
22. 79123890854 16.04.20 14:14 Сейчас в теме
Риторический вопрос:
Зачем обманывать инструмент? Может лучше выбрать другой интсрумент?
27. NeSPEC 17 16.04.20 19:58 Сейчас в теме
(22)
Зачем обманывать инструмент? Может лучше выбрать другой интсрумент?

К сожалению этот корявый инструмент - а именно саму (по большому счету, а не СКД) в настоящий момент заменить чем-то другим проблематично.
30. starik-2005 2808 20.04.20 15:27 Сейчас в теме
(27)
К сожалению этот корявый инструмент - а именно саму 1С (по большому счету, а не СКД) в настоящий момент заменить чем-то другим проблематично.
Я бы сказал, что в части BI ее заменить проще простого, но все упирается в компетенции разработчиков, которые о BI или не слышали, или оно для них что-то типа черного ящика Пандоры )))
28. qwinter 654 17.04.20 10:42 Сейчас в теме
Офигеть, вроде столько известных авторов комментирует статью и только сейчас узнали как работают ограничения и обрабатываются характеристики в СКД.
41. Yashazz 4476 24.08.21 19:19 Сейчас в теме
(28) Кстати будешь смеяться - я тоже не все финты из описанных знал. Не было времени и желания копать. Автору - спасибо и плюс.
31. echo77 1705 22.04.20 14:57 Сейчас в теме
(0) На каких платформах тестировалось? Может это баг? :-)
39. SeiOkami 2754 04.02.21 11:35 Сейчас в теме
Добавлен в статью ответ от поддержки 1С
42. user1274184 01.10.22 11:56 Сейчас в теме
Спасибо за статью! Я попытался сделать подобное и вывести текст запроса СКД через Сообщить или Сообщение пользователю, но сообщение не выводится, хотя в конфигураторе текст получается. Подскажите, пожалуйста, в чем может быть дело?
43. SeiOkami 2754 01.10.22 12:18 Сейчас в теме
(42) Возможно, отчет формируется в отдельном фоновом задании и сообщение остаётся там. Но можно просто заменить "Сообщить" на "ЗаписьЖурналаРегистрации"
user1274184; +1 Ответить
Оставьте свое сообщение

См. также

Добавление своей строки в отчет СКД

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

Иногда требуется добавить свою строку в начала или в конец отчета. Простейший способ сделать это.

15.03.2023    958    FloNes    11    

2

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

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

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

07.02.2023    2487    quazare    7    

33

СКД: Ошибка: поле объекта недоступно для записи

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

Ошибка, которая может возникнуть при программном написании отчета СКД.

31.01.2023    587    user1728007    2    

8

СКД: не очищается результат при формировании отчета

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

При программном создании отчета СКД форма отчета выводится последовательно столько раз, сколько раз нажимается кнопка "Сформировать" в пользовательском режиме.

30.01.2023    449    user1728007    1    

7

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Особенность задания периода в запросе в СКД

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

Не используйте предопределённые названия переменных НачалоПериода, КонецПериода в текстах запросов в СКД. Остальное можно не читать.

11.11.2022    1658    slicem    10    

5

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

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

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

17.10.2022    2933    al_zzz    9    

43

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

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

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

12.10.2022    4589    milkers    17    

44

В помощь начинающим 1С-программистам: СКД. Отчет с разбивкой по периодам (год, месяц) и детализацией по документам

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

В помощь начинающим программистам. Такой информативный отчет мы создадим с помощью Системы компоновки данных. Чтобы научиться создавать и более сложные отчеты, рекомендую к прочтению книгу Е.Ю. Хрусталевой "Разработка сложных отчетов в 1С: Предприятие. Система Компоновки Данных".

18.07.2022    4739    Pproksima    1    

17

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

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

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

28.05.2022    6261    milkers    11    

86

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

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

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

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

23.04.2022    698    AnatolPopov    0    

4

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

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

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

09.04.2022    883    AnatolPopov    0    

7

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

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

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

17.02.2022    4829    Yashazz    29    

31

Отладка СКД

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

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

08.02.2022    9484    ProgrammingStore    5    

83

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

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

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

04.02.2022    4231    pbazeliuk    4    

67

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

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

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

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

28.12.2021    12249    quazare    6    

127

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

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

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

13.12.2021    3772    SizovE    0    

8

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

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

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

23.11.2021    4021    SizovE    3    

11

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

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

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

18.11.2021    3515    drmaxart    0    

42

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

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

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

08.11.2021    5897    echo77    7    

97

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Грабли на СКД

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

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

02.11.2021    12797    echo77    17    

131

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

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

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

27.10.2021    11474    Neti    19    

190

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

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

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

04.10.2021    3545    Neti    4    

18

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

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

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

07.08.2021    25114    Eugen-S    28    

94

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

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

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

18.07.2021    3291    mysm    14    

27

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

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

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

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

14.07.2021    7078    olja-ljaaa    10    

18

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

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

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

12.07.2021    4024    Yashazz    7    

37

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

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

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

28.06.2021    2582    Yashazz    0    

9

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

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

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

27.04.2021    6343    John_d    14    

73

Готовые переносы данных из различных конфигураций 1C Промо

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

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

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

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

14.04.2021    5464    user1127305    13    

22

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

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

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

07.04.2021    5069    SergeyN    13    

39

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

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

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

06.04.2021    17474    Neti    9    

213

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

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

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

02.04.2021    2372    parshachello    2    

7

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

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

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

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

30.03.2021    22048    Neti    21    

363

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

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

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

05.08.2020    3070    Yashazz    0    

23