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

Публикация № 1133780 10.10.19

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

СКД код работы

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

Внимание! Всё это написано во времена 8.1 и до появления настоящей БСП и многих современных инструментов!

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

 
 Общие действия
 
 Работа с построителями и запросами
 
 Работа с СКД

 

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

Если кому пригодится, будет хорошо. Если кто заметит косяки - пишите, плиз, буду исправлять.

Кусок из этого моего функционала также можно увидеть в плагиате: //infostart.ru/1c/articles/575659/ - означенный плагиат хорош только тем, что имена переменных более привычны для большинства.

Использовалось на 8.3.15.1565, но мало менялось со времён 8.3.6.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. json 3208 11.10.19 08:17 Сейчас в теме
Да это же Яков Коган, который очень любит писать в комментариях к публикациям, что они баяны. Никогда не приводя доказательств.

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

Вопрос тогда тебе автор, следующий: такой супер профессионал не знает про функцию ТРег() или просто любит писать велосипеды?

Ну и набор функций по работе с построителем кому выложил? Думаешь, что построитель еще кто-нибудь использует?
Award; mvxyz; Neuroproton; CodeNull; AlX0id; LeXXeR; CyberCerber; Йожкин Кот; PLAstic; A_Max; +10 Ответить
2. hasp_x 156 11.10.19 09:16 Сейчас в теме
(1) конечно используют, мы, например, в УТ 10
YPermitin; adhocprog; +2 Ответить
15. PLAstic 290 14.10.19 10:00 Сейчас в теме
(2) А подскажи, зачем? Ведь ваша платформа давно позволяет работать с СКД.
Как минимум, отчёт ДиаграммаСостоянияЭДО использует СКД.
9. Yashazz 4506 11.10.19 13:02 Сейчас в теме
(1) Баян безусловно. Хошь, в тексте статьи жирным шрифтом напишу?

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

Некоторые части этого кода родились до появления ТРег.

Юзают ещё как)
1giga; Светлый ум; adhocprog; +3 4 Ответить
3. TMV 14 11.10.19 09:42 Сейчас в теме
4. VmvLer 11.10.19 10:01 Сейчас в теме
пробежал код по диагонали и возникла ассоциации, что меня пригласили в чебуречную и
вместо шкварчащего, со свеже капающим жиром чебуречика, мне предлагают какой-то холодный тухляк.
5. Hans 2 11.10.19 10:13 Сейчас в теме
Жуть какая то. Зачем ты эти префиксы переменным ставишь? семерочник то ле?
6. Aftee 11.10.19 10:22 Сейчас в теме
стро=рСтрока;

Автор из тех кто пишет "прив", "норм"?
8. json 3208 11.10.19 11:23 Сейчас в теме
(6) у него свое авторское клеймо.
Вот тут уже обсуждали.

Но кому-то нравится такой стиль, судя по плюсам
7. PLAstic 290 11.10.19 10:47 Сейчас в теме
(15) Если не ошибаюсь, ПревращениеНаименованияВИмя делается иначе:
Результат = СтрЗаменить(ТРег(ИсходнаяСтрока), " ", "");

И вообще, я думал, отшельников, которые до сих пор пишут в отрыве от БСП, больше не осталось. Это же банальная логика: зачем колхозить то, что уже написано и написано лучше?
10. Yashazz 4506 11.10.19 13:48 Сейчас в теме
(7) Во-первых, повторюсь, ТРег появилась не сразу, во-вторых, БСП меняется хз как, а свой код - он всегда под контролем, не будете же вы при каждом обновлении БСП лихорадочно актуализировать все знания о ней; в третьих, код этот родился задолго до современных БСП)
Lancelot-2M; Светлый ум; adhocprog; +3 Ответить
11. PLAstic 290 11.10.19 15:00 Сейчас в теме
(10) 1) При обновлении БСП, конечно, надо проверять, а стоит ли игра свеч. Нужен анализ, что изменилось и что это влечёт за собой. Как правило, в новых версиях появляются и новые возможности, поэтому надо взвешивать: "мы получим это, но надо будет переписывать такие-то вызовы".
2) Отказ в использовании БСП ничуть не умаляет её функциональности. Загляните хотя бы в модуль ОбщегоНазчения в раздел "Процедуры и функции для работы с типами, объектами метаданных и их строковыми представлениями". Там найдутся более красивые и оптимальные реализации ваших процедур. Также будет полезно изучить ОтчетыКлиентСервер для работы с СКД.

Контраргумент "БСП меняется хз как" не мешает мне поддерживать самописные, отраслевые и типовые конфы уже много лет. Поэтому не вижу смысла изобретать велосипед.
12. Yashazz 4506 11.10.19 18:14 Сейчас в теме
(11) Изобретать велосипед имеет смысл тому, кто его изобрёл первым. Примерно 2/3 того, что есть в БСП, я сделал в виде том же, по сути, и с той же целью. Только немножечко раньше, чем фирма 1С. Так что да, скажите фирме 1С, пусть не изобретает велосипед, я-то свою механику ещё в 2006-м сделал)

А что касается "красивых и оптимальных" - спасибо, посмеялся. Громоздкие, избыточные, чудовищно накрученные механизмы... Или мы о разных БСП.
1giga; davdykin; +2 Ответить
13. davdykin 25 13.10.19 10:55 Сейчас в теме
(7)Есть отшельники ))). Если вы поддерживаете нескольких клиентов (как допустим франч), у кого-то БП 3, у кого-то УТ 10.3, БП может быть 5-и разных релизов из-за доработки, то свой "БСП-независимый" код, может оказаться куда полезней, чем использование постоянно меняющейся БСП. Ну и код написаный под маленький функционал, может быть куда быстрее и проще, чем процедура "швейцарский нож" рассчитаная на широкий круг применения.
1giga; CatNotDog; Светлый ум; +3 Ответить
14. PLAstic 290 14.10.19 09:58 Сейчас в теме
(13) Я во франче отработал более 10 лет и мне как-то не особо затратно удавалось поддерживать все конфы клиентов, ориентируясь на БСП, а не дублирующие механизмы. Это проще, чем городить своё.
Считаю, что если ты хочешь пилить что-то своё, то пили, но знать БСП обязан. Потому что в 90% случаев пилятся велосипеды. Причём, колхозные, реализация которых намного менее оптимальная, чем аналоги БСП. Возьми процедуру из БСП, выкуси лишнее, если вдруг оно там есть, и используй как "бсп-независимый код". Хотя это как-то нелепо.
16. davdykin 25 14.10.19 13:11 Сейчас в теме
(14) Очень хочется посмотреть на код использования БСП в 10.3. Код написанный для универсального использования почти всегда будет менее оптимален, чем написанный для конкретного случая. Допустим нам надо получить доп реквизит у 10 000 объектов, а в БСП( к примеру), есть получение свойства 1 объекта, так вот 10 000 вызовов универсальной функции будут в РАЗЫ не оптимальней чем получение этого свойства через запрос. Я конечно сильно в БСП не погружался, но насколько я видел это какой-то трындец когда все что можно сделать в 1 функции распихано по 10 модулям, с вызовами через 10-20 функций, для отладки тихий ужас, да и по производительности такой каскад вызовов, я думаю может играть плохую роль, учитывая что 1С - это компилятор, а каждый вызов функции - передача управления с использованием стека. Ну и достаточно посмотреть как работают стандартные конфигурации, у нас на серваке в файловом режиме работает 2 пользователя, база копеешная, и она конечно не висит, но жутко не комфортно работать.
1giga; Yashazz; +2 Ответить
17. PLAstic 290 14.10.19 15:46 Сейчас в теме
(16) ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивСсылок, ИмяРеквизита, ВыбратьРазрешенные = Ложь)
Это не 10000 вызовов, а одним запросом. При этом есть возможность получения не только одного реквизита а нескольких, и как одного объекта, так и нескольких. С учётом или без RLS. Мне это решение кажется априори выигрышным, что бы вы там ни попытались изобрести. Я видел код и не считаю его неоптимальным.
В своё время я поливал грязью УТ10.2 и платформу 8.0 и говорил, что она сырая и глючная. Потом пришёл конкурент к клиенту и перевёл их с ТиС 7.7 на "восьмёрку", а я остался ни с чем. Это ещё раз научило меня, что те, кто хаит, в большинстве своём не разбираются в предмете. Если бы топикстартер разбирался в БСП, мы бы видели более оптимальные процедуры и функции, чем в БСП, т.к. иначе он бы сам заметил, что его три страницы кода явно менее оптимальны, чем 15-20 строк БСП. Однако, выше мы видим колхоз.
Оправдание топикстартера по поводу ТРег не клеится с "Использовалось на 8.3.15.1565, но мало менялось со времён 8.3.6."
Я нашёл упоминания ТРег в октябре 2015го. Как минимум, 4 года этой функции и тогда как раз была 8.3.6. Вот вам и наглядный пример пародирования даже не БСП, а целой даже платформы.
18. acanta 14.10.19 16:20 Сейчас в теме
(17) вместо того, чтобы поливать грязью, возьмите отпуск, съездите отдохнуть в Турцию или Тайланд, познакомьтесь на отдыхе с программистами Сап или аксапты, порыбачьте вместе, выпейте чего нибудь.. а потом пригласите их к себе на внедрение и будет всем счастье.
19. PLAstic 290 14.10.19 16:54 Сейчас в теме
(18) А, да, забыл отметить, что последние N месяцев на ИСе засилье каких-то странных программеров, которые или не знают про существование документа https://its.1c.ru/db/v8std или им приходится доказывать целесообразность его соблюдения. То же и с БСП. Это напоминает засилье школоты в WoT. Удручающая ситуация и с плюсами обсуждаемой статье.
20. davdykin 25 14.10.19 17:48 Сейчас в теме
(19) Люди которые написали этот документ, создали решение типа УТ 11, в результате, по крайней мере в нашем городе, автоматизация торговли мелкими конторами на УТ - сейчас практически отсуствует в силу ее минусов, с 1С слезли такие конторы как dns, и еще пару штук серьезных встречал, поэтому у меня большие сомнения в оптимальности БСП и методики программирования.
При этом есть возможность получения не только одного реквизита а нескольких, и как одного объекта, так и нескольких. С учётом или без RLS. Мне это решение кажется априори выигрышным, что бы вы там ни попытались изобрести. Я видел код и не считаю его не оптимальным.
, ну если вы считаете что такая супер пупер мега процедура будет оптимальней запроса, я думаю, что это вы плохо разбираетесь в программировании.
24. PLAstic 290 15.10.19 08:47 Сейчас в теме
(20)
ну если вы считаете что такая супер пупер мега процедура будет оптимальней запроса

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

Рекомендую не говорить за всех франчей города своё личное мнение. И, возвращаясь к истокам: готов дальше дискутировать только при предоставлении более оптимальных процедур, чем в БСП. Функциональность - тоже часть оптимальности.
27. davdykin 25 15.10.19 11:10 Сейчас в теме
(24)Вы как-то странно читаете мои сообщения:
1. Я не собираюсь смотреть код, я вам говорю про концепцию, вы меня отсылаете к конкретным процедурам.
2. Где я говорил за всех франчей?
3. Про ДНС, я не знаю про что он говорил, но розница, конкретно в нашем магазине у них не на 1С, а раньше была на 1С, и это не одна контора
4. Функциональность и оптимальность процедуры - вещи совершенно разные, и это никак не ее часть.
28. PLAstic 290 15.10.19 12:18 Сейчас в теме
(27)
оптимальность
Как-то читал статью про оптимальность кода, может, и на ИСе. Там среди прочих критериев упоминались и функциональность, что логично, и простота понимания и простота поддержки (например, модификация другим спецом спустя год). Именно ту статью найти не смог, но что-то подобное рассказано тут. Пожалуй, это единственный ваш аргумент, который мне интересно обсуждать.
29. davdykin 25 15.10.19 12:22 Сейчас в теме
(28)Видимо потому что кроме как "БСП - наше все, все кто его не используют - простачки" и "1С - наш отец и мать" у вас как-то с аргументами больше не сложилось... в общем-то хорошо, я так понимаю, чем больше людей с вашим мышлением, тем больше работы у таких "костылеписателей" как я. Удачи
30. PLAstic 290 15.10.19 12:26 Сейчас в теме
(29) Возможно, вам это недоступно, но я уже аргументировал в другом посте этой ветки, что если уж ты взялся делать что-то БСП-независимое, то твой код должен быть более оптимальным, чем БСП. Иначе это колхоз или, как говорят, велосипед. Глядя на такие "бсп-независимые" реализации иногда слёзы текут. Сколько я за свою практику в бытность франча переделал таких мега-изобретений на типовые механизмы...
И раз вы упоминали УТ10.3, то, конечно, ваши разработки должны по максимуму использовать типовые механизмы УТ или быть даже оптимальнее их.
Мысль проста и мне непонятно, зачем вы с ней спорили.
21. Yashazz 4506 14.10.19 19:32 Сейчас в теме
(19) Последние N лет в типовых конфигурациях 1С засилье такого безграмотного кода, не лезущего ни в какие стандарты, что мне, автору успешных внедрённых тиражных решений, вы можете не напоминать про стандарты, а вот им - напомните. Адресок 1С-центральной дать, или знаете?))

