Имя: Пароль:
1C
1С v8
Злоупотребление методом Выполнить()?
Ø (Фрэнки 15.06.2021 08:13)
0 masenshi
 
10.06.21
05:18
Есть такие кто (серьезно, существенно) программирует в режиме 1С предприятие с использованием метода Выполнить()?

Какое у кого мнение по этому поводу? Коллеги не разделяют моей любви к внешнему коду, поэтому и спрашиваю.
Понятно что не все можно так запрограммировать но тем не менее.
Для меня это удобно и быстро.
Конфа самописная на 8.3. Код хранится в справочнике. Доступ имеет только админ )
1 acces969
 
10.06.21
05:56
Читать чужой код трудно. Отлаживать код через выполнить неудобно. Понятно почему твоим коллегам не нравится твой подход?
Имхо "Вычислить" и "Выполнить" годно для кода в нескольких инструкций, не больше.
А вот в разработке и отладке правильное применение методов очень помогает.
2 ДенисЧ
 
10.06.21
05:59
Почти типовая не очень свежая БП3 - больше сотни вызовов Вычислить()
3 DrZombi
 
гуру
10.06.21
06:07
(0) Ваше выполнить, еще по божески. (А если коллеги могут только Хело Ворд, ну это проблема коллег)
Вот "Оповещение", от 1С, это ваше выполнит отодвинет на второй план, если там развернуться ;)
4 Prog111
 
10.06.21
07:27
(0) А в чем смысл и удобство такого кода? По F12 не перейти, наглядности меньше...
5 DrZombi
 
гуру
10.06.21
07:28
(4) Гибкость настройки, когда все хотят все и одновременно ничего :)
6 DrZombi
 
гуру
10.06.21
07:29
+(4) Вы просто устанете что-то обновлять и программировать. Динамической обновление порой тоже не фонтан, им долго не попользуешься.
7 Bigbro
 
10.06.21
07:36
на этапе активной разработки решения - вполне себе нормально.
было время когда все активно переписываемые куски выносились во внешние текстовики и грузились через ЗагрузитьИзФайла
но рано или поздно решение должно прийти к какому-то законченному виду, за редким исключением.
тогда пользователю даются инструменты для "метапрограммирования", чтобы он мог сам модифицировать алгоритм программы выбором и заданием параметров.
когда конфу пишешь сам и для себя вполне нормально. когда с этим приходится работать другому кто не особо сталкивался с подобным - непривычно и неудобно.
8 masenshi
 
10.06.21
07:41
(4) Удобства :
1) не надо демонически обновляться
2) пользователям не надо перезаходить в 1С
3) в конфигураторе рабочей базы всегда сидит какой-нибудь заседалец и никого не пускает,
4) Также экономлю время на получить и засунуть в хранилище.
5) Работа в одном окне но это небольшой плюс
6) ТЗ пишут на коленке и меняют по 10 раз в день, динамически обновляться столько нельзя.
9 masenshi
 
10.06.21
07:46
(4) также
7) учишься не использовать возвраты
8) сам контролируешь свой код на синтаксис
Естественно эти модули для каких-то небольших законченных кусков кода. Ну скажем так не более примерно 100 строк. Можно описать какие-то отдельные алгоритмы, возможно плюс 1 шаг к модульности кода, т.е. когда весь код не пишешь в одной процедуры - тысячи строк кода ))
9) самое ГЛАВНОЕ- мгновенность результата , мгновенность проверки работоспособности

Наглядность возможно дело привычки
10 Мимохожий Однако
 
10.06.21
07:47
(8) п.3 вызывает сомнения. Лопатить в рабочей базе стрёмно.
11 Почему 1С
 
10.06.21
07:49
(0) Я бы руки отрывал за такое, я понимаю есть задачи которые органично вписываются в метод выполнить вычислить, но твой подход это просто мрак.
12 masenshi
 
10.06.21
07:50
(10) да. Сидит там кто-то весь и все отлаживает все время
13 masenshi
 
10.06.21
07:51
(11) аргументы? почему нет?
14 тук-тук
 
10.06.21
07:55
использование выполнить() оправдано при отладке алгоритмов на рабочей базе
но для установившегося режима использование выполнить() - зло

без вычислить() иногда не обойтись, например для определения нужного общего модуля
15 Mikeware
 
10.06.21
07:55
(8)
6."ТЗ на коленке и меняют 10 раз в день" - может, начать обдумывать ТЗ, а не тупо принимать к исполнению?
8. "сам контролируешь синтаксис" - ты сделаешь это быстрее и лучше встроенного механизма? если нет, то тогда зачем?
"в одной процедуры - тысячи строк кода" - за это надо отрывать руки, и вставлять их непосредственно в отверстие...
16 Mikeware
 
10.06.21
07:56
(12) а ты тут такой опа и напрямую без отладки, внебрачный сын гени[тали]я1с...
17 masenshi
 
10.06.21
07:57
(1)
читать чужой код трудно это причем?
Отлаживать неудобно это да. Но я отлаживаю код ну очень редко. Отладка для меня это крайний случай. По началу были проблемы но в основном в уникальности имени переменных. А дальше все как всегда.
18 PuhUfa
 
10.06.21
07:57
(7) О да... у меня где то в архивах лежит база 77, конфа которой раскидана на множество txt файлов -)
19 acht
 
10.06.21
07:58
(13) Потому что это хорошо только для тебя, единственного, пишущего примитив. Как только над конфигурацией начинают работать двое - тут же требуется версионирование кода для отслеживания изменений и авторства... и аляулю.
20 acht
 
10.06.21
07:58
(17) > Но я отлаживаю код ну очень редко.
Вот-вот-вот
21 acht
 
10.06.21
07:59
"Программист 80Lv", угу
22 Mikeware
 
10.06.21
07:59
(11) а прикольно же? код модуля формирует динамический код. динамический код динамически формирует текст запроса...
хорошая заподлянка - можно натравить систему выполнчть, допустим, перед записью дока написанное в комментарии, начинающемся с "::::", а там написать drop database :-)
23 masenshi
 
10.06.21
08:00
(15) бывает что меняются базовые моменты которые никак не обдумаешь. Например в условии ТЗ было написано что Вася ехал на поезде а спустя время оказалось что на самом деле Вася плыл на лодке и имя у Васи не Вася а Петя. Пример не самый лучший конечно но суть надеюсь передает
24 masenshi
 
10.06.21
08:01
(20) отлаживаю в плане через отладчик. Если код работает как того требовалось то я его не отлаживаю. Естетсвенно проверяю но не отлаживаю через отладчик
25 PuhUfa
 
10.06.21
08:01
(22) и динамически рисуются все формы -)
26 Мимохожий Однако
 
10.06.21
08:02
(12) Может быть, разобраться в причинах присутствия нескольких программистов в одной конфигурации рабочей базы?
27 acht
 
10.06.21
08:02
(22) >  в комментарии, начинающемся с "::::"
и запускать это из обработчика ПриПолученииДанныхНаСервере =)
28 masenshi
 
10.06.21
08:02
(22) пользователь не имеет право выполнять произвольный код. Весь код в справочнике. Доступ имеет только главный админ )
29 Мимохожий Однако
 
10.06.21
08:03
(23) Пример того, что "надо править в консерватории".
30 Strogg
 
10.06.21
08:03
у Контура его модули с расширениями работают по такому принципу. Там можно целые простыни кода писать - все языковые конструкции находятся в соответствующих справочниках. Имхо, неплохой выход для тиражных решений с кучей мелких особенностей под кастомного клиента...
31 Mikeware
 
10.06.21
08:03
(27) да есть 100500 способов стрельнуть себе в ногу...
32 masenshi
 
10.06.21
08:04
(26) все время отлаживают что то. Ну любят ребята отлаживать и смотреть часами и искать причину почему код работает не так как хотелось изначально
33 PuhUfa
 
10.06.21
08:04
(23) если Вася уже Петя и он уже плывет а не едет, то это уже просто другое ТЗ -)
34 acht
 
10.06.21
08:04
(28) Понятно, распределенки у тебя тоже енет.
35 Мимохожий Однако
 
10.06.21
08:04
(28) У семи нянек дитя без глазу
36 acht
 
10.06.21
08:04
(23) Человек перемещатеся на транспорте.
Что не так?
37 Mikeware
 
10.06.21
08:05
(30) у контура ИсполняемыйМодуль в справочнике, а в нем уже код. Нормальный.
38 Мимохожий Однако
 
10.06.21
08:05
(32) Это просто клондайк, если за это исправно платят. Завидую )
39 Mikeware
 
10.06.21
08:07
(36) ну там наверняка что-то типа:
Если Пользователь.Наименование="Вася" тогда Справочник.Транспорт.НайтиПоНаименованию("зеленая лодка № 27")
40 masenshi
 
10.06.21
08:08
(16) ну у нас не настолько все сложно сколько неодназначно. чтобы писать примитивный код используя одни и те же конструкции типа Если, Цикл и т.п. не особо часто нужно прибегать к отладке.
41 Strogg
 
10.06.21
08:10
(37) Ты, наверное, о подключаемом модуле, ссылки на каждое событие в котором натыканы в основном модуле. А есть также расширения, которые как раз находятся в справочнике расширений и содержат куски кода, которые выполняются этим самым "выполнить"...
42 Mikeware
 
10.06.21
08:11
(41) ага, я про ПМ. Расширения не ковырял. сейчас гляну.
43 masenshi
 
10.06.21
08:16
Изначально мне показалось очень удобным использовать код через выполнить в регламентных заданиях.
Я создаю новый элемент в своем справочнике, пишу туда код. В консоли заданий его выбираю и вуаля. Регламентое задание уже работает без обновлений, без перезапусков по заданному расписанию
Мне показалось этой дико удобно и быстро. Почему бы не пойти дальше?
44 acht
 
10.06.21
08:18
(43) Сходи, почему нет.
"Убеждайте, убеждайте меня", оно уже жирновато.
45 Mikeware
 
10.06.21
08:20
(44) главное, чтоб "не стало обязательным"©анекдот
46 Фрэнки
 
10.06.21
08:21
в топике изначально задана самописка.
В условиях самописки какая в ... разница - ну будет заменено динамическое обновление на считывание кода откуда-нибудь и чего? Этот код самосгенерится что ли?!
47 acht
 
10.06.21
08:22
(45) Дада, при Сталине за это расстреливали! =)
48 masenshi
 
10.06.21
08:23
(19) еще хуже когда пишут не примитивный код для получения примитивного результата.
49 acht
 
10.06.21
08:24
(46) > самосгенерится
А чо бы и нет? Обменом с центрального узла, причем частично - один элемент справочника в одном пакете, второй - в другом. Красота!
50 acht
 
10.06.21
08:31
(48) Да можно ж всегда проще - на форуме спросить, не?
51 masenshi
 
10.06.21
08:37
(50) Можно. Спрашивай
52 acht
 
10.06.21
08:39
(51) Вопрос. Ты на свой вопрос в (0) ответ уже получил?
53 masenshi
 
10.06.21
08:42
(39) встречал и такое. До сих пор работает ))
Тока было Так Если Организация.ИНН = "123456789" Тогда ФИОДиректора= "Иванов Иван Иванович"
ИначеЕсли и погнали
54 masenshi
 
10.06.21
08:43
(52) Ты из службы поддержки форума?
55 acht
 
10.06.21
08:48
(54) А почему ты отвечаешь вопросом на вопрос?
56 Paint_NET
 
10.06.21
08:51
Кажется, из местных Геня подобной хернёй занимается. Кто-нибудь, позовите Геню и тащите попкорн...
57 1ctube
 
10.06.21
08:51
Отлаживать код не удобно, признак говнокода
58 masenshi
 
10.06.21
08:52
(55) пля. походу я общаюсь с ботом (((
59 masenshi
 
10.06.21
08:53
(57) все говнокодят кроме меня )))
60 Мимохожий Однако
 
10.06.21
08:53
61 masenshi
 
10.06.21
08:54
(60) как раз до топика прочитал. Ограничение не распространяется на код, прошедший аудит
62 masenshi
 
10.06.21
08:55
(60) не нашел там запретов
63 acht
 
10.06.21
08:55
(59) Твой говнокод - лучший!
64 masenshi
 
10.06.21
08:59
(63) Лучший сразу после твоего
65 ДедМорроз
 
10.06.21
08:59
Выполнить,как и ОписаниеОповещения - это некоторое подобие указателя на функцию,но очень примитивно сделано. Однако,за неимением другого приходится использовать.
Во многих случаях,вычисляемые поля в СКД,изменяемые пользователем заменяют выполнить.

А уж сбор текста запроса на лету вообще без оного.
66 Мимохожий Однако
 
10.06.21
09:01
(62) Никто не может тебе запретить шКодить ) Не переживай
67 acht
 
10.06.21
09:03
(64) Старайся и у тебя все получится! Будешь на первом месте!
68 Kassern
 
10.06.21
09:12
(43) регламентные задания через внешние обработки...не не слышали)
69 masenshi
 
10.06.21
09:14
(68) не внешние обработки а внешний код
70 Kassern
 
10.06.21
09:15
(69) а что мешает обернуть внешний код в внешнюю обработку и воткнуть ее в базу с запуском регламентного задания? Так же все динамически и никого выкидывать не надо
71 BeerHelpsMeWin
 
10.06.21
09:16
(12) Отлаживает? В рабочей базе? А почему он все еще у вас работает?
72 Kassern
 
10.06.21
09:19
(0) вот вы решите уволится, новый сотрудник будет долго матом крыть ваше решение, так как разобраться, что и как выполняется и какая тут логика собирая по крупицам код из справочников без возможности отладки такое себе удовольствие. Хозя заманается искать нового прога, либо ему скажут, что придется все заново переписывать.
73 Kassern
 
10.06.21
09:20
(72) вы своим кодом просто делаете подлянку владельцу, который платит вам за ваше решение. Подумайте над этим.
74 masenshi
 
10.06.21
09:21
(67) Ты прав. С мастером говнокода ведь не поспоришь
75 masenshi
 
10.06.21
09:24
(70) можно вопрос, а зачем так делать?
76 masenshi
 
10.06.21
09:25
(71) вопрос уже не моей юрисдикции )
77 Kassern
 
10.06.21
09:25
(75) затем, чтобы не пихать свою портянку в выполнить и не писать свой велосипед. Все уже придумано и есть в БСП.
78 BIP1
 
10.06.21
09:26
(68) Вы про самописную или про функционал бсп?:)
79 Kassern
 
10.06.21
09:27
(78) функционал бсп
80 masenshi
 
10.06.21
09:27
(72) я когда пришел много кода перелопатил от семерошника который не умел юзать запросы. Хотя запрос в цикле он еще умел заюзать. И ничего.
81 Kassern
 
10.06.21
09:28
(80) вы наверное получали удовольствие от такой работы? Только по факту страдает владелец после смены спеца, решение которое можно было сделать за день, пилят месяц, потому что до этого все через одно место было написано.
82 acanta
 
10.06.21
09:29
(80) а об этом знает ваше руководство или сам семерочник?
83 Фрэнки
 
10.06.21
09:30
Просто на форуме еще не успели позабыть эпический срач "незаменимый Вася"
Забавно совпадение, что в исходных условиях самого первого топика как раз было обозначена привязка Васи к ДВ
84 masenshi
 
10.06.21
09:31
(73) а если владелец всеми руками за такое решение?
85 Фрэнки
 
10.06.21
09:33
(84) Если Владелец не возражает против злоупотребления метода Выполнить(), тогда в чем суть топика?
86 Kassern
 
10.06.21
09:33
(84) если так, то я рад за вас, вы прям нашли друг друга.
87 acanta
 
10.06.21
09:33
+(82) есть разница между тем, что текст запроса собирается в цикле программно, а выполняется однократно вне цикла и тем, что текст запроса прописан вне цикла, а выполняется в цикле?
88 masenshi
 
10.06.21
09:34
(81) Получал опыт. Программиста уволили. Давайте не будем обсуждать страдания владельца. ПУскай будет так что владелец нам доверяет на 100% при любом раскладе.
89 masenshi
 
10.06.21
09:35
(83) на всем ДВ только один Вася
90 Kassern
 
10.06.21
09:35
(88) ну тогда все на вашей совести, но я бы не советовал так делать в продакшене, только в исключительных случаях, где этот метод подходит (например кд2)
91 youalex
 
10.06.21
09:35
(0) "Коллеги не разделяют моей любви к внешнему коду"
Интересно, в чём это выражается /как проявляется?
92 masenshi
 
10.06.21
09:35
(65) запрос на лету собирается или даже просто собирается это не по мне
93 masenshi
 
10.06.21
09:37
(91) примерно как легкое недовольство ))
94 Фрэнки
 
10.06.21
09:38
(92) Ну так открой актуальные релизы ЗУП 3 и насладись , как там сделана встроенная отчетность

И этим всем, кто недоволен "внешним кодом" тоже его покажи.
95 masenshi
 
10.06.21
09:39
(91) но их недовольство не исключает чье-либо еще недовольство по другим поводам. Так что это скорее взаимно да и вполне нормально
96 Mort
 
10.06.21
09:40
Есть такая специальная олимпиада - придумать _Метод_ и пользуясь властью всех им заё****ть.
Давайте обработками имитировать ООП, давайте флаг ошибки возвращать в каждой функции, давайте методы вынесем в справочник. -Кто вдруг попал к такому гуру-(или горе-)энтузиасту - убегайте.
97 masenshi
 
10.06.21
09:41
(94) ага. И что хуже? Внешний код или запрос на лету?
98 acanta
 
10.06.21
09:41
(93)программисты 1с народ вежливый. Для них легкое недовольство может быть серьезнее чем скандал на весь город с пожаром на центральном рынке.
99 VladZ
 
10.06.21
09:51
(0) Ну что тебе сказать...  Каждый должен пройти свой путь.

В конце пути ты поймешь, что нет надобности тратить свое время на разработку того, что уже есть.
Решение в данном случае - это регламентные задания через внешние обработки.
100 mikecool
 
10.06.21
10:01
(0) пользуюсь, когда надо в цикле прогнать несколько методов(типа последовательного приближения к результату)
отлаживать такое - без проблем, отладчих ходит куда нужно
101 АнализДанных
 
10.06.21
10:02
(0) Кроме всех минусов, которые описали: Метод выполнить ограничен тем, что тебе приходится писать код, без разбиения на процедуры. Он становиться более сложным. Если ты в основной конфигурации изменишь то, что используется в твоих алгоритмах, то все твои "выполнить" отвалятся. Я сталкивался с подобной реализацией, кроме негатива в такой реализации ничего хорошего нет.
Если уж очень хочется, то сделай это, через внешние обработки, тогда можно будет отлаживать и более комфортно вести разработку.

Самое сложное с чем я сталкивался - это когда внутри метода "Выполнить" есть вложенные в друг-друга "Выполнить", как в таком коде разобраться. Твои коллеги правы.
102 masenshi
 
10.06.21
10:07
(99) "Каждый должен пройти свой путь. Но сразу скажу - твой путь неправильный" ))
103 Oftan_Idy
 
10.06.21
10:09
(0) Это Абсолютное Зло.

Единственное место где это "добро" и "правильно" - это конфа "Конвертация данных"
104 Kassern
 
10.06.21
10:10
(102) в вашей нетленке есть понятие полных прав? Используете роли, или тупо в коде, если это вася тогда разрешить?
105 Said_We
 
10.06.21
10:15
Функция ИмяТабличнойЧасти(пКнопка)
    Перем ИмяКнопки, ИмяТабличнойЧасти;
    
    ИмяКнопки = ВРег(пКнопка.Имя);
    
    ИмяТабличнойЧасти = "";
    Если Найти(ИмяКнопки, ВРег("ТабличнаяЧасть1")) > 0 Тогда
        ИмяТабличнойЧасти = "ТабличнаяЧасть1";
    //ИначеЕсли Найти(ИмяКнопки, ВРег("ТабличнаяЧасть2")) > 0 Тогда
    //    ИмяТабличнойЧасти = "ТабличнаяЧасть2";
    КонецЕсли;
    
    Возврат ИмяТабличнойЧасти;
    
КонецФункции
Процедура УстановитьГалочки(Кнопка)
    УстановитьЗначениеГалочки(ИмяТабличнойЧасти(Кнопка), "Истина");
КонецПроцедуры
Процедура СнятьГалочки(Кнопка)
    УстановитьЗначениеГалочки(ИмяТабличнойЧасти(Кнопка), "Ложь");
КонецПроцедуры
Процедура ИнвертироватьГалочки(Кнопка)
    УстановитьЗначениеГалочки(ИмяТабличнойЧасти(Кнопка), "НЕ СтрокаТЧ.Пометка");
КонецПроцедуры
Процедура УстановитьЗначениеГалочки(пИмяТабличнойЧасти, пЗначение)
    Если НЕ ЗначениеЗаполнено(пИмяТабличнойЧасти) Тогда
        Возврат;
    КонецЕсли;
    
    Выполнить( "
    | Для Каждого СтрокаТЧ Из "+ пИмяТабличнойЧасти +" Цикл
    |    СтрокаТЧ.Пометка = "+ пЗначение +";
    |КонецЦикла;
    |");

КонецПроцедуры
106 masenshi
 
10.06.21
10:16
(104) права юзем и даже РЛС есть. Но используется не везде, только там где это необходимо.
107 Said_We
 
10.06.21
10:18
Пять процедур и функций которые для всех табличных частей описывают установку, снятие и инвертирование галочек через Выполнить(). Главное правильные имена кнопкам дать, в функции ИмяТабличнойЧасти() добавить пару строчек и усё.
108 acht
 
10.06.21
10:20
(105) ЭтотОбъект[пИмяТабличнойЧасти], не ?
109 razlagator
 
10.06.21
10:20
(0) Для таких как ты, в аду отдельный котел уже приготовлен.
110 Фрэнки
 
10.06.21
10:27
(97) // И что хуже? //

Вспомнился анекдот про ковбоев и навоз
111 Mikeware
 
10.06.21
10:30
(80) тю. ну я семерошник. с прямых запросов, правда. И ничего, умудряюсь исправлять "запросы в цикле" за франями, которые не то, что клюшек - снеговика на ОФ не видели, только УФ.
вон, сейчас контора, разраб федерального уровня, обработку с кодом О-квадрат подкинула... "Вычислительная сложность"? не, не слышали... франч, кстати, О-куб умудрился реализовать...
112 Фрэнки
 
10.06.21
10:30
- Ты вот эту кучку видишь?
- Ну вижу и чего?
- А спорим на 100 баксов, что я её съем?!
- А давай.
Съел. Едут дальше. Обидно этому другому, что 100 баксов проспорил. И тут еще одна кучка навоза.
- О! Вот есть кучка. Спорим на 100 баксов, что я тоже съем?!
Поспорили. Съел. Проехали еще немного.
И один из них говорит :
- Знаешь, Джо, у меня такое чувство, что мы с тобой задарма дерьма нажрались.
113 acht
 
10.06.21
10:32
(107) У тебя котел рядом с котлом для ТС стоять будет.

Процедура УстановитьЗначениеГалочки(Кнопка, Значение)
    
    ИмяТабличнойЧасти = СтрЗаменить(ВРег(Кнопка.Имя), "КнопкаУстановитьГалочку", "");
    Приемник = Новый Структура(ИмяТабличнойЧасти);
    ЗаполнитьЗначениеСвойств(Приемник, ЭтотОбъект);
    
    ТабличнаяЧасть  = Приемник[ИмяТабличнойЧасти];
    Если ТабличнаяЧасть = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Для Каждого СтрокаТЧ Из ТабличнаяЧасть Цикл
        Если Значение = Неопределено Тогда
            СтрокаТЧ.Пометка = Не СтрокаТЧ.Пометка;
        Иначе
            СтрокаТЧ.Пометка = Значение;
        КонецЕсли;  
    КонецЦикла;

КонецПроцедуры
114 ptiz
 
10.06.21
10:34
(0) Выполнить() для обычного кода - это временный подключаемый костыль. Потом всё переносится в нормальный код и Выполнить() перестает работать.
Исключение, как уже говорили -  конвертации данных и т.п.
115 ptiz
 
10.06.21
10:38
Пример костыля:

Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаТоваров, Отказ, Заголовок)

    КлючАлгоритма = "Документ_МойДокумент_ДвиженияПоРегистрам";
    ТекстАлгоритма =  НайтиАлгоритмПоКлючу(КлючАлгоритма);
    Если ЗначениеЗаполнено(ТекстАлгоритма) Тогда
        Выполнить(ТекстАлгоритма);
        Возврат;
    КонецЕсли;
....



Где НайтиАлгоритмПоКлючу()  - функция в Глобальнике, берет код из параметра сеанса (ФиксированнаяСтруктура).
Нет, не тормозит, т.к. используется временно , только для экстренного исправления ошибок.
116 Said_We
 
10.06.21
10:39
(113) Инверсия галочек где?
(108) Это лишь пример того, что я встречал в рабочих базах не временного использования.
117 acht
 
10.06.21
10:52
(116) Если Значение = Неопределено Тогда
118 acht
 
10.06.21
10:54
(116) > что я встречал
И ты пропускал такой код? Или ты был маленьким бесправным программистом?
119 Said_We
 
10.06.21
10:54
В цикле сравнение - зачем?
120 Kassern
 
10.06.21
10:58
(119) незачем, можно просто СтрокаТЧ.Пометка = Значение;
121 Kassern
 
10.06.21
10:58
(119) в любом случае метод выполнить для этой задачи не оптимальный
122 Said_We
 
10.06.21
11:01
(118) Переменная "Значение" в твоем коде, это входной параметр в Процедуру и в теле процедуры значение не меняется. Зачем в цикле его значение проверять?
Для этого и существует динамический код.
(121) Нельзя. Там инверсия на Неопределенно зашита. Правда процедура должна была бы быть такой:
Процедура УстановитьЗначениеГалочки(Кнопка, Значение = НЕОПРЕДЕЛЕННО)
123 Kassern
 
10.06.21
11:02
(122) вы мне хотите сказать, что без "выполнить" вашу задачу с галочками не решить?))
124 Said_We
 
10.06.21
11:05
(123) Где вы такое прочитали? :-) Странный вывод.
125 Said_We
 
10.06.21
11:07
(123) Когда нибудь сигнатуру полиморфного вируса видели?
126 Kassern
 
10.06.21
11:08
(124) Я вам пишу, что для этой задачи данный метод не оптимальный, вы ссылаясь на это пишите, что "нельзя". Что нельзя то? Нельзя сделать без метода выполнить?
127 Kassern
 
10.06.21
11:08
(125) нет, не интересовался
128 Said_We
 
10.06.21
11:11
(120) нельзя
129 Said_We
 
10.06.21
11:12
У вас два сообщения подряд. Мне они в начале в другом порядке отобразились или я их иначе как-то увидел.
130 Said_We
 
10.06.21
11:13
(121) Как раз оптимальность в том, что не нужно в цикле ничего проверять.
131 Kassern
 
10.06.21
11:25
(130) и чем вас условия в цикле не устраивают? Это же не запросы в циклах, жрут простые условия совсем кроху ресурсов. Зато код в разы становится читабельней.
132 Kassern
 
10.06.21
11:27
(131) это ладно простой пример. Вы залезьте в пересчет строк в ТЧ документов, тех же заказов/реализаций и посмотрите какая там структура действий и как она выполняется. А теперь представьте все это дело реализовать вашим способом через выполнить...
133 Said_We
 
10.06.21
11:31
(131) Автор в (0) задал вопрос как вы относитесь к "Выполнить()".
Я привел пример, когда код выглядит более читабельным и даже оптимальным из-за отсутствия условий в цикле.

Что-то сложное с помощью "Выполнить()" пишут только либо временное - выше примеров привели много.
Либо тиражные решения, где программа одна, а используют разные подразделения холдинга, при этом у каждого функционального заказчика, пусть бухгалтера своё видение "правильного" алгоритма. Часть кода переносят в пользовательский режим под крайне пристальным присмотром админов.
134 Kassern
 
10.06.21
11:33
(133) это все вкусовщина "Я привел пример, когда код выглядит более читабельным"
135 Kassern
 
10.06.21
11:37
(134) завтра понадобятся доп условия, к примеру, поставить галочки, только у тех строк, где сумма меньше стольки то,  инвертировать галочки на против клиентов, у которых задолженность не превышает установленную в договоре. Вы эти условия куда пихать будете, так же в выполнить?
136 Said_We
 
10.06.21
11:40
(134) Согласен. Каждому разный код кажется более читабельным. Мне чем меньше условий в том числе в цикле, тем и более читабельно.
Мне когда-то вот такой код был более читабельным:
    mov ah, 0x9
    mov dx, [bx]
    int 0x21
137 Kassern
 
10.06.21
11:40
(136) кто чему учился)
138 Serg_1960
 
10.06.21
11:44
Вы отклонились от темы :)
139 Said_We
 
10.06.21
11:47
Да тему уже можно закрывать. Все вариации уже дали. Вопрос же не первый раз поднимается.
140 israel
 
10.06.21
12:22
(0) за такое надо увольнять сразу
141 H A D G E H O G s
 
10.06.21
13:21
(0) Просто дай нам знать, где ты!

Чтобы по незнанию не нарваться на твою поделку.
142 ДенисЧ
 
10.06.21
13:24
(141) У тебя лишний Тополь завалялся? ))
143 masenshi
 
10.06.21
15:13
(141) И по знанию не пройдешь.
144 masenshi
 
10.06.21
15:18
(115) примерно так и юзаю. Только у нас код меняется часто, не спешу выносить конфигурацию. Ну а потоми не надо. И так все работает да и другие задачи есть всегда. Платят не за красивые глазки а за быстрый результат. Медленно и красиво никого не интересует.
145 masenshi
 
10.06.21
15:19
(114) почему кд2 исключение а моя конфа нет?
146 Kassern
 
10.06.21
15:23
(145) потому что конвертация данных это конфа созданная для динамического генерирования кода для обмена. У нее специфика такая, а метод выполнить, как раз подходит под эти нужды. У вас же обычная конфа под бизнес процессы. Делать ее на динамическом коде из справочников не целесообразно.
147 Arbuz
 
10.06.21
15:24
Да ладно вам. Надо ещё больше функциональщины, и чтобы можно было ещё перегружать операторы, и переопределять события. И ассемблерные вставки с интринсиками тоже нужны. И динамическая смена нотации - тут хочу так, а там по другому.
148 Kassern
 
10.06.21
15:24
(146) с тем же успехом могли вообще во внешние txtшки код вынести и на свой яндекс диск. А что такого? доступ только у вас, все же работает, руководству же пофиг да?)
149 Arbuz
 
10.06.21
15:27
(148) В базе надо хранить, запросом собирать и в Выполнить(). Можно в удалённой базе и через http-сервис таскать.
150 H A D G E H O G s
 
10.06.21
15:27
(143)
Beтepoк pacкaчивaeт чувcтв кaчeль,
И тaкaя гopeчь!
A любoвь мoя пeчaль-виoлoнчeль,
И нa нeй xpеначит мёpтвый Pocтpoпoвич!
151 acht
 
10.06.21
15:32
(143) Чой-то ржу.
152 Kassern
 
10.06.21
15:33
(149) в удаленной базе тоже как вариант, главное чтобы не у работодателя. Потом удобнее яички выкручивать при увольнении) и главное в бекапах логики вообще не будет, только данные, а как с ними работать знает лишь удаленная база)
153 acht
 
10.06.21
15:33
(145) В том, что КД2 люди пограмотней писали.
154 masenshi
 
10.06.21
15:48
(153) IQ тестом проверял или женская логика так решила?
155 masenshi
 
10.06.21
15:51
(146) кстати, есть конфа такая - простые процессы называется. Так там что-то подобное даже еще дальше ребята пошли. У них бизнес процессы разрабатываются прямо в режиме предприятия. Они тоже все отморозки?
156 Kassern
 
10.06.21
15:56
(155) у вас конфа для каких целей, какие бизнес задачи решает?
157 Kassern
 
10.06.21
15:56
(155) я кого-то отморозком называл?
158 Kassern
 
10.06.21
15:57
(156) какой штат программистов 1с ее поддерживает и сколько активных юзверов. Есть ли риб?
159 masenshi
 
10.06.21
15:58
(157) нет конечно. Это я от себя добавил да и в переносном смысле.
160 masenshi
 
10.06.21
15:59
(156) меня уволят за раскрытие тайны. Просто управленческая конфа.
161 Фрэнки
 
10.06.21
16:03
да уж... не зря я про Васю подумал. Всё очень и очень похоже. :-)
162 masenshi
 
10.06.21
16:08
(158) от 2 до 4 в разное время разное. Риб есть. Обмены подпиленны напильником. Но использование внешнего кода появилось не так давно. Первоначальная цель это быстрое исправление ошибок в текстах запроса, далее подхватил перенос роботов на регламентные задания. Роботы это жалкое подобие регламентных заданий (были до меня еще), код выполняется в толстом клиенте - запущено клиентское приложение 1С предприятие и выполняется какой-то код. БСП нету у нас. Думал юзать внешние обработки - но это долго и не динамично. А с внешним кодом как-то все по маслу пошло.
163 masenshi
 
10.06.21
16:09
(161) да нет твоего Васи в этой теме не теряй время. поищи в других  - быстрее найдешь.
164 masenshi
 
10.06.21
16:09
(163) и привет передавай
165 Kassern
 
10.06.21
16:13
(162) ну вот побаловались, пора и в конфу запилить. Накатить бсп и юзать рег задания через внешние обработки. Так же динамически в любой момент сможете их править. Зато будущее поколение вам спасибо скажет за функционал бсп. Особенно когда с торговым оборудованием любаться)
166 BeerHelpsMeWin
 
10.06.21
16:14
(162) >Первоначальная цель это быстрое исправление ошибок в текстах запроса
тестировать в тестовых базах, переносить в продакшн только отлаженный текст - это для лохов, которые никуда не торопятся?
167 Kassern
 
10.06.21
16:16
(162) а пробовали работать через хранилище конфигурации и тестовой базой? На ней играетесь, отлаживаете хоть по 100 раз, пока как надо не заработает, а потом в рабочую заливаете.
168 masenshi
 
10.06.21
16:18
(166) тестируем все как и полагается. Меняют нам ТЗ. Требуют динамического обновления. Ну и платят за это
169 masenshi
 
10.06.21
16:20
(167) да. Так и работаем. Хранилище конфы у нас. Даже одному и то удобно работать с хранилищем конфы. Но за игры нам не платят. Если 100 раз проверять меня уволят за безделье
170 Kassern
 
10.06.21
16:24
(169) с хранилищем действительно удобно даже и одному, чтобы свои изменения прослеживать. Чтобы 100раз не проверять, нужно стараться сразу правильно писать, с опытом это приходит, в итоге написали, на тестовой проверили, залили на рабочую. У вас там огромная нагрузка и нет временных окошек для обновлений?
171 Said_We
 
10.06.21
16:40
Я уж думал, что после (105) спор закончится. Пример простой короткий и наглядный, где с Выполнить(), код оптимальнее (без лишних проверок в цикле) получается и короткий (без дублирования строчек кода).
А тут переливание с пустого в порожнее.
172 Kassern
 
10.06.21
16:52
(171) тут видимо у тс нет возможности писать сразу код грамотно, либо нет возможности сгруппировать хотелки и один раз в день их обновить в регламентном окошке, а демоническим обновлением боится. Поэтому и юзает код из справочников через выполнить и по живому по 10раз на час его правит, пока нужный результат не увидит.
173 Said_We
 
10.06.21
16:54
(172) Экстремальное программирование - это когда за твоей спиной стоит бухгалтер с большой палкой и как только видит, что ты не нажимаешь на кнопки - значит ни чего не делаешь и надо бить сильно тебя по голове. Так что ли?
174 Kassern
 
10.06.21
16:58
(173) это лучше у ТС уточнить, я лишь предположил из вышесказанного)
П.С. Зачем с дубинкой? Сейчас же 21 век! Есть же электро ошейники)))
175 Said_We
 
10.06.21
17:02
Да что там думать.
"Выполнить()" удобный инструмент, но сувать его на постоянку без веских причин - это параноя.

В 77 была возможность загрузить модуль из файла, но в 77 не было динамического обновления совсем. Очень часто паралельно использовали 1С++ и ООП. Так что там были веские причины использовать, но про отладку можно забыть.

В КД есть веские причины, так как сам механизм конвертации на этом построен.
В простом коде можно применять. Пример в (105) - но это практически статичный код. Просто один из 3-х текстов кода строится динамически.

Совсем динамически в тиражных версиях, когда паралельно одновременно много правильных алгоритмов, но при этом с разными результатами. Но там далеко не всё выносится в НСИ (внешние файлы не используют - как правило, и отслеживают историю изменения).
176 acht
 
10.06.21
17:07
(171) > код оптимальнее
да-да-да, точно-точно
177 masenshi
 
10.06.21
17:09
(171) да нет тут спора. Делимся мнением. Обсуждаем
178 H A D G E H O G s
 
10.06.21
17:15
А теперь вопрос:
Кто бы хотел пойти работать в конфу автора?
179 BeerHelpsMeWin
 
10.06.21
17:20
(178) FTFY: "Кто бы хотел пойти работать в конфу автора за полторы рыночных зарплаты?"
180 masenshi
 
10.06.21
17:20
(172) В силу ограниченного времени и в силу динамичности ТЗ не всегда получается написать конечный код с первого раза. Демонические обновления не всегда возможны. Старые версии платформы не редко крахались в этом обновлении. Все изменения нужны уже сейчас. Такая работа. Метод ЛИФО. Да и правка без захватить из хранилище, поправить код, смоделировать ситуацию и отладить, поместить в хранилище. Зайти в суперконфигуратор, предварительно выгнав того кто там засел, иногда подождать приходится, а мысли то прут их не остановить, аутентиицироваться в т.ч. в хранилище, получить из хранилища, обновить демонически, закрыть (а раньше еще он в ребут сам уходил - приятного мало было ), правка такая ну быстрее в разы. Сколько ненужных технологических операций перечислил. Все! 1С щас прочитает это сообщение и перейдет полностью на внешний код в след за кд2))
181 masenshi
 
10.06.21
17:23
(178) Скажу по секрету. Твой вопрос не будут воспринимать всерьез. И отвечать будут соответственно.
182 Фрэнки
 
10.06.21
17:25
(181) ну я серьезно таки отвечу, что не пошел бы. За любую зарплату.
183 masenshi
 
10.06.21
17:28
(182) И в газпром не пошел бы наверное ... по той же причине )))
184 Фрэнки
 
10.06.21
17:29
Просто я уже работал в нечто подобном.
И дело не в том, что выбран некий способ, который как-то и чем-то не нравится.

Дело в том, что выбор способа - это обычно следствие сложившихся обстоятельств.
185 H A D G E H O G s
 
10.06.21
17:29
(179) Да хоть за две. Но это маловероятно.
186 H A D G E H O G s
 
10.06.21
17:30
(183) Страшно далеки вы от реальности.
187 masenshi
 
10.06.21
17:30
(184) ну а стать мужиком и взять ситуацию под свой контроль? Или обстоятельства всегда сильнее?
188 masenshi
 
10.06.21
17:32
(186) и вы от действительности
189 Фрэнки
 
10.06.21
17:32
(187) Ну если у вас там ситуация аля Газпром... Образно. Кто я такой, чтоб строить из себя Дон Кихота и набрасываться на ваши ветряные мельницы?!
190 Kassern
 
10.06.21
17:33
(181) а что будете делать, когда часть документов провелась по одной логике, а часть по другой, юзверы же не в курсе, что вы там в справочниках правите. К примеру вы правите логику резервов, люди херачат заказы и вы бац и поменяли это логику, часть товаров из реализаций которые успели завести, пока вы ее меняли логику не списались с резерва. Пока товар был в наличии, вы даже и не в курсе о косяках в проводках, а через пол года потом выяснится, что не верные резервы. Какая логика была пол года назад хз.
191 masenshi
 
10.06.21
17:34
(189) ну если меня в вашу контору пригласят за 4х то придется идти и внедрять внешний код )))
192 Фрэнки
 
10.06.21
17:36
(190) не... если именно так, как ты описываешь, то в справочниках править можно с соблюдением версионности и много всякого можно еще придумать для контроля, сохранения привязок ко времени и т.п. Даже красивее будет, чем просто в конфе, т.к. конфа все-таки срез только один (это в хранилище срезов множество, а в текущей конфе одна версия).
Прикольно можно сделать. Интересно даже. Но... не очень интересно.
193 acht
 
10.06.21
17:36
(180) >  на внешний код в след за кд2))
И про КД3 ты тоже не в курсе, печалька
194 H A D G E H O G s
 
10.06.21
17:37
Автору бы с Гением 1С сковворкироваться в синергетическом слиянии с его базухой - вот это был бы номер.

Статью в хабре не забудьте написать, там такое любят.
195 acht
 
10.06.21
17:37
(180) > а мысли то прут их не остановить

Вот она, мякотка!
196 masenshi
 
10.06.21
17:38
Да у нас при закрытии квартала еще 30 раз поменяется логика и все перепроведется. Да и товар у нас уникальный. Пока до конечного получателя не дойдет никакой апокалипсис не помешает.
197 Said_We
 
10.06.21
17:39
(180) Бюрократия помогает в таких случаях - должны написать ТЗ. Подписать. Согласовать. Изменения в ТЗ - согласовать, подписать и новые сроки.
По другому такие скачки не лечатся. Их не должно быть. Даже когда пишут в режиме стреляй, а потом целься. Всё равно должны описать, что и как хотят. И согласовать не только сами с собой, но и с тобой как исполнителем. У тебя не должно быть вопросов как эту хотелку реализовывать.
У меня часто согласование заканчивалось на вопросе, а в таком случае какой результат правильный? А случай как правило с подвыподвертом, но реально существующий в жизни предприятия....
198 masenshi
 
10.06.21
17:40
(192) Ты уже почти на темной стороне ) Будешь на ДВ заходи
199 Said_We
 
10.06.21
17:42
(183), (189) Кто сказал что в Газпромах ЗП у программистов выше чем на рынке?
Скажу вам, что даже ниже. Есть типа морковки перед носом - годовая премия в размере нескольких окладов, но её может и не быть по разным причинам. Были опоздания на рабочее место в N-ом количестве в году, то премия вообще не положена.
200 Фрэнки
 
10.06.21
17:43
(191) Ну я бы не называл это "внешний код" - термин не очень удачный. На самом деле, такой код не должен быть внешним. Не знаю как его более удачно назвать. Может и попадется где-то на глаза. Такие подходы есть. Что-то вроде динамических библиотек или динамически компилируемого...

Можно придумать - будет очень пристойно звучать.

Если не слишком придираться, то внутри бесчисленного множества строчек кода можно предусмотреть бесчисленное множество ветвлений. А если ветвления бесконечно много, то что-то наподобие ИИ может принимать решение. Отличие только в том, что весь код в конфе _уже_ написан, а тут он пишется ежедневно. Физически это может быть небезопасно с точки зрения самой работы, но код ошибками может быть и в статическом коде, а не в динамическом - принципиальной разницы тут нет.
201 masenshi
 
10.06.21
17:47
(197) внедряли несколько раз эту бюрократию. Не прижилась совсем. Сначала аудитор говорит, что все через него, что он герой, все будет пропускать через себя и согласовывать. Через неделю уже говорит отстаньте все от меня - сами разбирайтесь. А потом абонент в не зоны действия сети....
202 Фрэнки
 
10.06.21
17:49
Мне, к примеру, нравится типовое решение Бюджетирование, которое я считаю инструментом, а не законченным решением. Т.е. там есть сам инструмент для работы. И есть модель. Модель можно выгрузить в файл, затем загрузить в другую конфигурацию. Но это в режиме Предприятие и хранится в базе, а не в конфе.
Т.е. это не "внешний код", но все-таки и не конфигурация.

Там в основном на СКД все дописывается. Чаще всего весь кодинг этим и заканчивается. Но подход получается такой, как у ТС - исполняемый код можно подготовить к работе и выполнить без перезапуска базы в режиме Конфигуратор.
203 masenshi
 
10.06.21
17:52
(199) первые полгода однозначно ниже. А потом, если не тупить то будет чуть выше, а потом как масть пойдет.
204 masenshi
 
10.06.21
17:54
(202) я успел по работать с ним в УПП. Там отчасти идею подхватил.
205 masenshi
 
10.06.21
17:55
(202) ну это же круто. Меньше кнопок нажимать - больше денег в чемодане под кроватью )))
206 masenshi
 
10.06.21
18:45
(193) в курсе. Только причем тут кд3?
207 Конструктор1С
 
10.06.21
19:19
(0) за такое нужно руки обламывать
208 Конструктор1С
 
10.06.21
19:24
(6) просто надо разрабатывать по-человечачи. Разработка - тестирование - приемочное тестирование - релиз. А не этот ваш бардачина, где "херак, херак и в продакшн" поставлено на поток
209 Конструктор1С
 
10.06.21
19:31
(8) геморрой:
1) средства разработки рыдают
2) отладки нет
3) код - дерьмище из километровых портянок, ибо нет возможности писать методы
4) дублирование кода махровое, ибо всё также нет возможности писать методы
5) навигации по коду нет
и ещё длинный-длинный список. Кодом в справочниках вы убиваете сопровождаемость разработки. Пришедшие после вас программисты застрелятся, или вас застрелят
210 BeerHelpsMeWin
 
10.06.21
19:49
(208) там не "херак, херак и в продакшн". там "херак прямо в продакшне в режиме онлайн"
211 Cthulhu
 
10.06.21
20:24
/шёпотом/ а если не в справочник, а в периодический регистр сведений с завязанными на измерения и реквизиты версионированием, правилами перегрузки, уровнем использования, завязками на прочие параферналии вплоть до компетенций... и т.п.......
ойёооо
212 acht
 
10.06.21
20:34
(211) Лучше в регистр расчетов с использованием вытеснения. Очень пригодится при внезапных патчах!
213 palsergeich
 
10.06.21
22:14
(0) Динамический код существенно усложняет расследования проблем.
в универсальных механизмах он хорош, но что бы жеппа не горела для написания кода с ипользованием динамического кода нужна достаточно высокая квалификация.
214 ДедМорроз
 
10.06.21
23:32
А внезапно,код внутри выполнить можно выполнять построчно.
215 Азат
 
10.06.21
23:46
(0) в 7.7 один раз видел конфу, где вообще все модули состояли из ЗагрузитьИзФайла. Это было прям идеально
216 Cthulhu
 
11.06.21
00:46
(215): у меня так на дико перепиленной и допиленной комплексной было. с накрученным wms, позаказным производством, дико навороченной упр.аналитикой, мат.учетом, и т.п.
правда все текстовые файлы содержали кашу из комментариев с маленьким вменяемым кусочком кода в приоткрытии... но то таке. исходники у кого надо - у того были. )))
217 masenshi
 
11.06.21
03:21
(210) уровень Hardcore
218 masenshi
 
11.06.21
03:26
(213) это не динамический код. Это внешний код. Он динамический лишь на этапе разработки и еще чуть чуть все оставшуюся жизнь. Отчасти динамический, не?
219 masenshi
 
11.06.21
03:45
(209) 2) возможно. Всегда ли необходимо см. пункт 3
3) так как нет возможности писать функции то использую для небольшого по размеру кода, небольшие алгоритмы.
4) там где дублирование кода нельзя избежать то не используем. Но на практике такие случаю редки. Тут скорее наоборот - чтобы не засирать разнообразным кодом встроенные модули
5) навигации нет но зато есть язык запросов к БД. А это мгновенный поиск фрагментов кода
220 Конструктор1С
 
11.06.21
08:11
(219) охотно верю, что этот костылище сплошь наполнен удобочитаемым кодом
221 Фрэнки
 
11.06.21
08:13
(218) такой код вообще не нужно называть "внешним" - это только "динамический"

Тут важен не способ хранения текста этого кода, а способ его обработки в процессе выполнения. "Внешний" источник текста с кодом заменяется на его размещение в составе данных БД. При этом размещении кода, его можно подвергнуть процедурам, которые должны снизить до минимума случайное появление такого кода в программе. Почему тогда это код называется "внешний" ?!
222 Фрэнки
 
11.06.21
08:14
(220) и какой ты после этой реплики "конструктор" ?!
223 Фрэнки
 
11.06.21
08:17
Всем хаятелям предложеной методики нужно четко понимать, что сам по себе такой подход к исполняемому коду не оригинальный и не ноу-хау, а довольно интенсивно используется в типовых решениях.
Отличие только в том, что ТС обратил на это особое внимание и решил этот подход выделить, совершенно не обращая внимания на его идентичность типовым.
224 acht
 
11.06.21
08:37
(206) Ща проверим, как ты в курсе. КД3 - следует за КД2. Где там код?
225 Гений 1С
 
гуру
11.06.21
08:38
(0) в 2is все было на Выполнить. Ну почти. ;-)
(224) во фрешах не смогли обеспечить "песочницу", поэтому запретили Выполнить и заменили гибкое КД2 на убогое КД3
226 acht
 
11.06.21
08:39
(223) > Отличие только в том
Только в том, что в типовых он занимает определенную, изолированную и ограниченную нишу. А ТС обожествляет этот подход, растягивает его на вообще всю разработку.
227 acht
 
11.06.21
08:45
(225) КД3, Геня, в первую очередь изобрели для того, чтобы уйти от пары наборов правил в КД2 - источника и приемника. 1С задолбалась подерживать правила зоопарка конфигураций разных версий, к которым надо было выпускать новые правила обмена с каждым выходом нового релиза источника или приемника. Переломить рынок и заставить всех обновляться по щелчку пальцев нереально. А вот во фреше это наоброт вполне возможно.

Так что у тебя как всегда. Бгг, 0 бит и буквоедство.
228 K1RSAN
 
11.06.21
08:52
(0) У нас буквально в одном месте используется, и то потому что это перенесено было ещё из клюшек - формула для расчета показателей в рапорте производства. Плююсь каждый раз, но переделывать будет стоить дороже, чем пару раз заполнить при появлении новой продукции.
229 Фрэнки
 
11.06.21
09:15
(226) ну это ты сам так решил. На всю разработку он его на практике растянуть не сможет, потому что смысла в таком растягивании там не будет.
230 fisher
 
11.06.21
09:22
"Употребляй, но не злоупотребляй!" (с) Козьма Прутков
Не помню точно, говорил он это или нет, но вполне мог бы.
231 fisher
 
11.06.21
09:25
Употребляю в основном когда выхода нет или когда плюшки сильно перевешивают.
Например, забабахал справочник "Настраиваемые регламенты", где можно без конфигурирования любой скрипт зарегламентить. Очень удобно.
232 Фрэнки
 
11.06.21
09:27
(231) так я выше уже расписал пример. Подсистема Бюджетирование практически полностью именно так и работает.
233 fisher
 
11.06.21
09:29
(232) Ну, я в этой ветке писатель, а не читатель. Но динамически скриптовать таким макаром ключевую функциональность считаю злоупотреблением.
234 BIP1
 
11.06.21
09:30
(230) (231) Напомнило "поговорку" про пользу малых доз в любых количествах🙂
235 Kassern
 
11.06.21
09:33
(231) есть же для этого дополнительные обработки, используйте их для регламента...
236 fisher
 
11.06.21
09:37
(235) Да я это давно запилил да и удобнее так. Проще и в одном специальном месте.
237 Гений 1С
 
гуру
11.06.21
09:39
(227) шта? Во фрешах уже можно Выполнить? не дезинформируй
238 palsergeich
 
11.06.21
09:40
(218) Динамический - потому что часть кода - компилируется в момент исполнения.
Организация его хранения - не имеет никакой роли.
239 masenshi
 
11.06.21
09:50
(221) ИТС называет внешним. Я с ним согласен
240 masenshi
 
11.06.21
09:50
(239) и не вижу причин считать иначе
241 fisher
 
11.06.21
09:51
(237) Тебе за КД3 аргументировали. Про Выполнить() ни слова не сказали. Ты специально передергиваешь, или это навыки выборочного понимания?
242 masenshi
 
11.06.21
09:52
(224) да-да. Где там код? в кд3?
243 acht
 
11.06.21
09:56
(242) АПВОВНВ? ВА?
244 masenshi
 
11.06.21
09:56
(231) очень удобно. Вот с регламенткой вообще красота. А просто код я лишь присматриваюсь на сколько глубоко можно использовать. Местами удобно, особенно если знаешь что тут еще +100500 раз будет переписываться алгоритм
245 masenshi
 
11.06.21
09:57
(232) да-да. Это все типовое бюджетирование. С него все и началось в те далекие года....
246 masenshi
 
11.06.21
09:58
(236) аналогично. Можно запилить 40 регламенток за раз без конфигурялок
247 masenshi
 
11.06.21
10:00
(243) еще раз спрашиваю причем тут кд3 и выполнить?
248 masenshi
 
11.06.21
10:03
(243) признаки инсульта? ))
249 DexterMorgan
 
11.06.21
10:06
(244) Со временем, станет действительно тяжело, когда твой справочник с выполяемым кодом распухнет, просто задолбаешься искать что где.

ИМХО 2 варианта всего можно рассмотреть при использовании такого подхода

1. Как ВРЕМЕННОЕ решение для отладки и помещения в конфигуратор, особенно при отсутствии четкого ТЗ
2. Какое то подобие замены "регистров правил", или чего-то подобного. Например писать всякие проверки перед записью, обработки заполнения и т.д. И НИЧЕГО ДРУГОГО.
250 DexterMorgan
 
11.06.21
10:09
(249) Обработки проверки заполнения*
251 BIP1
 
11.06.21
10:10
(249) "Со временем, станет действительно тяжело, когда твой справочник с выполяемым кодом распухнет, просто задолбаешься искать что где."

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

В остальном, с вами согласен.
252 DexterMorgan
 
11.06.21
10:11
Но все равно лучше все переносить в конфигуратор, после того как доработка пройдет проверку)
253 masenshi
 
11.06.21
10:17
(249) согласен. Во внешний код помещены всякие проверки, регламентки, обработки заполнения, поведения форм и всякая мелкая хнеря
254 DexterMorgan
 
11.06.21
10:24
(253) Просто как правило уже есть много универсальных разработок про это. Ну вот например https://infostart.ru/public/359597/
255 DexterMorgan
 
11.06.21
10:25
(253) Это как бы такой же справочник как у тебя, только с красивым интерфейсом, нагляднее и т.д.)))
256 acht
 
11.06.21
10:28
(251) Ну будет иерархический такой, с поиском, список методов. И что с ним делать-то? Мякотка она ж внутри, в коде.
Отлаживать запросами 'ВЫБРАТЬ Ссылка ГДЕ Код ПОДОБНО "%ПолучитьОбъект%"' ?
257 DexterMorgan
 
11.06.21
10:29
(251) Одно дело искать другое отлаживать, смотреть че там в переменных и почему так
258 acht
 
11.06.21
10:30
(250) > Обработки проверки заполнения
Добавляет минимум одно чтение из базы при каждом вызове. Отличная идея, особенно при групповой обработке.
259 DexterMorgan
 
11.06.21
10:33
(258) Чтение ну и что? ЗАпросы что ли в обработках проверки заполения не видел? Конечно каждую ситуацию нужно анализировать отдельно, и смотреть, что критично в каждом отдельном случае
260 Конструктор1С
 
11.06.21
10:45
(232) типовые ни разу не показатель правильности. Там полно браинфакинга и прочего мазафакинга
261 masenshi
 
11.06.21
11:57
(254) вот они единомышленники)
262 masenshi
 
11.06.21
11:59
(255) ну пока мой интерфейс вполне комфортный
263 masenshi
 
11.06.21
11:59
(260) ну все. Типовым пора подвинуться. Я иду)
264 H A D G E H O G s
 
11.06.21
12:05
265 masenshi
 
11.06.21
17:26
266 Cthulhu
 
11.06.21
19:31
имхо: фрагменты кода в справочнике - бранчи, которые нужно коммиттить в код.
267 Cthulhu
 
11.06.21
19:32
(266): и потом - релизить.
268 experimentator76
 
12.06.21
15:31
(0) Осуждаю.
Стаж у меня больше 20 лет. Всякое повидал еще с семерки.
269 acanta
 
12.06.21
15:34
(0) в 8 ке нужен внешний модуль как в 7ке. А чтобы не страдать - файловую систему, связанную с группами доступа и ролями в базе..
270 experimentator76
 
12.06.21
15:37
Поясняю. Это решение удобно только для ОДНОГО, КОНКРЕТНОГО человека (ТС).
К удобству поддержки и совместной разработки никакого отношения не имеет.
Нарушает все штатные возможности конфигуратора и платформы по работе с кодом.
Удобство и скорость внедрения кода - сомнительное преимущество этого метода и то для одного ТС.
Полагаю что ТС очень лоялен и гибок к постановщикам задач (пользователям), крайние случаи в наших груках называют
"программист-тряпка" :(
и это выйдет боком если не ему, то тем кто за него эти говна будет убирать :(
271 experimentator76
 
12.06.21
15:37
(270) *кругах
272 experimentator76
 
12.06.21
15:38
Что ТС подозревает и на мисте видимо решил себе индульгенцию попросить :)
273 experimentator76
 
12.06.21
15:40
(178) К автору бы не пошел ни за какую плату.
Имею возможность ТС уволить - уволил бы не задумываясь,
так как скорее всего переделывать автора поздно,
а убеждать нет смысла, так как к болотцу привык и ему там хорошо.
Но это не имеет никакого отношения к нормальным организациям и ИТ-отделам...
274 experimentator76
 
12.06.21
15:43
(270) + смачный такой плевок в культуру разработки прошлого и будущего :(

справедливости ради использовал Выполнить пару раз - на тестовом задании как один из вариантов - т.е. синтетика.
и второй раз надо было выполнить "макрос" созданный из пользовательского режима - это наверное частый случай применения,
но не для разработки же...
275 ДедМорроз
 
12.06.21
15:49
В 1с,кроме оператора Выполнить есть вычисляемые поля в СКД и справочник ВнешниеОбработки,смысл которых примерно в том же.
И болезни при обновлении конфигурации те же.
СКД обычно в макете,и туда нужно заглядывать,а про внешние обработки вообще можно много чего "хорошего" ссказать.
Однако,их используют,так как это удобно,а в некоторых случаях и незаменимо.
276 experimentator76
 
12.06.21
18:56
(249) потом ему будет лень. да уже лень :)
никто переделывать не будет.
он сам - потому что ему так нравится.
за него - потому что он там.
единственный выход - поставить в известность о подходе ближайшего начальника и с ТС вместе кулуарно обсудить сложившу.ся плачевную ситуация.
например, предложить ТС вне рабочего времени и на выходных переносить это его говнецо в конфигурацию и хранилище.
затем заставить его подписать регламент разработки хотя бы из одного пункта - НЕ ГОВНОКОДИТЬ :)
277 experimentator76
 
12.06.21
18:59
(259) а можно же просто не создавать себе и другим проблемы :)
278 experimentator76
 
12.06.21
19:05
(275)
"вычисляемые поля в СКД" - это пипец какой-то в плане проверки и отладки, если именно в них писать код,
а вот выносить в экспортные функции еще более-менее...

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

не является оправданием то что нужно быстро поправить.
нормальная ситуация когда тщательно готовится ТЗ, отлаживается на тестовом контуре, заливается в прод по расписанию.
а не вот это вот все говнокодие по требованию левой пятки младшего ассистента менеджера.
280 masenshi
 
15.06.21
04:35
(272) Говорила мне бабушка, не спрашивай ничего на мисте... ))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.