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

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

Разработка - Практика программирования

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

Пакет из 3-х курсов по 1С-программированию. Основная цель - сформировать у слушателей практические навыки, связанные с реализацией задач обмена для прикладных решений, работающих на платформе “1С:Предприятие”, а также с разработкой прикладных решений, предназначенных для автоматизации расчета заработной платы и задач бухгалтерского учета.

22.04.2020    3374    23    infostart    2    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    15509    0    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

15.01.2020    15952    0    John_d    22    

Последовательности событий. Шпаргалка

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    11102    0    kuzyara    33    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    34332    0    unichkin    45    

Сходство Джаро - Винклера. Нечеткое сравнение строк

Универсальные функции v8 Россия Бесплатно (free)

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

25.12.2019    5660    0    brooho    17    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    25703    0    Yashazz    45    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    16160    0    YPermitin    33    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

15.10.2018    26363    0    tormozit    100    

СКД не только для отчетов

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

18.09.2019    16678    0    YPermitin    34    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

06.09.2019    35296    0    rpgshnik    62    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    37464    0    ids79    52    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    73859    0    tormozit    129    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    21975    0    YPermitin    24    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

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

03.09.2019    21979    0    YPermitin    80    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    25930    0    ids79    16    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

11.07.2007    44908    0    tormozit    38    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    57060    0    ids79    37    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    26689    0    avalakh    21    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    43238    0    ids79    11    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

10.09.2017    40756    0    tormozit    72    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    28857    0    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    21731    0    YPermitin    13    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    16588    0    SeiOkami    50    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

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

25.04.2019    14276    0    m-rv    2    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    42675    0    ids79    20    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    21563    0    dmurk    144    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    35636    0    YPermitin    30    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    17855    0    m-rv    17    

Выполнение внешней обработки в фоновом задании

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    24441    0    Eret1k    23    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    29646    0    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    23706    0    ellavs    88    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

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

01.06.2018    27550    0    m-rv    21    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    26699    0    YPermitin    53    

Добавление отчетов в типовые конфигурации 1С

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

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

07.03.2019    45437    0    ids79    45    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    31770    0    ids79    9    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

05.12.2017    25827    0    itriot11    34    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    35355    0    ids79    72    

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке

Универсальные функции Зарплата Управление персоналом (HRM) Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Бесплатно (free)

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

14.11.2018    69020    0    GeterX    112    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    71345    0    Serginio    108    

Программное заполнение пользовательских параметров и отборов СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.11.2018    37933    0    Unk92    21    

Произвольный код в фоновом режиме

Практика программирования v8 1cv8.cf Бесплатно (free)

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

03.09.2018    24114    0    nikita0832    42    

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час

Практика программирования Инструментарий разработчика v8::СКД Бесплатно (free)

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

03.09.2018    41671    0    SergeyN    26    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    30803    0    ids79    40    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

Математика и алгоритмы Практика программирования v8 Россия Бесплатно (free)

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

23.08.2018    35037    0    Rain88    46    

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

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    26256    0    olegtymko    47    

Введение в механизм представлений в ЗУП ред. 3

Практика программирования v8 v8::СПР ЗУП3.x Бесплатно (free)

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    34396    0    xrrg    82    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    26379    0    grumagargler    26    

Строим графы средствами 1С (без GraphViz)

Практика программирования v8 Бесплатно (free)

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    22943    0    slozhenikin_com    20    

Распределение расходов пропорционально продажам

Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Практика программирования Финансовый учет и бюджетирование (FRP) Учет доходов и расходов v8 v8::ОУ УТ10 УУ Бесплатно (free)

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    17078    0    Rustig    9    

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

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

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

24.04.2018    43283    0    avfed@rambler.ru    27    

[ВсеПросто] "Оперативный" информатор из 1С за 5 мин.

Практика программирования v8 Бесплатно (free)

Быть всегда в курсе дел, даже в дороге!

22.02.2018    25392    0    DarkAn    25