Я очень рад, что вы в 2015 году обнаружили ТРег. А вот в 2007-м её как-то не наблюдалось. Так что да, платформописатели и писатели БСП - это таки с их стороны колхоз. Обрадуйте их, что всего через 5-7 лет после того, как функционал становится всем нужен, они его добавляют. Так было с "ЗначениеЗаполнено", с поиском в массиве, со строковыми вроде СтрРазделить. На тему которой тут, кстати, не столь давно тоже ломали копья.

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

Подход "возьми из БСП и выкуси" выдаёт явное отсутствие практики. Вы пробовали из этой, пардон, кастрюли с остывшей вермишелью "вытащить часть" или "выкусить лишнее"? Попробуйте. Вместо пары реально нужных процедур - 10 модулей с кучей барахла, жрущего ресурсы. Ну ничего, с опытом придёт)
1giga; vipetrov2; RibD; +3 Ответить
25. PLAstic 290 15.10.19 08:54 Сейчас в теме
(21) Мне тоже побить себя пяткой в грудь и потрясти регалиями? Мне не интересны ваши достижения, когда я вижу код и он откровенно плох. Качество кода - это и соответствие стандартам на его оформление. Отсюда следует и простота его поддержки.
Позволю напомнить, что платформа 8.3.6 вышла 25.03.16, что даже позже, чем октябрь 2015го и значит ТРег там изначально был. Однако, вы пишете целую функцию, которая делает то же самое, что платформенная.
Если тиражные решения (а это любая обработка, проданная хотя бы два раза) содержат такого же уровня код, я рад, что не сталкивался с ними.
22. Yashazz 4506 14.10.19 19:33 Сейчас в теме
(19) А вот насчёт засилья школоты - согласен. Последние пару лет на ИС не продохнуть от статей, чей уровень ниже плинтуса, однако они восторженно плюсуются и, значит, кому-то нужны. Я неоднократно в таких статьях выражал своё недоумение. А ваших комментов там что-то не припомню)
23. Yashazz 4506 14.10.19 20:13 Сейчас в теме
(14) Вот не обижайтесь, но виден франчевский подход. Да, поддержка с маленькими доработками - действительно наводит на мысль, что БСП лучше. Но только если поддержка многих и почти типовых. А если нужен серьёзный шаг в сторону, крупная доработка, если нужна оптимизация производительности итд., словом, если речь о крупном оригинальном решении - то даже вспоминать о БСП смешно и дико. Ну может самые базовые моменты, вроде работы с файлами или там строками-коллекциями, да и то слишком наворочено и избыточно. Поэтому я, как автор специальных решений, привык полагаться на свой, менее распиаренный, зато надёжный и простой код. Мне вот не улыбается сдать проект на эн лямов и через месяц прочитать, что в какой-то процедуре в глубинах БСП найдена и исправлена грубая ошибка, и понять, что этот контур БСП задействован в проекте.

"Знать БСП" нельзя. Я в своё время сделал глупость, потратил 2 месяца на доскональное её изучение. А тут раз, два, бац, и нате вам БСП следующей версии, "принципиально переработанную". Франч может тратить время на освоение, а я, извините, ведущий разработчик и архитектор, для меня это нереально отслеживать, тем более что комментарии в коде и документация ни в зуб копытом.

Опыт общения по серьёзным проектным решениям говорит: нигде в них от БСП более 10-20% не брали. Писали "под задачу и по месту".

Так что всякой задаче своё решение, не стоит быть столь категоричным)
Dorosh; nik2500; kMidas; RibD; davdykin; +5 Ответить
26. PLAstic 290 15.10.19 09:14 Сейчас в теме
(23) А я и не обижаюсь. У меня кроме 10 лет франча ещё больше стажа работы матрасником в штатке. :)
Все новые конфигурации я начинаю с выдёргивания нужных подсистем из БСП по регламентированной 1С схеме. Получаю заготовку нужной мне конфигурации и допиливаю свои подсистемы. Пока не встречал проблем с этим.
Кроме того, на текущей работе есть решение с "родной" версией БСП 2.1 на обычных формах, куда потом кто-то допиливал обмен с ДО и втащил туда подсистемы БСП версии 2.4. Сейчас в эту конфигурацию мной интегрировано 10-15 подсистем БСП 3.0.1 с заменой 2.4 на управляемых формах, конечно. Интегрировано успешно и проверено на проде. Не могу сказать, что это было особо сложно. Наверное, самым сложным было разобраться в механизме инициализации параметров сеанса. :)
И при этом я, конечно, далёк от знания БСП. Просто почти ежедневно вижу выгоду от использования архитектурно грамотных подсистем БСП, на реализацию которых в конфигурации я потратил несоизмеримо меньше времени, чем если бы писал с нуля.

Подытоживая дискуссию, ваш код, коли уж вы хотите поддерживать свои конфы независимо от БСП, обязан быть оптимальнее кода БСП. А для этого надо как минимум знать аналогичные механизмы БСП и платформы.
33. Yashazz 4506 17.10.19 12:52 Сейчас в теме
(26) Бесспорно, что БСП меняется, иногда сильно и непредсказуемо. Бесспорно, что она недостаточно документирована. И вот вопрос - вы сможете тратить время на изучение механики БСП, когда в быстром темпе пишется отдельный проект? Тратить время на адаптацию, обрезку ненужного, допиливание под задачу? Я - нет. Я хочу хотя бы иногда спать.
36. PLAstic 290 17.10.19 15:42 Сейчас в теме
(33) Ниже конкретный пример переноса подсистемы. Благодаря БСП у вас 50% разных конфигураций одинаковы и перенос выполняется намного проще. Так где меньше трудозатрат, например, при реализации механизма доп.реквизитов и сведений? Когда делаешь сам с нуля или готовая подсистема от БСП?
Вероятно, вы путаете программирование специфической для задачи логики и разработку дублирующего механизмы БСП колхоза.
37. Yashazz 4506 17.10.19 21:01 Сейчас в теме
(36) Если механизм совсем отчётливо дублирует, тогда, конечно, колхозить смысла нет. Но гораздо чаще появляются такие милые нюансы, которые делают заимствование бессмысленным, по времени и трудозатратам. Я много раз видел системы, перепиленные до полной неузнаваемости из типовых, которые в итоге тормозили и висли на унаследованных местах, и в 70% случаев после анализа становилось ясно, что правильнее-то было бы писать "под ключ" своё. Чем я иногда и занимался. Конечно, сначала их авторам казалось, что доработка-то маленькая, брали из БСП, а потом начиналось дальше в лес и толще партизаны. И однажды наступало понимание, что своё тянуть легче.

Насчёт доп.реквизитов - а вы имели дело с допиливанием их визуализации на упр.формах? Это ж покурочить вдвое сложнее, чем своё накатать.

Не спорю, бывает. Но бывает гораздо реже, чем кажется оптимистам. У меня один такой сотрудничек потратил неделю на рест-запросы там, где мне хватило часа. Потому что дёргал из БСП, натащил 6 лишних общих модулей, кучу вспомогательной хрени, и всё ради получения данных контрагента по ИНН. А моя одна маленькая процедура делала то же самое, но ни в чём не нуждалась. Выводы?
dmitrydemenew; +1 Ответить
45. dmitrydemenew 634 22.10.19 13:58 Сейчас в теме
(36)PLAstic, возможно Вы правы. Возможно нет. Все зависит от ваших целей. Если Вы желаете наштамповать как можно больше продуктов, не заморачиваясь оптимальными программными решениями направленными на удобство пользователей - то правы. Если же в ваших приоритетах создание качественных продуктов с ориентиром на конечных пользователей - то нет. Потому как БСП - система функций неоптимальных и избыточных в очень высокой степени и их использование по "настоятельным рекомендациям" редко улучшает работу программы.
31. Lancelot-2M 115 15.10.19 17:30 Сейчас в теме
В связи с развязавшейся дискуссией про БСП вставлю свои 5 копеек.
В своей профессиональной деятельнсти я заметил 3 четких этапа, характеризующиеся способами разработки:
1)Колхоз как получится
2)Использование встроенной функциональности конфы по максимуму, мимикрия под стиль конфы
3)Колхоз со стажем
и переход от 2го этапа к 3му был вызван вполне ощутимыми и неприятными трудозатратами на сопровождение работ сделанных в течение этапа 2. Ну 100500 печатных форм поправить после обновления только потому что я ответственных лиц получал встроенной в конфу функцией, например.
Yashazz; e.kogan; +2 Ответить
32. e.kogan 1886 17.10.19 04:35 Сейчас в теме
(31) Присоединяюсь. Чуть не каждое обновление любой минимально модифицированной (расширениями, конечно, мы же блюдём рекомендации!) типовой ЗУП - это кровь из глаз, биение головой об стол и так далее. Ладно бы реально содержательные изменения, так нет - перенесли процедуру из модуля в модуль. Может, на супер-пупер-нагруженных системах это дало рост производительности процедуры на треть процента, не спорю; но, блин, почему занимаются этим, а не косяком, не позволяющим рассчитывать больничный поверх отсутствия? А у меня из-за этого переноса расширение отваливается. И хорошо, если отваливается с простой и понятной ошибкой, если мне повезло и вызов прямой... а бывает, что на раскоп, где какой параметр стал обязательным, уходят часы.

И ведь не угадаешь. А с БСП так и вообще полсистемы рухнуть может при обновлении, причём незаметно - любой синтакс-контроль пропустит, выборочный тест функциональности не налетит, а пользователи с утречка всей Россией колом встанут...
nik2500; Yashazz; +2 Ответить
34. Yashazz 4506 17.10.19 12:53 Сейчас в теме
(31) Согласен. Единственно что, грамотная организация кода в любом случае позволяет избежать правки 100500 форм, и неважно, ваш это код с нуля или заимствованный, или вообще сама БСП.
35. PLAstic 290 17.10.19 15:37 Сейчас в теме
Не далее как позавчера перенёс свою подсистему из БСХП в БП 3.0. В БСХП при этом как раз и интегрировал ранее БСП 3.0.1 (писал выше). Так вот, перенёс регистры, перечисления, документы, отчёты просто по сравнению/объединению. Документы проводятся после переноса, хотя исходная версия БСП у БСХП была 2.1, я даже не знаю, где они такую взяли.
Это я к чему... Пишите своё, если вам интересно. Я писал чётко на механизмах БСП и перенос всей подсистемы прошёл за пару часов адаптации. Задействованы подсистемы БСП: отчёты, печать, подключаемые команды, структура подчинённости, базовая функциональность, доп.свойства.

Уже несколько авторов выше пытаются избежать прямого сравнения своего кода и кода БСП. А ведь это немаловажно. Если вы уже решили отказаться от готовых механизмов и повысили риски ошибок и рефакторинга из-за разработки своими силами, то добавьте хотя бы гарантию качества, что ваш код действительно лучше БСП'шного, от которого вы отказались - сравните свой и БСП'шный.
Пример: процедура в обсуждаемой статье вместо ТРег. Уже даже поймал автора на том, что когда он её писал, ТРег существовал, но нет, исправлений в тексте статьи нет. Да даже если бы и не было в то время ТРег, зачем этот код нам сейчас, когда ТРег давно есть?

Из своей практики скажу, что не встречал альтернативных БСП'шным колхозных решений частных умельцев лучше, чем в БСП. Но у вас есть шанс, удачи.
38. Yashazz 4506 17.10.19 21:35 Сейчас в теме
(35) Поймали автора? Уважаемый, вы читайте внимательнее, ага. Этот код появился в 2008-09 годах. А что касается "зачем", так встречный вам вопрос - вы никогда не наблюдали, как код отказывается компилиться на новых платформах, если в нём есть "новинки" вроде СтрРазделить? Или вам в скайпе на примере показать? Не у всех супер-новые релизы конфигураций и платформ. Множество внедрений работают на 8.2 и совершенно никто не горит переходить на 8.3

Я в БСП видел такую жесть, которую и кодом-то назвать совестно. Руки поотрывать и поувольнять за профнепригодность. Механика подключения внешек, работа с периферийным оборудованием и ещё кое-какие подсистемы. Не то чтоб стандарты какие, а кромешная жуть. Вас не смущает запрос вида "Выбрать Различные спр.Ссылка Из Справочник.Пользователи"? А проверка "Если не СокрЛП(спрСсылка)="" Тогда // ссылка пуста"?

Из своей практики скажу, что не встречал заимствования из БСП, которые были бы толковы, минималистичны, быстродействующи, просты, понятны и гибки. Но у вас есть шанс. Удачи)
42. Yashazz 4506 18.10.19 17:00 Сейчас в теме
(35) Расскажите автору https://infostart.ru/public/1134548/ что лучше БСП, её подписок, её переопределяемых модулей итд, ничего нет) А то человек колхозит, мучается... Ну или что подождать надо пару лет, 1С одуплится и какой-нибудь крутой инструмент забацает)
43. Yashazz 4506 21.10.19 16:07 Сейчас в теме
(35) Гляньте, какой колхоз-то жуткий https://infostart.ru/public/1137019/, видать автор не знает, что история теперь в платформу вшита! Срочно проповедуйте ему благодать БСП!
44. PLAstic 290 22.10.19 08:27 Сейчас в теме
(43) Перестаньте паясничать. Статья дубль, в коде ошибки, но т.о. автор решает вопрос о внесении модификаций без обновления конфигурации. Я давно не работал со старыми формами, не могу прокомментировать оптимальность решения.
39. Yashazz 4506 17.10.19 21:39 Сейчас в теме
Да, что ещё скажу. У 1С прямо даже в платформе есть и перепроведение документов, и поиск ссылок, и удаление помеченных, и управление итогами. Ответьте мне, поклонники творчества 1С-Центральной, зачем же тогда на ИС и других ресурсах такое колоссальное количество обработок на эту тему? Колхоз ведь!
1С написала КИП с ЦУПом. Супер, почему тогда многие, с Гилёва начиная, юзают и свои наработки? Колхоз же!

Давайте будем применять только инструменты, предложенные вендором, они самые лучшие! Так, да?)))
40. PLAstic 290 18.10.19 09:11 Сейчас в теме
(39) Если перестать слепо беситься от вопроса "зачем нам этот колхоз 10 лет спустя", потому что он не в бровь, а в глаз, то становится очевидно, что выше был сформулирован минимум два раза постулат:
(35)
Если вы уже решили отказаться от готовых механизмов и повысили риски ошибок и рефакторинга из-за разработки своими силами, то добавьте хотя бы гарантию качества, что ваш код действительно лучше БСП'шного, от которого вы отказались - сравните свой и БСП'шный.

Очевидно, что консоли запросов пишутся пачками потому, что штатная чем-то не устраивает. Например, тем, что нет конструктора в тонком клиенте. Т.е. расширяется функциональность механизма.
41. Yashazz 4506 18.10.19 13:16 Сейчас в теме
(40) Так вот мой код - лучше)) А кому не нравится - не кушайте)

Ужас-то на самом деле в другом. Ужас в том, что подобные публикации плюсят. Радостно накидываются на любой халявный исходник, копипастят и юзают.
46. Aitbay 29.03.21 01:06 Сейчас в теме
по личному опыту
несколько раз замечал в типовой бухгалтерии вызов процедур БСП в цикле, внутри процедуры выполнение запроса, для мелких компаний это не заметно, а для крупных компаний думаю не всегда БСП выгодно в плане оптимальности.
47. Yashazz 4506 30.03.21 12:12 Сейчас в теме
(46) я в типовых конфигурациях такое замечал, что теперь все претензии к моему коду из серии "имена переменных нестандартные" отметаю в dev/null - я хоть вызов через 20 процедур не протаскиваю, запрос в цикле не делаю и служебными словами переменные не зову)
Оставьте свое сообщение

См. также

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

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

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

15.03.2023    1482    FloNes    11    

2

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

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

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

07.02.2023    3228    quazare    7    

35

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

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

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

31.01.2023    767    user1728007    2    

8

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

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

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

30.01.2023    535    user1728007    1    

7

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

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

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

11.11.2022    1976    slicem    10    

5

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

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

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

17.10.2022    3864    al_zzz    9    

44

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

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

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

12.10.2022    5068    milkers    17    

45

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

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

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

18.07.2022    5779    Pproksima    1    

19

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

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

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

28.05.2022    6644    milkers    11    

87

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

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

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

23.04.2022    746    AnatolPopov    0    

4

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

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

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

09.04.2022    949    AnatolPopov    0    

7

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

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

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

17.02.2022    5371    Yashazz    29    

31

Отладка СКД

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

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

08.02.2022    10536    ProgrammingStore    5    

85

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

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

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

04.02.2022    4518    pbazeliuk    4    

69

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

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

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

28.12.2021    14321    quazare    6    

130

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

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

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

13.12.2021    4257    SizovE    0    

8

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

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

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

23.11.2021    4640    SizovE    3    

11

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

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

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

18.11.2021    3700    drmaxart    0    

42

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

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

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

08.11.2021    6151    echo77    7    

99

Грабли на СКД

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

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

02.11.2021    14945    echo77    17    

136

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

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

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

27.10.2021    12454    Neti    19    

192

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

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

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

04.10.2021    4357    Neti    4    

18

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

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

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

07.08.2021    28808    Eugen-S    34    

101

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

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

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

18.07.2021    3389    mysm    14    

27

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

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

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

14.07.2021    7792    olja-ljaaa    10    

18

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

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

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

12.07.2021    4328    Yashazz    7    

37

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

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

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

28.06.2021    2723    Yashazz    0    

9

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

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

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

27.04.2021    6783    John_d    14    

73

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

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

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

14.04.2021    5622    user1127305    13    

22

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

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

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

07.04.2021    5302    SergeyN    13    

39

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

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

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

06.04.2021    18196    Neti    9    

215

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

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

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

02.04.2021    2499    parshachello    2    

7

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

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

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

30.03.2021    22941    Neti    21    

364

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

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

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

05.08.2020    3162    Yashazz    0    

23

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

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

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

24.05.2020    13239    kasper076    19    

26