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

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

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

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

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

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

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

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

 

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

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

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

39

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

25.09.2019    4543    YPermitin    24       

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

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

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

18.09.2019    6837    YPermitin    31       

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

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

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

05.09.2019    9887    ids79    42       

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

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

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

17.08.2019    8170    ids79    14       

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

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

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

08.08.2019    10290    ids79    24       

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

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

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

26.07.2019    9210    ids79    6       

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

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

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

17.07.2019    8631    ids79    24       

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

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

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

04.07.2019    6182    SeiOkami    48       

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

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

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

25.06.2019    17322    ids79    16       

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

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

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

11.06.2019    11480    dmurk    134       

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

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

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

16.05.2019    17168    YPermitin    27       

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

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

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

11.05.2019    9779    Eret1k    22       

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

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

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

25.04.2019    4773    m-rv    2       

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

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

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

16.04.2019    7302    m-rv    16       

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

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

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

07.04.2019    16295    ellavs    122       

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

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

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

28.03.2019    12661    ellavs    83       

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

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

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

14.03.2019    12779    YPermitin    52       

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

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

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

07.03.2019    23093    ids79    32       

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

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

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

03.02.2019    15384    ids79    9       

EnterpriseData – часть 2. Процесс выгрузки данных 127

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

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    12668    ids79    27       

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

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

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

14.12.2018    21339    ids79    72       

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

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

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

14.11.2018    31661    GeterX    93       

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

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

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

13.11.2018    19534    Unk92    18       

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

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

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

10.11.2018    20773    ids79    40       

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

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

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

15.10.2018    20397    tormozit    100       

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

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

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

03.09.2018    14539    nikita0832    41       

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

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

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

03.09.2018    30963    SergeyN    26       

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

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

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

23.08.2018    21174    Rain88    42       

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

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

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

25.06.2018    19259    olegtymko    47       

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

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

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

04.06.2018    24288    xrrg    82       

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

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

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

01.06.2018    21131    m-rv    21       

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

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

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

23.05.2018    16925    slozhenikin_com    19       

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

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

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

13.05.2018    11299    Rustig    9       

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

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

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

24.04.2018    24294    avfed@rambler.ru    19       

Минимализмы 3 351

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35504    ildarovich    44       

Этюды по программированию. Взаимодействие с Microsoft Word 109

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

Часто приходится заниматься созданием сложных документов Word с таблицами, вложенными фрагментами, хитрым оформлением и прочими радостями жизни. Это - попытка как-то структурировать полученный опыт, чтобы не приходилось перерывать ворох старых обработок в поисках крупиц истины. Надеюсь, эта статья будет полезна и Вам.

11.12.2017    25797    milkers    23       

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

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

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

05.12.2017    21270    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 720

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    137349    MaxS    251       

Заполнение данных по ИНН контрагента с помощью альтернативного сервиса огрн.онлайн 131

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

Код для заполнения данных по ИНН контрагента из ЕГРЮЛ с сайта огрн.онлайн.

01.11.2017    22647    slava_1c    49       

Программные перечисления, ч.2: приемы кэширования при разработке 66

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

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

30.10.2017    21014    unichkin    17       

Разбираемся с настройками компоновки данных 159

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

Краткая шпаргалка по программной работе с настройками СКД

29.10.2017    23988    json    9       

Работа с Excel 288

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

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

23.10.2017    24592    arakelyan    39       

Добавление команд печати в конфигурациях на БСП 2.4.3 (в частности, в самописных документах в Бухгалтерии 3.0 после релиза 3.0.52.35) 143

Статья Программист Нет файла v8 v8::БУ БП3.0 Россия Бесплатно (free) Печатные формы документов Практика программирования БСП (Библиотека стандартных подсистем)

В статье https://infostart.ru/public/237013/ пользователя nick max рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6. В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

18.09.2017    46692    bugtester    43       

Отказ от работы с временными файлами при работе с двоичными данными или Потоки как простая замена ADODB.Stream и временным файлам 127

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

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

12.09.2017    18182    vardeg    31