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

Бесконечный цикл, зачем?

Бесконечный цикл, зачем?
Я
   JUST4LOL
 
09.03.21 - 05:39
Где в 1С может использоваться бесконечный цикл и для чего? Можно ли обойтись без него?
   Масянька
 
101 - 09.03.21 - 11:53
Сто
   acht
 
102 - 09.03.21 - 11:53
(95) > у разработчиков джавы
А причем тут разработчики языка? Ты еще рассмотри выход из цикла выбрасыванием исключения и сошлись, ну например на Гвидо ван Россума.
   ДедМорроз
 
103 - 09.03.21 - 11:57
В языке 1с нет цикла с постусловием,поэтому,или извращаться с вводом дополнительной переменной,которую сбрасывают в ложь где-то внутри цикла или условие Истина и выход по Прервать.
С переменной имеет право на существование,когда условие проверяется во вложенном цикле,т.к.там явно Прервать наружу не выведет.
Опять же Пока НЕ Отказ Цикл тоже неплохо смотрится,хотя,по сути та же переменная.

Ну и реально бесконечный цикл это всем нелюбимый GoTo и метка вначале.
   fisher
 
104 - 09.03.21 - 11:58
(102) Притом, что при разработке джавы не самые глупые люди очень вдумчиво подходили к вопросу, чего бы выбросить лишнего и вредного. И тот же "свободный" гоуту выпилили. А вот в циклах специально оставили с особым синтаксисом. Это я к тому, что вопрос не такой однозначный, как ты пытаешься показать, апеллируя к моей якобы неопытности.
   Волшебник
 
105 - 09.03.21 - 12:00
(103) О-хо-хо:

~НачалоБесконечногоЦикла:
  //...

   Если УсловиеПрерывания Тогда Перейти ~КонецБесконечногоЦикла; КонецЕсли;
  //...

Перейти ~НачалоБесконечногоЦикла;
~КонецБесконечногоЦикла:
   Garikk
 
106 - 09.03.21 - 12:01
(103) <это всем нелюбимый GoTo и метка вначале.>
не устано повторять, что goto в данном контексте ничего общего с 'всем нелюбимым goto' не имеет
   ДедМорроз
 
107 - 09.03.21 - 12:01
Исключения как раз можно имитировать через цикл.
Пока Истина Цикл
 Если Исключение Тогда
  Прервать;
 КонецЕсли;
 Действие1();
//..

 ДействиеВКонце;
 Прервать;
КонецЦикла;

На языке 1с выглядит смешно,а в языках,где нет исключений и GoTo вполне себе терпимо
   Irbis
 
108 - 09.03.21 - 12:02
(103) Цикл с пост условием легко делается копи пастом тела цикла и циклом с предусловием.
   dmpl
 
109 - 09.03.21 - 12:03
(108) Копи-паста плоха тем, что можно в одной части поменять, а в другой забыть.
   Irbis
 
110 - 09.03.21 - 12:58
(109) Есть такая бяка, но легко оформляется выделением тела цикла в процедуру. Правится после этого в одном месте.
   Hmster
 
111 - 09.03.21 - 13:12
Что лучше читается?
Пока Истина Цикл
  Если Условиие_1() Тогда
     Прервать;
  КонецЕсли;
  ...
  Если Условиие_N() Тогда
     Прервать;
  КонецЕсли;  
КонецЦикла;

или

Работаем = Истина;
Пока Работаем Цикл
  Если Условиие_1() Тогда
     Работаем = Ложь;
     Продолжить;
  КонецЕсли;
  ...
  Если Условиие_N() Тогда
     Работаем = Ложь;
     Продолжить;
  КонецЕсли;  
КонецЦикла;
   Hmster
 
112 - 09.03.21 - 13:14
(110) то еще решение (нынче модно): дробить код на невменяемые процедуры и функции, гонять между ними контекст
   Irbis
 
113 - 09.03.21 - 13:18
(112) Меня после фортрана ничем не напугаешь. Все эти заморочки по поводу удобочитаемости и идеальности кода не более чем понты.
   fisher
 
114 - 09.03.21 - 13:23
(113) "Ректальное программирование - путь состоявшегося программиста"? :)
   Irbis
 
115 - 09.03.21 - 13:29
(114) Я думаю, что тру-программистом я так и не стал. Всё время работал решателем каких-то проблем, по случаю занесло в 1С. Чисто программирование само по себе не особо и интересно.
   Волшебник
 
116 - 09.03.21 - 13:34
(113) Меня после регулярных выражений PERL тоже ничем не напугаешь.
   Irbis
 
117 - 09.03.21 - 13:35
(116) Так и название у языка само за себя говорит.
   novichok79
 
118 - 09.03.21 - 13:48
(69) причем здесь адепты ООП?
действительно было бы удобно иметь структуры с встроенными в них функциями.
неважно как оно называется. сейчас всю логику приходится писать в общих модулях.
и мне кажется, это логичное продолжение развития 1С.
как записывать в базе? а ORM зачем придумано?
в hibernate привязывается к полю аннотацией, то есть через метаданные.
есть внешние источники данных, там используется явная связь поле в метаданных - колонка в базе.
и ничего - справляется.
   novichok79
 
119 - 09.03.21 - 13:50
(69) квалификация исполнителя?
то есть вы считаете, что выучить базовые принципы ООП и SQL - слишком сложно для обычного 1Сника?
тогда зачем идти в программирование, в принципе?
нет, поскольку 1С - фреймворк (или RAD-система), которая по сути предствляет собой ORM и GUI, это все для чего оно проектировалось. оно это делает и делает это хорошо.
для других целей придуманы ЯП общего назначения, коим 1С не является.
не надо ждать от самосвала скорости болида формулы 1.
   fisher
 
120 - 09.03.21 - 14:10
(119) Если обычному 1Снику несложно выучить ООП и SQL (и что там еще в нагрузку по вкусу), то какой смысл ему вообще идти в 1С? 1С обслуживают программисты-неудачники. И чем ниже порог входа - тем больше у 1С потенциальных адептов. Отток из 1с специалистов УЖЕ налицо, в связи с увеличением за последние годы доступного спроса на программистов других профилей. А ты его ускорить что ли хочешь? :)
   Почему 1С
 
121 - 09.03.21 - 14:24
(120) Что то как не очень хочется в джуны из 1с уходить если тебе не до 25 лет.
   fisher
 
122 - 09.03.21 - 14:26
Хотя, вполне может быть, что 1С пойдет по этому пути (усложнения платформы). Растущая сложность типовых конфигураций и без усложнения платформы значительно поднимает порог входа. Растет качество и размер продуктов, растут требования и ожидания пользователей. Так что и без усложнения платформы "специалистов 1С", способных на серьезную разработку, будет становиться все меньше и меньше. Будет просто постепенно падать спрос на них. Центры разработки будут укрупняться, но их будет становиться меньше. Феномен ранних 1С уже не повторить. Рынок видоизменяется, такого количества "писателей" уже не нужно будет. Так что вполне может статься, что 1С таки плюнет "на доступно и всерьез". Ну, как плюнет. Перестанет слишком крепко этого держаться.
   laby1
 
123 - 09.03.21 - 14:29
Каждый день после обеда открываешь мисту и так каждый день.
   fisher
 
124 - 09.03.21 - 14:29
(121) Добро пожаловать в клуб :)
   Малыш Джон
 
125 - 09.03.21 - 14:34
(111) ну цикл по-человечески преобразовывать, тогда и выглядеть прилично будет:

Работаем = Истина; 

Пока Работаем Цикл
  Если Работаем Тогда
    //делаем свое дело

     Работаем = Условие_1();     
  КонецЕсли;
  ...
  Если Работаем Тогда
    //делаем свое дело

     Работаем = Условие_N();     
  КонецЕсли;  
КонецЦикла;
   novichok79
 
126 - 09.03.21 - 14:39
(121) даже если вам немного за 30 ... (с) поющие сиськи.
если вы только в 1С можете, то да, вам только в джуны.
если вы в курсе каких-то общих технологий, типа всяких MQ систем, Hadoop'а, что-то помните по алгоритмам, и даже пилите всякие домашние проектики, то почему сразу джун?
хожу иногда на собесы по Java, на последнем предлагали учить Kotlin :)
   novichok79
 
127 - 09.03.21 - 14:41
(120) ладно, я - самоучка, но ведь ООП и SQL в этих ваших институтах учат.
дело в другом, многие в регионах в начале 10-х (мой случай) идут в 1С, просто потому что других вакух нет.
   novichok79
 
128 - 09.03.21 - 14:43
(127) других вакух со словом "программист", имею в виду.
   dmpl
 
129 - 09.03.21 - 15:01
(118) Модуль менеджера чем не катит?

(119) Если он это выучит - он будет стоить дороже. Что неинтересно ни 1С, ни ее клиентам.
   fisher
 
130 - 09.03.21 - 15:02
(128) Ну вот основная масса "старой волны" в 1С так и попала. Либо вакух было мало, либо вообще не со стороны ИТ пришли. А сейчас ситуация другая. Совсем со стороны заходить становится все сложнее, вакух  (не одинэсных) становится больше (рынок все еще перегрет и остывать пока не спешит) и выбор именно 1С со стороны айтишников стал значительно менее оправдан. Да и не знать тот же английский сейчас уже становится попросту неприличным для образованного человека.
 
 
   novichok79
 
131 - 09.03.21 - 15:03
(129) модуль менеджера - это разновидность общего модуля, имхо.
а так да, обычно туда тащу функционал тесно связанный с объектом МД.
какая разница, что интересно 1С?
чем больше я знаю того, что умеют немногие, тем больше я стою.
это универсальная формула, что в Россиюшке, что за ее пределами.
   novichok79
 
132 - 09.03.21 - 15:08
(122) для меня кроме инкапсуляции, еще один плюс в пользу ООП, в том, что если бы были контракты методов, описанные до имплементации, то проблем после обновлений, когда меняется порядок или типа параметров в функции общего модуля, было бы меньше.
в остальном, можно и без ООП.
   Александр Б
 
133 - 09.03.21 - 15:14
(0) для паузы.
   antgrom
 
134 - 09.03.21 - 15:18
(0) Считаю что выполнение регламентных заданий - это своего рода бесконечный цикл.
Вы ставите расписание например "выполнять 1 раз в день" и не ставите "дату окончания"
Получается что этот цикл - бесконечный ?
   fisher
 
135 - 09.03.21 - 15:29
(132) Тут еще вопрос - что понимать под "ООП". ООП как в плюсах и джаве - фактически уже ископаемое и так больше не носят (в более свежих языках). В том же golang реализованы более прикольные концепции, которые позволяют не имея классов как таковых использовать и инкапсуляцию и контракты, давая при этом гораздо больше гибкости и избавляя от лишних приседаний.
   Garikk
 
136 - 09.03.21 - 15:30
(135) вот уж в голанг извратились конечно, очень я сомневаюсь что они правильным путем пошли с неявными интерфейсами
   Garikk
 
137 - 09.03.21 - 15:32
вообще я уже видел два примера когда 'ненужно и перегружено' выливается 'а теперь имеющимися костылями мы будем делать почти как в яве'...я уже и с питоном и с голангом с этим сталкивался, когда проект разрастается
   Почему 1С
 
138 - 09.03.21 - 15:32
(132) Ну если мне когда то и не хватало ОПП в 1С то это наследования, это решилось вводом расширений конфигурации. Полиморфизм можно реализовать, инкапсуляция никогда особо не впечатляла как принцип, можно его придерживаться и без реализации этого принципа в яп. А контракты так это вообще не ООП, хотя честно признаюсь встретил их в Котлине, и не понял для чего они могут понадобится.
   fisher
 
139 - 09.03.21 - 15:38
(136) Ты про утиную типизацию интерфейсов? ИМХО, гениальная штука. Куча приседаний в классическом ООП и ряд многострадальных костылей называемых "шаблонами проектирования" - только из-за того, что там в этом месте строгая типизация через классы.
(137) Интересно. А можно поподробнее про костыли типизации в голанге на больших проектах. Питон - понятно. Но в голанге же строгая статическая типизация?
   Garikk
 
140 - 09.03.21 - 15:41
(139) <ИМХО, гениальная штука.>
гениальная штука скомпилить запуск ядерной ракеты вместо открывания двери только потому что у них интерфейс void open() ?

За это надо руки ноги и еще чтото отрывать 

(139) я не про типизацию в голанге, а в том что выкинутое ненужное, начинают обратно придумывать...теже исключения многострадальные
   Garikk
 
141 - 09.03.21 - 15:41
(140) *и не надо про тесты, тесты у нас в отрасли пишутся через одно место, в т.ч. и в ракетной технике
   ДенисЧ
 
142 - 09.03.21 - 15:42
(139) утиная типизация в современном с++ это нечто...
auto a: "тут бешеная цепочка темплейтов"
И без отладчика фиг поймёшь, а что туда вывелось...

Мне кажется - это уже не то что перебор...
   Волшебник
 
143 - 09.03.21 - 15:42
(138) Наследование уже неактуально. Это была генетическая пародия. В моду входит компоновка.
   ДенисЧ
 
144 - 09.03.21 - 15:43
(141) "в т.ч. и в ракетной технике"
Ага.. То бак сомнётся от внешнего (!) давления, то двигателю топлива не хватит...
   ДенисЧ
 
145 - 09.03.21 - 15:43
(143) компоновка? Имени Бориса Георгиевича?
   fisher
 
146 - 09.03.21 - 15:44
(140) Не, ну возможность подсунуть ненадлежащий метод удовлетворяющий интерфейсу - это однозначно меньшее зло.
(145) Композиция, вероятно, имелась в виду.
   Garikk
 
147 - 09.03.21 - 15:44
(146) ничесе меньшее...когда только в рантайме всё рухнет и хорошо если не на голову
   Garikk
 
148 - 09.03.21 - 15:45
и всё ради чего? ради того чтобы 'писанины поменьше'
   Почему 1С
 
149 - 09.03.21 - 15:48
(143) А как композицией переопределить скажем проведение документа на поддержке?
   fisher
 
150 - 09.03.21 - 15:49
(147) Профит уж очень велик. А это прогу нужно серьезно накосячить с закрытыми глазами и не используя даже юнит-тестов. Зато никакой головной боли со всякими адаптерами и "чужими" классами.
   Irbis
 
151 - 09.03.21 - 15:57
Походу зациклилась тема
   fisher
 
152 - 09.03.21 - 15:57
(148) Так в том-то и беда, что в классическом ООП обвязка хоронит под собой бизнес-логику и код становится сложнее и грязнее. За что все скриптовые языки и любят (пока проекты небольшие). В голанге, ИМХО, смогли достигнуть отличного компромисса. Минимум писанины при статической строгой типизации компилируемого языка.
   Garikk
 
153 - 09.03.21 - 16:49
(150) <А это прогу нужно серьезно накосячить с закрытыми глазами и не используя даже юнит-тестов.>
тоесть надо работать как обычно в подавляющем большинстве проектов, ага

за что я люблю яву, большая часть косяков отваливается на этапе компиляции.

а тесты...эх тесты, когда я в крупной конторе работал околобанковской, тестов у нас вообще не было, в других проектов процентов 80 было покрытия, сейчас процентов 60..

так что пусть уж лучше язык следить если тимлиды не могут
   fisher
 
154 - 09.03.21 - 17:41
(153) Ну, такое. Аргумент понятен. Но наши оценки все равно разнятся. Возможно, если бы я был ленивым синьором на проекте, где лемминги пилят фичи, я бы тоже топил за джаву как за чуток более "леммингоустойчивый" инструмент "из коробки".
   brainguard
 
155 - 09.03.21 - 20:08
(0) Например, надо написать программу:
"всех впускать, никого не выпускать"
   brainguard
 
156 - 09.03.21 - 20:21
(86) Полноценным языком считается язык, обладающий полнотой по Тьюрингу. А это значит, что на этом языке можно написать машину Тьюринга. А это, в свою очередь, значит, что нет способа заранее определить остановится эта машина или нет
   dmpl
 
157 - 09.03.21 - 21:42
(131) Ну так 1С не нужно, чтобы для сопровождения ее кода требовались уникумы. И бизнесу это тоже не нужно. Поэтому как-то решать общие задачи должен уметь даже тот, кто на джуна не тянет.
   Волшебник
 
158 - 09.03.21 - 21:49
(156) На машине Тьюринга далеко не уедешь...
   ViSo76
 
159 - 10.03.21 - 00:30
(95) Есть варианты, к примеру множественные вложенные циклы,где go to оправдан, что бы вывалиться из всех циклов без извращений
   valerivp
 
160 - 10.03.21 - 03:02
(46) нет лучшего варианта - с фоновым заданием
 
 
   ДенисЧ
 
161 - 10.03.21 - 04:34
(46)
Пауза Пингом
Станет нам гимном
Заданий примеры 
Злят нас без меры
Даёшь ооп!
Опять грабли в лоб...

/////


Разлилась ширОко Яуза
ой-да через пинги наша пауза.
   fisher
 
162 - 10.03.21 - 10:17
(160) Он там в комментах есть. Ну и пауза фоновым заданием годится только для относительно больших пауз. Микропаузы до сих пор приходится бесконечными циклами делать.
   fisher
 
163 - 10.03.21 - 10:18
Не бесконечными - холостыми, конечно же.
   Волшебник
 
164 - 10.03.21 - 11:45
Все научились программировать. А дальше-то что?
https://habr.com/ru/company/htmlacademy/blog/546268/
  1  2

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