|
Злоупотребление методом Выполнить()? Ø (Фрэнки 15.06.2021 08:13) | ☑ | ||
---|---|---|---|---|
0
masenshi
10.06.21
✎
05:18
|
Есть такие кто (серьезно, существенно) программирует в режиме 1С предприятие с использованием метода Выполнить()?
Какое у кого мнение по этому поводу? Коллеги не разделяют моей любви к внешнему коду, поэтому и спрашиваю. Понятно что не все можно так запрограммировать но тем не менее. Для меня это удобно и быстро. Конфа самописная на 8.3. Код хранится в справочнике. Доступ имеет только админ ) |
|||
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) Говорила мне бабушка, не спрашивай ничего на мисте... ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |