Вход | Регистрация
    1  2  3
1С:Предприятие :: 1С:Предприятие 8 общая

Злоупотребление методом Выполнить()?

Злоупотребление методом Выполнить()?
Я
   masenshi
 
10.06.21 - 05:18
Есть такие кто (серьезно, существенно) программирует в режиме 1С предприятие с использованием метода Выполнить()?

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

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

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

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

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

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

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

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

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

не является оправданием то что нужно быстро поправить.
нормальная ситуация когда тщательно готовится ТЗ, отлаживается на тестовом контуре, заливается в прод по расписанию.
а не вот это вот все говнокодие по требованию левой пятки младшего ассистента менеджера.
  1  2  3

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.