|
Злоупотребление методом Выполнить()? Ø (Фрэнки 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) Говорила мне бабушка, не спрашивай ничего на мисте... ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |