|
Написал на Хабр статью про спуск переменной контекста вглубь стека вызовов. 🠗 (Волшебник 29.06.2022 10:29) | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Гений 1С
гуру
24.06.22
✎
22:58
|
Использовали? https://habr.com/ru/post/673350/
|
||||||||||||||||
1
H A D G E H O G s
24.06.22
✎
23:06
|
Сон разума рождает чудовищ
КГ/АМ |
||||||||||||||||
2
Asmody
24.06.22
✎
23:24
|
(0) У Никиты Зайцева понятнее и технологичнее: https://t.me/radio1c/320
А вообще, эти контексты имеют тенденцию превращаться в god object. А отсутствие имутабельных значений и контроля типов превращает их использование в большую боль. |
||||||||||||||||
3
Garykom
гуру
24.06.22
✎
23:37
|
(0) геня у тебя же нет строгой типизации в 1С
ну так засунь в y или z составным типом |
||||||||||||||||
4
ДедМорроз
24.06.22
✎
23:44
|
(2)это зачатки объектно-ориентированного программирования,когда мы передаем объект,представляющий параметры,а не сами параметры.
|
||||||||||||||||
5
Asmody
25.06.22
✎
00:11
|
(4) это попытки скрестить ужа с ежом.
|
||||||||||||||||
6
Злопчинский
25.06.22
✎
01:58
|
в клюшках обращение/работа с глобальными переменными из локального контекста - было самое медленное действие.
а в снеговике как? |
||||||||||||||||
7
Конструктор1С
25.06.22
✎
06:17
|
(0) не позорься, так делают только джуны-извращенцы
КГ/АМ |
||||||||||||||||
8
Конструктор1С
25.06.22
✎
06:19
|
(4) нет, это всего-лишь говноархитектура
|
||||||||||||||||
9
Ненавижу 1С
гуру
25.06.22
✎
06:58
|
Почему не рассказал, что начинал с передачи параметров через запись/чтение в справочник?
|
||||||||||||||||
10
Конструктор1С
25.06.22
✎
07:03
|
"Код, расположенный между обращениями к переменной, является «окном уязвимости». Чем больше это окно, тем выше вероятность, что в его пределах будет добавлен новый код, искажающий значение переменной, и тем труднее следить за значением переменной при чтении кода. Поэтому обращения к переменной всегда целесообразно локализовать, группируя их вместе" (с) С.Макконел, "Совершенный код"
|
||||||||||||||||
11
Ненавижу 1С
гуру
25.06.22
✎
07:04
|
(10) я ему давно советовал почитать этого автора, но он выбирает покупать курсы инфоцыган
|
||||||||||||||||
12
Конструктор1С
25.06.22
✎
07:08
|
(11) куда уж там, он и по платформе и типовым документацию никогда не читает
|
||||||||||||||||
13
vi0
25.06.22
✎
07:22
|
(0) оч плохо, Серёжа
какие еще глобальные переменные?! |
||||||||||||||||
14
Гипервизор
25.06.22
✎
07:45
|
(0) Ошибка сразу в заголовке статьи.
А по существу там в комментах доступно объяснили. |
||||||||||||||||
15
rphosts
25.06.22
✎
07:47
|
(11) инфоцыгане это кто?
|
||||||||||||||||
16
Irbis
25.06.22
✎
07:51
|
(15) Те, кто в интернете за деньги продаёт то, что можно найти бесплатно.
|
||||||||||||||||
17
rphosts
25.06.22
✎
08:04
|
(16) ну знаете.... лет 15 назад вдруг обнаружил что поезд клюшечников уже стоит на запасном пути и прыгнул сразу на 8.2 УФ... ну как прыгнул - могло получиться и лучше... но потом прошёл курсы по платформе одного товарища по имени на букву Е и прям зашло, хотя всё это есть вроде в открытом доступе но там структурно, системно + хренова гора ДЗ...
как сказал один умный чел на весенней конференции AdWise: "Знания можно изучить, но опыт можно только прожить". |
||||||||||||||||
18
Irbis
25.06.22
✎
08:11
|
Я говорю, обычно, что научить нельзя, можно только научиться.
|
||||||||||||||||
19
vi0
25.06.22
✎
08:24
|
(17) если человек в чем то эксперт+- и продает знания то то это норм, остальное как правило инфоциганщина+-, попытка срубить бабла
|
||||||||||||||||
20
Ненавижу 1С
гуру
25.06.22
✎
08:29
|
(17) немного не те - автор предпочитает тех, кто учит как "правильно" строить жизнь, бизнес и вот этот "успешный успех"
|
||||||||||||||||
21
Гений 1С
гуру
25.06.22
✎
08:40
|
(1) (7) без конткретной критики 0 бит
(3) промежуточные функции могут поломаться, да, кстати, это еще один из методов. но не универсальный. (6) с чего ты взял что в данной задаче скорость работы важнее цены разработки, а? (8) Ты про архитектуру типовых? Согласен и понимаю твою боль. (9) А смысл? (14) счас почитаем. |
||||||||||||||||
22
Гений 1С
гуру
25.06.22
✎
08:45
|
(14) почитал комментарии на хабре, ничего интересного. мало в них бит информации.
|
||||||||||||||||
23
vi0
25.06.22
✎
08:57
|
(21) конкретика простая
Вместо устойчивого кода, у тебя получается код который легко сломать изменив переменную где то Появляются доп зависимости от окружения. От этого код хуже переиспользуется, хуже тестируется |
||||||||||||||||
24
Гений 1С
гуру
25.06.22
✎
09:01
|
(23) слова высокие, правильные, но ты забываешь, что этот метод используется не для красивого кода. а для легаси-поделки от фирмы 1С. Помедитируй над этим, перфекционист, гггг.
|
||||||||||||||||
25
Beduin
25.06.22
✎
09:04
|
(0) Эти все через ногу хождения, попытка описать классический полиморфизм из ООП?
|
||||||||||||||||
26
vi0
25.06.22
✎
09:05
|
(24) процитируй где я говорил про красивый код
и еще себя процитируй, что ты именно эту проблему решаешь |
||||||||||||||||
27
Гений 1С
гуру
25.06.22
✎
09:07
|
(26) я привел конкретные случаи применения этих методик. Ты, как 1сник можешь мне указать, как бы ты сделал проще, лучше, дешевле, эффективнее, красивее. Внимательно жду. А то все эти "гуры" хороши только пока до практики не доходит.
|
||||||||||||||||
28
Гений 1С
гуру
25.06.22
✎
09:09
|
И кстати, мои решения нормально сопровождаться будут. Вмешательства очевидные и прозрачные для любого, кто придет и увидит этот код. Так что вот эту хрень "хуже переиспользуется, хуже тестируется" мне не понять.
Хотя пардон, о каком тестировании типовых 1С идет речь? Это ж махровое Легаси. |
||||||||||||||||
29
vi0
25.06.22
✎
09:10
|
(27) ты привел случаи но не привел проблематику, что мешает доработать код
в своей большой практике я только один раз встречал такую "методику", и сделана она была самым слабым прогом в нашей команде |
||||||||||||||||
30
vi0
25.06.22
✎
09:10
|
(28) ты не тестируешь разработку?
|
||||||||||||||||
31
vi0
25.06.22
✎
09:12
|
во взрослом программировании скрывают поля объектов, используют геттеры, сеттеры
а у тебя крайняя степень открытости |
||||||||||||||||
32
bolder
25.06.22
✎
09:12
|
(0) Глобальные переменные , изменяемые при расчёте каждого сотрудника - за это линейкой надо бить. Тот же GoTo, но сбоку.Решение костыльного типа, никакое для последующей поддержки. Нужно стремится к хорошей архитектуре.
КГ/АМ |
||||||||||||||||
33
Chai Nic
25.06.22
✎
09:17
|
Глобальные переменные - зло. Впрочем, функции, изменяющие контекст, тоже зло не меньшее.
|
||||||||||||||||
34
Гений 1С
гуру
25.06.22
✎
09:18
|
(30) тестирую, а еще я писаю и какаю. ну и питаюсь. Может хватит очевидные вещи писать, КЭП.
Но все же есть тестирование на этапе разработке, на этапе после обновления и авто-тестирование. Вот последнее не делаю, прикинь. (29) так расскажи, как ты сильный программист решишь подобную проблему. Проблематика тут очевидна - нужно написать 100500 заплаток в типовой код, чтобы спустить контекст вниз. (31) ты на примере покажи, я все больше склоняюсь к мнению что ты пустобрех. 0 бит выдаешь на выходе за красивыми словами. (32) Ты смотри с точки зрения клиента. Хорошая архитектура будет ему условно стоит 10.000 рублей, а простая - 2.000 рублей. И что выберет клиент? Отож. Не все готовы за ровные стеночки платить. |
||||||||||||||||
35
vi0
25.06.22
✎
09:21
|
(34) какай, но старайся не на хабре, палево такое
|
||||||||||||||||
36
vi0
25.06.22
✎
09:23
|
я с типовыми не работаю, и что то в твоей статье тоже не увидел упоминания типовых
|
||||||||||||||||
37
vi0
25.06.22
✎
09:24
|
(36) + если речь про проблему дальнейших обновлений - про это тоже не сказано
|
||||||||||||||||
38
Chai Nic
25.06.22
✎
09:27
|
Вообще конечно неплохо было бы, если бы в 1с как в паскале были локальные процедуры и функции. С автоматической иерархической областью видимости.
|
||||||||||||||||
39
Гений 1С
гуру
25.06.22
✎
09:29
|
(36) (37) дешевые отмазки.
вот тебе задачка, жду высококлассного решения: https://geniy1s.ru/eshhe-odin-primer-spuskaniya-konteksta-vnutr-chernogo-yashhika-unf-1-6/ |
||||||||||||||||
40
NorthWind
25.06.22
✎
09:31
|
(34) с точки зрения клиента специалист делает так, как считает нужным специалист, а не клиент. На то он и специалист. Тебе пломбу в зуб светоотверждаемую ставят за 10 тыс, а могут говна какого-нибудь намешать из строймагазина и намазать за 100 руб, это ж дешевле. Но так не делают, потому что это непрофессионально и гарантирует проблемы в будущем. Так что, Сережа, херню ты говоришь. А если клиент реально начнет парить мне мозги что ему надо там за тыщу, за две и за правильное решение он платить не будет, так мне проще с такими не работать. Поэтому я и не фрилансю, жаль жизнь на долбаков тратить.
|
||||||||||||||||
41
Гений 1С
гуру
25.06.22
✎
09:34
|
(40) жить надо по средствам. Плохие привычки перфекционизма будут тебе мешать в любом секторе. Часть жизни на ненужный клиенту код ты таки потратишь.
|
||||||||||||||||
42
Beduin
25.06.22
✎
09:36
|
(39) Там нет решения, кроме как передать в процедуру параметр. Ты в своем не допускаешь, что глобальный параметр может измениться из других вызовов?
|
||||||||||||||||
43
NorthWind
25.06.22
✎
09:37
|
(41) да, потрачу. Но я буду уверен в том что я делаю правильно и что это будет работать много лет. Мне лично так комфортно. В программировании придумана масса механизмов для того чтобы скрыть области памяти от непредусмотренных изменений, начиная от локальных переменных и параметров и заканчивая приватными полями классов. Любые глобальные переменные - это отрыжка какого-нибудь фортрана, оставленная для совместимости, и юзать их настолько же плохая идея как оператор goto.
|
||||||||||||||||
44
Гений 1С
гуру
25.06.22
✎
09:37
|
(42) об этом в статье написано, что риски миниминизированы. Конкретно в задаче печати пользователь не будет печатать параллельно 2 документа. Так что рисков нет.
|
||||||||||||||||
45
Гений 1С
гуру
25.06.22
✎
09:38
|
(43) ну что же, перфекционисты-мазохисты должны страдать. не возражаю. ггг... Главное, не попасть после них к этому клиенту, где код искалечен такими любителями "высокого".
|
||||||||||||||||
46
Гений 1С
гуру
25.06.22
✎
09:40
|
Меня вот только удивляет одно - как такого рода перфекционисты работают с типовыми, которые по определению написаны криво. ;-)
Тут уж или трусы или крестик. |
||||||||||||||||
47
NorthWind
25.06.22
✎
09:41
|
(45) это не перфекционизм, это просто соблюдение гигиены и технологии. В кафе повар моет руки и не сцыт в суп, в автосервисе мастер не привязывает тормозную колодку веревкой. И когда обращаются к программисту, тоже рассчитывают что он будет действовать по технологии. За счет этого наш мир как-то еще живет и не разваливается. Это такие базовые принципы, я стараюсь их соблюдать и надеюсь что соблюдают по отношению ко мне...
|
||||||||||||||||
48
Beduin
25.06.22
✎
09:41
|
(44) Не так, ты полагаешься на то, что процедура "СформироватьПечатныеФормы" не будет вызвана во время конкретного сеанса одновременно с действиями пользователя.
|
||||||||||||||||
49
NorthWind
25.06.22
✎
09:42
|
книжки ведь не зря называются "чистый код" и т.п...
|
||||||||||||||||
50
Конструктор1С
25.06.22
✎
09:45
|
Ну классная логика, чо. Если в типовой наговнокодили, то исправлять этот говнокод нужно ещё большим говнокодом
|
||||||||||||||||
51
Ненавижу 1С
гуру
25.06.22
✎
09:46
|
(46) я вот боюсь, что ты даже не понимаешь почему криво
И ещё выучил новый термин Легаси - так не используй его везде где попало |
||||||||||||||||
52
bolder
25.06.22
✎
09:47
|
(42) Там мало того , так называемая «глобальная переменная» меняется с частотой замены в расчете сотрудника.Я уж не говорю про то что в типовой могут решить выполнять расчёт в фоне. Вот тогда приплыли...
|
||||||||||||||||
53
Гений 1С
гуру
25.06.22
✎
09:47
|
(48) ты знаешь, я надеюсь что и метеорит не пробьет крышу моего кабинета, события равной вероятности.
(49) Послушай, случаи клинического перфекционизма мне не интересны, пообщайся с коллегой-конструктором. Понятно, что ты бегаешь от реальных задач с типовыми, поэтому по предмету тебе сказать некогда. Ты я так понял писатель нетленок. Мы в разных нишах, нам не о чем общаться. (50) Нельзя построить на какашке не-какашку. |
||||||||||||||||
54
Гений 1С
гуру
25.06.22
✎
09:48
|
(51) ну если ты понимаешь, ты можешь высказаться, а не корчить умное лицо, смешно выглядит
|
||||||||||||||||
55
Гений 1С
гуру
25.06.22
✎
09:50
|
(52) возмьми для себя задачу попроще - с печатными формами, вижу что "не в ЗУП ногой". А так да, при таком методе нужно внимательно анализировать, могут ли быть пересечения.
|
||||||||||||||||
56
NorthWind
25.06.22
✎
09:51
|
(53) почему? С типовыми обычно все нормально. Я бегаю не от типовых. Я бегаю от заказчиков, у которых схематоз головного мозга, которые уверены что все знают лучше методологов 1С и при этом не хотят платить за работу столько, сколько она стоит. Да, этих не люблю.
|
||||||||||||||||
57
Гений 1С
гуру
25.06.22
✎
09:51
|
(56) успешных пробежек.
|
||||||||||||||||
58
Beduin
25.06.22
✎
09:51
|
(53) Так нельзя Сережа. Понимаешь нельзя. Полагаться на вероятность корректного исполнения программы. Неправильно это. Двойку тебе на лабораторной влепили бы за это.
|
||||||||||||||||
59
Гений 1С
гуру
25.06.22
✎
09:52
|
(56) взглянуть на успехи можно, или вы с Конструктором в секте Анонимных Разработчиков? ггг
|
||||||||||||||||
60
Гений 1С
гуру
25.06.22
✎
09:53
|
(58) я не полагаюсь, я анализирую. Нельзя быть параноиком, дядя. а то получится как в анекдоте - на случай, если я потеряю билет, у меня проездной. Я конечно, понимаю, что ИТ калечит мозг, но не настолько же?
|
||||||||||||||||
61
Beduin
25.06.22
✎
09:57
|
(60) Еще раз. Твое решение основывается на том, что после тебя кто-то не напишет код, который будет вызывать процедуру или не менять глобальный параметр. Для какого-нибудь ларька, где из-за ошибки максимум клиент получит кривую накладную ладно. Но для серьезных компаний это может обернутся большими убытками. Я думай каждый из нас создавал трагичные решения, но выдавать их за методические рекомендации додумался только ты.
|
||||||||||||||||
62
bolder
25.06.22
✎
09:57
|
(55) Ну ну.ЗУП знаю не по наслышке.Легко нахожу косяки .По существу есть что ответить про фоновые расчеты и глобальный контекст в твоём понимании?
|
||||||||||||||||
63
Beduin
25.06.22
✎
09:57
|
(61) Я про фоновые вызовы или какие-то еще способы.
|
||||||||||||||||
64
Гений 1С
гуру
25.06.22
✎
10:05
|
(61) расскажи, когда по твоему мнению в "серьезной конторе" может случиться и какая накладка.
(62) не понял вопрос, сформулируй его целиком. В 1с контекст выполнения кода монолитен. Есть фоновые задания, насколько я помню, у каждого потока есть свой ID, поэтому если критичны фоновые задания, можно хранить для каждого потока свою "глобальную переменную". Еще вопросы есть, юноша? |
||||||||||||||||
65
Гений 1С
гуру
25.06.22
✎
10:05
|
(63) ты давай без патетики, смоделируй ситуацию, когда выйдет не та печатная форма. Внимаю, о Гуру
|
||||||||||||||||
66
Гений 1С
гуру
25.06.22
✎
10:06
|
(61) кстати заметил ключевое "после тебя напишет". Забавно. Друже, для этого есть анализ кода и тесты. Хотя бы проверить, что получается на выходе. Пользователи скажут, если че не так опять же. Безумно писать свое расширение поверх уже написанных расширений могут только "непуганные новички"
|
||||||||||||||||
67
Ненавижу 1С
гуру
25.06.22
✎
10:07
|
(54) нет, это твои слова "с типовыми, которые по определению написаны криво" - жду аргументов про кривость
вот мне прямо интересно, что именно ТЫ подразумеваешь под "кривостью" типовых |
||||||||||||||||
68
Beduin
25.06.22
✎
10:08
|
(65) Да легко. Запустил клиент массовую печать, которая разбила работу на фоновые процессы для накопления данных с вызововом твоей процедуры.
|
||||||||||||||||
69
Гений 1С
гуру
25.06.22
✎
10:08
|
(67) об этом уже 100500 статей написано.
1. Недокументированность. 2. излишняя усложненность (возьми ту же подисистему печати), когда отладчиком надо часами докапываться до истины. 3. Постоянные переезды модулей, смены названий. Это говорит о плохой методологии. Недавний переезд НДС из перечисления в справочники. и не нато трендеть, что "раньше НДС не было, это новое в законах". 4. Полный игнор обратных связей от программеров. 5. Типовые не тестируются автоматом, сам выявлял ошибки, которые автомат бы не пропустил. ну это так тебе, для затравочки. |
||||||||||||||||
70
Гений 1С
гуру
25.06.22
✎
10:09
|
(68) кури решение в (64), как вариант убрать разбивку на фоновые процессы. Еще вопросы, юноша с глазами горящими?
|
||||||||||||||||
71
Гений 1С
гуру
25.06.22
✎
10:10
|
(67) Ну хотя может ты БСП считаешь шедевром инженерной мысли? Тогда я умываю руки, гггг
|
||||||||||||||||
72
bolder
25.06.22
✎
10:11
|
(64) «можно хранить» И кто же этим займётся?))
|
||||||||||||||||
73
Гений 1С
гуру
25.06.22
✎
10:13
|
(72) если у меня будет такая проблема, я отключу фоновую разбивку при массовой печати. Еще вопросы, сэр?
хотя если будет желание, сделаю фиксированную коллекцию по идентификаторам фоновых заданий. |
||||||||||||||||
74
Гений 1С
гуру
25.06.22
✎
10:14
|
вы для чистоты эксперимента можете считать, что 1с сделала над собой титанические усилия и сделала переменные потока, а не сеанса. Тогда о чем будем ныть?
|
||||||||||||||||
75
Гений 1С
гуру
25.06.22
✎
10:20
|
для параноиков - ПолучитьФоновоеЗадание например. и вопрос решен.
|
||||||||||||||||
76
Chai Nic
25.06.22
✎
10:21
|
В несовершенном мире приходится применять несовершенные решения. Есть три важных фактора в создании кода - понятность, скорость, надежность. Каждый выбирает сам, что ему важнее.
|
||||||||||||||||
77
Гений 1С
гуру
25.06.22
✎
10:22
|
(76) да, об этом стоило бы упомянуть в статье, а то набежало перфекционистов как мух на субстанцию
|
||||||||||||||||
78
Ненавижу 1С
гуру
25.06.22
✎
11:17
|
(69) половина вообще не про код. А если модули переезжают, то зачем тебе в расширениях такие костыли лепить, если придётся всё переписать?
|
||||||||||||||||
79
ДедМорроз
25.06.22
✎
11:26
|
Я,например,с семеркой знакомился после сайтов и их механизмы прекрасно знал.
Скажем так,сессия - это глобальные переменные сеанса,засунутые в объект. В 1с аналог - временное хранилище - когда мы в Key-Value базу кладем значение и потом его получаем. И даже в типовых есть такие же "глобальные" переменные. Опять же,если делать поавильно,то когда мы хотим передать параметры для какого-то действия,то для них мы передаем какой-то абстрактный объект,чтобы везде была только одна переменная. Потому как,пихать все в один контекст - это все равно,что в параметры функции,так как надо быть уверенным,что мы не соврадем по имени с чем-то еще. Когда же у нас дерево вложенных объектов - пересечься по имени очень тяжело (емли,конечно,давать правильные имена). Ну,а любителям глобальных переменных предлагается поместить в глобальную переменную соответствие и в него по гуидам класть значения,только нужно не забыть удалить значение после использования. |
||||||||||||||||
80
vi0
25.06.22
✎
11:48
|
(39) дурик, ты не написал проблему которую решаешь
я почитал коменты к статье и там ты тоже пишешь "Обычно 1С-ники сопровождают типовой код и поменять его нет возможности" - почему этого нет в статье? так какую ты проблему решаешь? твоя статья похожа на троллинг или тебе правда соображалки не хватает понять что такое проблема |
||||||||||||||||
81
Гений 1С
гуру
25.06.22
✎
12:25
|
(78) как бороться с переездами модулей, мы знаем. Ну ты можешь побыть адвокатом дьявола и рассказать о чудесном коде БСП, например, ггг.
(79) да, аналогия с сайтами сильно облегчает понимание 8ки (80) Если вы хотите общаться, то надо завязывать с оскорблениями. Этот ваш пост игнорю, перепишите. |
||||||||||||||||
82
Конструктор1С
25.06.22
✎
12:29
|
Ты бы хоть постеснялся такой трэш на хабр авклпдывать. 1сников и так часто за прогеров не считают. А "такое" только подкрепит веры, что в 1с сплошняком треш и угар
Ребяты, кто зареган на хабре. Напишите там, что кроме нашего пациента так больше никто не делает |
||||||||||||||||
83
Гений 1С
гуру
25.06.22
✎
12:34
|
(82) пустое сотрясание воздуха не является критикой. Для меня важны только аргументы, а не ухмылки членов клуба анонимных программистов-перфекционистов
|
||||||||||||||||
84
ШтушаКутуша
25.06.22
✎
12:49
|
(0) ООП может решить эту проблему "играючи",
но VB и 1С это не ООП языки, а как известно Предметно-Ориентированные языки, поэтому...если канешно я правильно понял пафос сабжа |
||||||||||||||||
85
ДедМорроз
25.06.22
✎
13:19
|
VbScript,как раз ООП там можно создать класс и пользоваться его методами,причем с перехвптом установки и получения значения.
|
||||||||||||||||
86
Гений 1С
гуру
25.06.22
✎
13:41
|
(84) кстати, а как ООП решает эту проблему?
(85) реши эту задачу на ООП, как раз там довольно просто - всего три функции. Поржем |
||||||||||||||||
87
ШтушаКутуша
25.06.22
✎
13:57
|
(86) переменная объекта, наследование, если навскидку.
использование сторонних ф-ий спорно для парадигмы ООП, а уж использование глоб.переменных изменение которых, как побочный результат функции/процедуры это ваще сатанизм. ) |
||||||||||||||||
88
Ненавижу 1С
гуру
25.06.22
✎
14:07
|
Мое мнение, что проблема типовых в "перенасыщенных" методах, которые пытаются "единым полотном кода" решить большую конкретную задачу.
Отсюда выходят две проблемы адаптируемости: 1. В код негде нормально вклиниться. Если бы большой метод состоял из вызовов более мелких, решающих конкретные малые задачи, то достаточно было бы в расширении использовать для малого метода Перед/После/Вместо. Однако имеем длинный код - отсюда придумали ИзменениеИКонтроль, но он очень уязвим при измененнии кода. 2. Большие методы не переиспользуемы. Например, серверный метод перезаполняет данные на форме документа, но к сожалению этот же метод уже не пригоден для заполнения объекта документа. |
||||||||||||||||
89
Гений 1С
гуру
25.06.22
✎
14:57
|
(87) не надо тут заклинаний. Конкретно, как данную задачу решить через ООП? ггг. Думаю, правильный ответ - никак.
(88) я думаю проблема типовых в отделе разработки. Они не чувствуют обратной связи, лучи ненависти программистов, сопровощдающих их "шедевры" до них не доходят. Поэтому они могут крутить всю Россию на своей клавиатуре, как им хочется. |
||||||||||||||||
90
ДедМорроз
25.06.22
✎
15:03
|
(89) через ООП решается любая задача.
Просто,нужно вместо простого вызова функции создать объект и вызвать его метод. Если у метода есть параметры,то чаще всего,под них создается отдельный объект,который нужно заполнить. У 1с кстати,работа с отбором,в принципе,поддерживает эту парадигму. |
||||||||||||||||
91
Злопчинский
25.06.22
✎
15:05
|
(88) "Если бы большой метод состоял из вызовов более мелких, решающих конкретные малые задачи, "
-а как же то что стонут наши погромисты от глубокого стека выззовов/вложенности.. - вот.. куча маленьких... |
||||||||||||||||
92
Конструктор1С
25.06.22
✎
15:06
|
(83) читай (10)
|
||||||||||||||||
93
Гений 1С
гуру
25.06.22
✎
15:07
|
(90) на ассемблере тоже решается любая задача. 0 бит, извиняй. давай конкретно. как решишь эту задачу на ООП, ггг....
(92) видели, ниачем. |
||||||||||||||||
94
ДедМорроз
25.06.22
✎
15:09
|
На самом деле,при решении какой-то задачи,нужно заранее делить ее на мелкие,которые потом можно использовать повторно,а уже от этого переходить к реализации на конкретном языке программирования.
Пытаться что-то выгадать на этапе,когда нужно реализовать алгоритм,бессмысленно,так как даже если мы что-то поделим на этапы,то в следующие алгоритмы они не попадут,а много мелких функций отлаживать сложнее. Опять же,тестирования,как такового,в 1с нет,ну и понятно почему - подготовить все данные для тестирования функции иногда в разы сложнее,чем ее написать. |
||||||||||||||||
95
Конструктор1С
25.06.22
✎
15:15
|
(93) да знаю, знаю. Понятность, безопасность и изменяемость кода для тебя это ниачем. А твои уродливые костылины - вот мера всех вещей
|
||||||||||||||||
96
Злопчинский
25.06.22
✎
15:18
|
Передавать контекст куда-то глубоко в относительно изолированные процедуры/функции - мне кажется совсем так себе идея. костыль/костыльный, чтобы в этом потом не поплыть - надо обвесит на 20 строк комментариев что почему в какой ситуации и зачем, в противном случае - как отмечали выше - разобраться в этом со стороны - это надо всю конфигу перечитать чтобы понять, то бишь практически нереально.
|
||||||||||||||||
97
Гений 1С
гуру
25.06.22
✎
15:18
|
(95) ну уродливыми их считает какой-то неизвестный аноним, пусть продолжает считать.
(94) да, тестирования в 1с нету. ;-) |
||||||||||||||||
98
Гений 1С
гуру
25.06.22
✎
15:19
|
(96) вам это кажется, просто понаблюдайте за реализацией.
|
||||||||||||||||
99
Конструктор1С
25.06.22
✎
15:22
|
(97) судя по этому топику, все считают твоё решение уродливым. И на харбе тебе о том же сказали
|
||||||||||||||||
100
Конструктор1С
25.06.22
✎
15:24
|
(96) ему осталось только GOTO расхечлить, и вершина Олимпа говнокодерства достигнута
|
||||||||||||||||
101
ДедМорроз
25.06.22
✎
15:26
|
Так все просто
Class A Private ForTopK Public Function Top(ByRef ķ) ForTopK=k Top=Middle() End Function Private Function Middle() V1=GetOne() V2=GetTwo() Middle=Down(V1,V2) End Function Private Function Down(ByRef a,ByRef b) If IsEmpty(ForTopK)=True Then k=1 Else k=ForTopK Down=(a+b)*k End Function End Class Вот здесь мы как раз видим,что мы задали переменную у объекта,но она у нас не глобальная |
||||||||||||||||
102
ДедМорроз
25.06.22
✎
15:43
|
(101) замечу сразу,что это решение предлагаемым методом,и,наверное,скорее костыль,но поаво на жизнь имеет.
|
||||||||||||||||
103
Ненавижу 1С
гуру
25.06.22
✎
15:53
|
(91) а не всегда надо вглубину, можно линейно разбить:собрали одно, преобразовали, передали далее...
Стонут не от глубины как таковой, а от бессмысленности этого. Зачастую метод просто передаёт 1:1 в следующий |
||||||||||||||||
104
Злопчинский
25.06.22
✎
16:01
|
(98) мнe не надо "наблюдать за реализацией". я и без описанных костылей охреневаю в попытках разобрать логику/мысль кучи доработок сторонними кодерами у обращающихся клиентов. Если к ним еще пришпилить этот костыль - вообще пздц будет.
|
||||||||||||||||
105
Hans
25.06.22
✎
16:03
|
Использование глобальных переменных это быдлокодинг.
|
||||||||||||||||
106
Гений 1С
гуру
25.06.22
✎
18:47
|
(99) ну не стоит обобщать под "все" миллион леммингов. ггг... всегда возникает вопрос "а судьи кто". А на хабре ты почитай камменты.
но я ж не против - жду от тебя красивого, элегантного решения, можешь утереть мне нос, так сказать. (101) какие мы умные задним числом. Если бы автор исходного легаси кода подозревал, что его будут использовать таким образом, он бы просто переменную контекста добавил. я фигею - взял переписал код чуть более чем полностью и выдал это за преимущество ООП. Такой жести я еще не встречал. (102) да, если бы у 1С были объекты, можно было бы добавить переменную как член класса, но это мало чем отличается от добавление переменной контекста. (103) MR0Бит, как всегда о своем, о нульбитном. (104) То ли ты страннный, то ли твои клиенты. Скорее первое. (105) ну покажи нам элегантное решение этой задачи, гыгыгы, не в быдло-стиле. Тявкать то все горазды, а как выдать на гора - так творческая импотенция. |
||||||||||||||||
107
Злопчинский
25.06.22
✎
19:01
|
(106) я даже понимаю чем рождаются такие костыли, у самого такие поползновения есть. где обрубаю их, а где - нет... Ибо за Хруб на что согласен клиент можно только такой костыль кинуть
|
||||||||||||||||
108
Гений 1С
гуру
25.06.22
✎
19:42
|
(107) не факт, что если на эту задачу посадить конструктора она за 10*Х руб родит что-то приличное.
|
||||||||||||||||
109
Волшебник
25.06.22
✎
19:46
|
(106) Сергей, будьте более вежливы к людям, которые Вам говорят прописные истины. Ну пожалуйста.
|
||||||||||||||||
110
Гений 1С
гуру
25.06.22
✎
20:10
|
(109) а кем они прописаны? Ггг
|
||||||||||||||||
111
ДедМорроз
25.06.22
✎
20:46
|
(106) код переписан полностью под парадигму ООП - вы же сами просили.
Ну и костыль с переменной никуда не делся и остался тем же костылем,только в стиле ООП. |
||||||||||||||||
112
Гений 1С
гуру
25.06.22
✎
20:52
|
(111) ничем не отличается от использования глобальных переменных, вместо глобальной переменной - глобальное свойство класса. Я просил удивить чем-то новым.
|
||||||||||||||||
113
Ненавижу 1С
гуру
25.06.22
✎
21:32
|
(112) не глобальное свойство класса, а свойство объекта класса, что позволяет подсовывать объект нужного класса с нужным поведением
это называется единый интерфейс и полиморфизм методов |
||||||||||||||||
114
Гений 1С
гуру
25.06.22
✎
21:42
|
(113) без разницы, по сути это переменная с более узкой областью видимостью, чем глобальная
|
||||||||||||||||
115
Кирпич
25.06.22
✎
21:46
|
Вы чо совсем с ума сошли, с Генрихом 1с его глупости обсуждать? :) Он глобальные переменные уже изобрёл?
КГ/АМ |
||||||||||||||||
116
Кирпич
25.06.22
✎
21:47
|
(0)когда ты уже придумаешь байт и успокоишься, крокодил проклятый :)
|
||||||||||||||||
117
Ненавижу 1С
гуру
25.06.22
✎
22:00
|
(114) по сути это свойство экземпляра, а не глобальная переменная. Экземпляров может быть много. Область видимости тут не причём.
|
||||||||||||||||
118
Гений 1С
гуру
25.06.22
✎
22:37
|
(117) и шо? ггг.. вы обладаете редким талантом писать "прописные истины", КЭП.
|
||||||||||||||||
119
Ненавижу 1С
гуру
26.06.22
✎
08:58
|
(118) так ты не понимаешь разницу, но делаешь вид, что именно это и имел ввиду
|
||||||||||||||||
120
Ненавижу 1С
гуру
26.06.22
✎
09:02
|
Из минусов типовых - чрезмерное увлечение строковыми данными, как ключами. Зачем все это, если в конце все равно к перечислению привели?
ВариантОбеспечения = ?(КодДействия = "ДЕЙСТВИЕ_КОБЕСПЕЧЕНИЮ", Перечисления.ВариантыОбеспечения.КОбеспечению, ?(КодДействия = "ДЕЙСТВИЕ_РЕЗЕРВИРОВАТЬПОМЕРЕПОСТУПЛЕНИЯ", Перечисления.ВариантыОбеспечения.РезервироватьПоМереПоступления, ?(КодДействия = "ДЕЙСТВИЕ_РЕЗЕРВИРОВАТЬ", Перечисления.ВариантыОбеспечения.СоСклада, ?(КодДействия = "ДЕЙСТВИЕ_ОТГРУЗИТЬ", Перечисления.ВариантыОбеспечения.Отгрузить, ?(КодДействия = "ДЕЙСТВИЕ_НЕОБЕСПЕЧИВАТЬ",Перечисления.ВариантыОбеспечения.НеТребуется, Неопределено))))); |
||||||||||||||||
121
Гений 1С
гуру
26.06.22
✎
09:23
|
(119) MR0Бит
(120) у типовых все плохо и гнило. а ты какие-то мелочи показываешь, ггг... |
||||||||||||||||
122
Ненавижу 1С
гуру
26.06.22
✎
09:24
|
(121) "все плохо и гнило" это ниочем
|
||||||||||||||||
123
Гений 1С
гуру
26.06.22
✎
09:25
|
(122) конкретные претензии крупными мазками я уже в этой ветке описывал. Остальное лень перечислять. Может как-нибудь статью напишу на хабре, тогда обкашляем радости типовых
|
||||||||||||||||
124
Ненавижу 1С
гуру
26.06.22
✎
09:29
|
(123) ждем от тебя только, ты так "прелестно" излагаешь
|
||||||||||||||||
125
Мимохожий Однако
26.06.22
✎
09:35
|
Общее впечатление от подхода и аргументации
КГ/АМ |
||||||||||||||||
126
Leonardo1c
26.06.22
✎
09:54
|
Видел поделки тс лет 10 назад - там было goto (перейти)
|
||||||||||||||||
127
Гений 1С
гуру
26.06.22
✎
10:07
|
(126) до сих пор использую, например, для выхода из двойного цикла. или для перехода к концу процедуры.
|
||||||||||||||||
128
Ненавижу 1С
гуру
26.06.22
✎
10:17
|
(127) к концу процедуры есть Возврат
|
||||||||||||||||
129
Кирпич
26.06.22
✎
10:57
|
(128) ну всё. ждем статью "возврат из вложенного цикла с помощью оператора возврат"
|
||||||||||||||||
130
Leonardo1c
26.06.22
✎
10:58
|
(128) это же надо функции писать
- мучиться насиловать мозг 😀 |
||||||||||||||||
131
ДедМорроз
26.06.22
✎
11:33
|
(128) если у нас есть влодкнные циклы и мы хотим продолжить исполнение кода явно задав все итераторы циклов,то без goto это сделать очень сложно.
Правда,вложенные циклы можно разложить в один цикл с каскпдным изменением итераторов,тогда можно без goto и код от количества итераторов слабо зависит. Также через goto удобно реализовывать переход на обработку ощибки,если мы не любим исключения и хотим,чтобв исполнение кода было более понятным.Нл,нужно понимать такую вещь,что поставив один раз goto мы потом ставим его еще и еще.Понятно,что при имитации работы клеточного автомата или другого объекта состояний работа через goto выглядит наоборот более понятной и простой,но это не про 1с - здесь нет бесконечно выполняемых действий по щаблонам состояний. На самом деле,в Си ++ есть такая конструкция как long jump,которая тот же goto но и еще и между функциями,так как позволяет сохранять состояние стека - неявно она используется при обработке исключений,но использование этой конструкции в коде я видел только в драйверах (и то,когда все свалилось и нужно начать сначала). Поэтому,использование goto где-то,кроме bat-файлов - очень и очень нехорошо. |
||||||||||||||||
132
Гений 1С
гуру
26.06.22
✎
12:24
|
(128) возврат выходит сразу, а если надо перед возвратом что-то сделать, то надо или вложенную процедуру использовать или Гоуту
|
||||||||||||||||
133
Гений 1С
гуру
26.06.22
✎
12:25
|
(131) бред. гота часто сркашивает недостатки языка. Есть определенные случаи, когда гота уместна, я их выше описал.
|
||||||||||||||||
134
Гений 1С
гуру
26.06.22
✎
12:26
|
Это как цикл Пока Истина скрашивает недостаток LOOP UNTIL
|
||||||||||||||||
135
Ненавижу 1С
гуру
26.06.22
✎
12:29
|
(132) а это уже не к концу так-то
|
||||||||||||||||
136
Ненавижу 1С
гуру
26.06.22
✎
12:30
|
(132) и да, лучше вложенные методы чем гото
|
||||||||||||||||
137
ДедМорроз
26.06.22
✎
12:46
|
Вложкнные процедуры хороши,когда мало параметров,а иначе приходится таскать контекст и потом в процедуре проверять,что передали карету,а не тыкву.
|
||||||||||||||||
138
Ненавижу 1С
гуру
26.06.22
✎
12:51
|
(137) структурируйте параметры по смыслу
|
||||||||||||||||
139
Гений 1С
гуру
26.06.22
✎
13:02
|
(138) пошла задняя
|
||||||||||||||||
140
Ненавижу 1С
гуру
26.06.22
✎
13:45
|
(139) ляпнул чтобы ляпнуть?
|
||||||||||||||||
141
Конструктор1С
26.06.22
✎
13:50
|
(120) это какой-то ахтунг, под стать ТСу
|
||||||||||||||||
142
Конструктор1С
26.06.22
✎
13:53
|
(127) ну да, программировать ты так и не научился, походу никогда и не научишься. Тот случай, когда навечно застрял в джунах
|
||||||||||||||||
143
Конструктор1С
26.06.22
✎
16:25
|
Нашел ещё одну ловкую мысль у Макконела
"ДОРОГА В АД ПРОГРАММИРОВАНИЯ ВЫМОЩЕНА ГЛОБАЛЬНЫМИ ПЕРЕМЕННЫМИ" (c) |
||||||||||||||||
144
Гений 1С
гуру
26.06.22
✎
20:58
|
(142) член кружка анонимных программистов рассказывает мне как кашлять.
|
||||||||||||||||
145
Chai Nic
26.06.22
✎
21:26
|
(143) Глобальные переменные это зло, без сомнения. Но почему же таким же злом не считают глобальные процедуры?)
|
||||||||||||||||
146
Ненавижу 1С
гуру
26.06.22
✎
22:50
|
(145) глобальная процедура... Боюсь это не устоявшийся термин и зависит от конкретики языка, например
|
||||||||||||||||
147
vsad420
26.06.22
✎
22:54
|
Код лишь реализация архитектуры и применения различных парадигм. Если взять подход с иерархическими конечными автоматами и наследованием автоматов, то такой проблемы не возникает, ввиду возможности переопределить поведение. Детали можно найти в "Practical Statecharts in C/C++: Quantum Programming for Embedded Systems"
Более простым способом является вынесения состояния в отдельный объект, что тебе там и рекомендовали. Всё это нормальным программистам обычно известно. Ты не открываешь ничего нового. Наивная попытка изобрести то, что давно уже сделано. |
||||||||||||||||
148
Bigbro
27.06.22
✎
05:17
|
не читал, но дешевый самопиар осуждаю.
КГ/АМ |
||||||||||||||||
149
Конструктор1С
27.06.22
✎
05:18
|
(144) твой фетишизм добавляет 0,0 твоей профессиональной ценности
|
||||||||||||||||
150
Chai Nic
27.06.22
✎
08:14
|
(146) Ну вот например функции в Си - сплошь глобальные процедуры. Их всегда видит весь модуль. А объявить функцию локально внутри области видимости другой функции - нельзя. А в паскале например это штатная возможность изначально. В результате возможно объявить неглобальную переменную, доступную во всей нижележащей иерархии подпрограмм без явной передачи в параметрах.
|
||||||||||||||||
151
Ненавижу 1С
гуру
27.06.22
✎
18:21
|
(150) какой модуль в си? Там нет моделей
Если в паскале функция вернет локальную подфункцию, то эта локальная функция как бы уже и глобальная Другое |
||||||||||||||||
152
Сергиус
27.06.22
✎
19:09
|
(0)Как-то ты уже предлагал идею со справочником - писать туда нужные значения и в месте использования читать. Что-то подобное и тут.
КГ/АМ |
||||||||||||||||
153
Гений 1С
гуру
27.06.22
✎
20:39
|
(152) да, потом переделал на параметры сеанса.
|
||||||||||||||||
154
ДедМорроз
27.06.22
✎
21:12
|
(150) В Си имя функции - это указатель на ее адрес,поэтому,можно определить переменную и в нее поместить указатель на нужную функцию и менять его,если нужно.
В современном Си++ есть области видимости. Опять же,в Си файл собирается из нескольких объектных файлов,и в каждом можно определять свои функции,если все сделать правильно,то можно иметь несколько версий одной функции. В частности,в плюсах могут существовать одноименные функции,принимающие разные параметры. Но,проблема всех компиллируемых языков в том,что весь код должен быть написан еще на этапе сборки программы,что,во многих случаях,очень сильно ограничивает. |
||||||||||||||||
155
Кирпич
27.06.22
✎
22:28
|
(151) Есть в Си модули. Ты же заголовочные файлы подключаешь. Чем тебе не модули. А в паскале ты адрес вложенной функции не вернешь. Да и нет в этом никакого смысла.
(154) "Но,проблема всех компиллируемых языков в том,что весь код должен быть написан еще на этапе сборки программы" А в других языках нужно писать код, которые генерируют код? :)) На 1с ты не пишешь сначала весь код что ли? |
||||||||||||||||
156
Ненавижу 1С
гуру
27.06.22
✎
22:43
|
(155) заголовочные файлы это просто текст вынесенный в другой файл. Это не модули, не пространства имён.
По поводу Паскаля - очень даже, если результат функции есть функциональный тип |
||||||||||||||||
157
ДедМорроз
27.06.22
✎
22:48
|
(155) так оператор Выполнить в 1с позволяет делать чудеса.
И,писать код,который собирает код,часто намного проще. |
||||||||||||||||
158
Повелитель
28.06.22
✎
07:30
|
(0) То что в статье не использую, так как в коментах к статьи и говорят, что отладка такого кода сложна и не очень всё наглядно.
Использую 2 варианта. 1 вариант. Процедура КакаяТоТиповаяПроцедура(КакиетоПараметры) Мой код ВОЗВРАТ; // Типовой код // КонецПроцедуры 2 Вариант Процедура КакаяТоТиповаяПроцедура(КакиетоПараметры) переименовываю её в КакаяТоТиповаяПроцедура_Архив(КакиетоПараметры) // Типовой код // КонецПроцедуры Добавляю такую же процедуру Процедура КакаяТоТиповаяПроцедура(КакиетоПараметры) Мой код КонецПроцедуры В этих 2-х вариантах проще потом делать обновления новых релизов типовых. Сейчас очень сильно сталкнулся с этой проблемой когда в типовую, конкретно в УТП для Казахстана добавили модуль с СНТ. Причем модуль написано так плохо, что некоторые процедуры в нём в принципе не работают, не знаю как они её в тираж пустили. Например невозможно оформить возврат ЭСФ если в реализации были 2 одинаковые номенклатуры. И сейчас почему-то модно стало применять код как в ЗУП, где огромное количество временных запросов идут друг за другом страниц этак на 10 формата А4. Отладить такой код практически невозможно. Проще переиминовать их процедуру в КакаяТоТиповаяПроцедура_Архив(КакиетоПараметры) и сделать свою. |
||||||||||||||||
159
Гений 1С
гуру
28.06.22
✎
08:07
|
(158) чувак, 2 раза перечитал, не понял, что ты там применяешь..
|
||||||||||||||||
160
Chai Nic
28.06.22
✎
08:15
|
(156) "очень даже, если результат функции есть функциональный тип"
Это уже не настоящий паскаль, а генномодифицированный) |
||||||||||||||||
161
luter-89
28.06.22
✎
08:24
|
Странно видеть столько негативных комментариев))
Но Гений предложил уже давно придуманную схему и она давно используется в типовых конфигурациях. Посмотрите глобальную переменную ПараметрыПриложения. Другое |
||||||||||||||||
162
Гений 1С
гуру
28.06.22
✎
08:26
|
(161) ну она все же не для этого используется. В моем предложении именно на момент спуска в стек устанавливается значение.
|
||||||||||||||||
163
luter-89
28.06.22
✎
08:27
|
(105) Главное правильно применять, использовать окружение в разработке, тогда становится понятно где что лучше использовать
|
||||||||||||||||
164
luter-89
28.06.22
✎
08:28
|
(162) Ну я может не полностью погрузился в тему, но я думаю ты также можешь использовать это соответствие.
Какая разница в какой момент ты будешь сохранять значение переменной |
||||||||||||||||
165
Повелитель
28.06.22
✎
08:32
|
(159) Объясняю другими словами.
1 вариант. Вначале типовой процедуры вызываем ВОЗВРАТ; Таким образом полностью перекрываем типовой код. Соответственно перед возвратом пишем свой код. 2. Вариант. Типовую процедуру не удаляю, а переименовываю, чтобы коллеги могли видеть что было в типовой. И создаю процедуру с таким же названием как в типовой, только код там полностью мой. |
||||||||||||||||
166
Кирпич
28.06.22
✎
08:32
|
(156) Модули в Си конечно не такие правильные как в паскале, но они есть. И это факт. А про вложенные функции в паскале - там компилятор тупо не даст тебе вернуть адрес вложенной функции. И нахрена тебе адрес вложенной функции, что с ним делать?
(157) "И,писать код,который собирает код,часто намного проще." Ты пользуешься оператором Выполнить не каждый год. Не выдумывай. |
||||||||||||||||
167
Гений 1С
гуру
28.06.22
✎
08:33
|
(165) а чем это лучше расширений? И как это решит задачу с печатными формами например? Ощущение что вы слышали звон, да не поняли о чем он
|
||||||||||||||||
168
Ненавижу 1С
гуру
28.06.22
✎
09:05
|
(166) 1. нет модулей в Си, и в Си++ они только пытаются появится. Это факт.
2. в Паскале: объявляем функциональный тип, говорим что внешняя функция возвращает этот тип. Так например каррирование устроено |
||||||||||||||||
169
Chai Nic
28.06.22
✎
09:10
|
(168) "Так например каррирование устроено"
А что это такое и зачем оно нужно? Когда я учил паскаль, в начале 90х, о подобном не слышали. |
||||||||||||||||
170
Кирпич
28.06.22
✎
09:11
|
(168) "2. в Паскале: объявляем функциональный тип, " покажи пример
|
||||||||||||||||
171
vsad420
28.06.22
✎
10:23
|
(170) https://www.freepascal.org/docs-html/ref/refse17.html
Type TOneArg = Procedure (Var X : integer); TNoArg = Function : Real; var proc : TOneArg; func : TNoArg; |
||||||||||||||||
172
Кирпич
28.06.22
✎
10:25
|
(171) да это понятно. как вернуть адрес встроенной функции(которые внутри другой функции)?
|
||||||||||||||||
173
Повелитель
28.06.22
✎
10:55
|
(167) Расширение не переопределяет функцию/процедуру, а по сути добавляет код в конец.
Печатные формы выношу во внешние. Выдрать код и вставить в во внешнюю печатную форму занимает 30 минут и никаких проблем с обновлением в дальнейшем. Плюс эту печатную форму можу выставить на продажу. |
||||||||||||||||
174
ice777
28.06.22
✎
11:12
|
(0) почитал статейку. Лошади едят сено, коровы дают молоко.. Ничего нового.
И креативного тоже ничего не увидел. |
||||||||||||||||
175
Гений 1С
гуру
28.06.22
✎
11:16
|
(174) нельзя налить воды в полную мочи чашку.
|
||||||||||||||||
176
Гений 1С
гуру
28.06.22
✎
11:16
|
(173) откройте для себя Вместо и ИзменениеИКонтроль, спорим, вы о них не знали? Гггг.
|
||||||||||||||||
177
Повелитель
28.06.22
✎
12:35
|
(176) Погляжу, спасибо, не обращал внимания ))
|
||||||||||||||||
178
lodger
28.06.22
✎
12:44
|
всё пропало.
КГ/АМ |
||||||||||||||||
179
Ryzeman
28.06.22
✎
13:15
|
(0) Директор в моей первой семёрочной конторе любил чуток поговнокодить, он ОЧЕНЬ любил константы примерно по тем же причинам. Вы бы с ним спелись)
КГ/АМ |
||||||||||||||||
180
Гений 1С
гуру
28.06.22
✎
15:04
|
(177) я думаю, это перевернет ваше представление о программировании расширений. я рад что лишил вас "девственности ВМЕСТО"
(179) какое у тебя место на инфостарте, кстати, красавец? |
||||||||||||||||
181
Arbuz
28.06.22
✎
16:11
|
(180) Жениться бы тебе, барин! ©
|
||||||||||||||||
182
unbred
28.06.22
✎
16:13
|
не сталкивался, но всякий случай "5"
КГ/АМ |
||||||||||||||||
183
Курцвейл
28.06.22
✎
16:17
|
(0) Почему не написал статью на stackoverflow? Русский язык слишком богат и слишком гибкий чтобы вести строгие и логичные дискуссии по вопросам общения с машиной.
Другое |
||||||||||||||||
184
unbred
28.06.22
✎
16:20
|
каменты почитал к статье. прям кайф) очень рекомендую)
|
||||||||||||||||
185
Курцвейл
28.06.22
✎
16:25
|
А потом прибежал Сирожа. Directed by Robert B. Weide
|
||||||||||||||||
186
Гипервизор
28.06.22
✎
17:17
|
(180) Как-то в стиле "сперва добейся".
И о чём же говорит место на Инфостарте? |
||||||||||||||||
187
Конструктор1С
28.06.22
✎
17:23
|
(186) о том что гена потратил много сил и времени на зарабатывание плюсиков на инфостарте
|
||||||||||||||||
188
Волшебник
28.06.22
✎
17:26
|
(180) >> какое у тебя место на инфостарте, кстати, красавец?
У Мани было первое и где он теперь? Всё это мимолётно и ненадёжно. Не копи сокровищ на земле и рейтинг в облаках, а лучше подумайте о душе. |
||||||||||||||||
189
andrewalexk
28.06.22
✎
17:57
|
(185) :) да там многие режиссеры подойдут
"А ведь там талант одиночка тоже пробирается,... сквозь толпу, только не с диссертацией, а с ножичком."(с) |
||||||||||||||||
190
Гений 1С
гуру
28.06.22
✎
21:14
|
(188) не знаю, где маня. Но то что он там был первым показатель его скиллов. А те, кто там не бывали, хз, хз
|
||||||||||||||||
191
Гений 1С
гуру
28.06.22
✎
21:15
|
(187) это win-win стратегия. ну и потом сперва ты работаешь на зачетку, а потом она на тебя.
(186) именно, о том, что сообчество оценило товарища. |
||||||||||||||||
192
Zapal
28.06.22
✎
21:27
|
как я понимаю здесь в первую очередь ставится задача решить вопрос с минимальными изменениями типовой, а не по канонам
с этой точки зрения решение из (0) вполне приемлимо |
||||||||||||||||
193
Гений 1С
гуру
28.06.22
✎
21:29
|
(192) ну наконец-то глас разума. Я его долго ждал, респект, коллега
|
||||||||||||||||
194
vsad420
28.06.22
✎
22:37
|
(172) В Паскале ? Скорей всего ассемблерной вставкой. Но лучше использовать более подходящий язык или просто иной подход с вынесением состояния в отдельную структуру.
|
||||||||||||||||
195
los_hooliganos
28.06.22
✎
23:26
|
Показал статью Сережи знакомым болгарам. Они восхитились.
|
||||||||||||||||
196
Ryzeman
29.06.22
✎
07:07
|
(180) Сперва добейся?) Я слишком давно в интернете, что бы вестись на эту хрень. Ты сам на общественный суд статью выдал, не я)
|
||||||||||||||||
197
Кирпич
29.06.22
✎
07:16
|
(195) покажи им сирожкино кино.
|
||||||||||||||||
198
Гений 1С
гуру
29.06.22
✎
08:50
|
(196) я отдал для того, чтобы услышать аргументы. Когда их увижу, не буду тебя спрашивать о месте на инфостарте. Ну а для "Мистеров 0 бит" это мой любимый вопрос. Короче, проще говоря, если ты прише просто потрещать, то и я просто потрещу
|
||||||||||||||||
199
Ryzeman
29.06.22
✎
09:57
|
(198) Аргументов тебе написали уже кучу, что тут что на хабре, повторяться не хочется. То, что ты "изобрёл" достаточно часто используется для костылизации типовых минимальными усилиями, например когда делают все доработки через расширения и не хотят править 100500 типовых процедур. То есть право на жизнь имеет, но не отменяет того, что это - полная хрень в плане архитектуры решения и мало чем отличается от моего любителя констант.
|
||||||||||||||||
200
Ryzeman
29.06.22
✎
10:06
|
А ещё для этой же цели достаточно часто используют ХранилищеОбщихНастроек
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |