Имя: Пароль:
1C
1С v8
Злоупотребление методом Выполнить()?
Ø (Фрэнки 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) Говорила мне бабушка, не спрашивай ничего на мисте... ))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший