Имя: Пароль:
1C
1С v8
Бесконечный цикл, зачем?
0 JUST4LOL
 
09.03.21
05:39
Где в 1С может использоваться бесконечный цикл и для чего? Можно ли обойтись без него?
1 ДенисЧ
 
09.03.21
05:42
Например
а) ты хочешь, чтобы тебя признали профнепригодным.
...
я) "я так вижу, ибо я художник"
2 craxx
 
09.03.21
05:53
(0) когда ты заведомо не знаешь когда он должен закончится. Например.
И по условию из него вываливаешься.
3 Irbis
 
09.03.21
06:02
(2)Это обычный цикл с пост или пред условием. Бесконечный — когда условие заведомо невыполнимо.
4 vi0
 
09.03.21
06:04
(0) ну если тебе нужно чтобы он выполнялся "бесконечно" тогда не обойтись
но видимо у тебя другой случай
5 Обработка
 
09.03.21
06:05
Пока 1=1 Цикл
....
....
Если Условие=1 Тогда
Прервать
КонецЕсли;
....
....
КонецЦикла
6 Irbis
 
09.03.21
06:12
(5) А что мешает:

Пока Не (Условие=1) Цикл?
7 ДенисЧ
 
09.03.21
06:13
(6) А условие у тебя вычисляется в цикле. По неизвестным правилам (например, в зависимости от ввода пользователя)
8 AneJIbcuH
 
09.03.21
06:17
Ещё всё пишут, что цикл в одну строку быстрее работает. Сам не проверял. Миф?
9 craxx
 
09.03.21
06:21
(6) условие может быть а) вложенным; б) вычисляться в этом цикле
10 Sserj
 
09.03.21
06:21
(8) Миф. Замеряют в отладчике, а он тратит время на переход и компиляцию к следующей строке.
11 vi0
 
09.03.21
06:21
(8) не миф, но на тех задачах где применяется 1с вряд ли это даст полезный прирост
12 vi0
 
09.03.21
06:23
(10) можно без отладчика замерить
13 Обработка
 
09.03.21
06:28
(6) Условия бывают сложные составные громоздкие. Могут быть их несколько.
Тут важно читабельность.
Когда пишут что пока 1=1 цикл
сразу понятно что выход из цикла по условию и это условие объязательно выполнимая..
14 Галахад
 
гуру
09.03.21
06:31
(13) Кстати, а почему:
Пока 1=1 Цикл
а не
Порка Истина Цикл
например?
15 Почему 1С
 
09.03.21
06:37
(14) Я предпочитаю вариант с Истина
16 Провинциальный 1сник
 
09.03.21
06:38
(14) В семерке ИСТИНЫ не было
17 Галахад
 
гуру
09.03.21
06:46
(15) (16) Понятно.
18 Irbis
 
09.03.21
06:54
(7) Думать, выносить... короче стремиться к классике жанра. За вопросы в цикле (ввод пользователя) металлический ящик с гвоздями. Хотя я может и чего-то не догоняю, но мне ни разу такие подперевыверты не требовались.
19 spectre1978
 
09.03.21
06:55
(0) нужен редко, считается не очень хорошим стилем программирования, также как и goto, хотя в меньшей степени. Практически всегда может быть заменен циклом с пред- или постусловием.
20 Провинциальный 1сник
 
09.03.21
06:57
(19) Ну если так рассуждать, то и Продолжить и Прервать - тоже зло, так как нарушает принципы структурного программирования. Тем не менее, мы не математики, а прикладные программисты. И если код с нарушениями получается понятнее и эффективнее - то будем писать с нарушениями.
21 ДенисЧ
 
09.03.21
07:01
(18) А если это вопрос не пользователю, а удалённой системе? Можно гвозди покороче и не такие ржавые?
22 Irbis
 
09.03.21
07:13
(21) Тогда без гвоздей. Сначала нужно спросить всё что требуется, потом уже всякие циклы запускать, а то просят сами чего хотят не знают.
23 Irbis
 
09.03.21
07:14
(20) И Продолжить и Прервать — это всё безусловные переходы. Легко реализуются при помощи гоуту, но чтобы не дразнить адептов слегка маскируют такую конструкцию.
24 Почему 1С
 
09.03.21
07:27
(19) Кем или где считается что бесконечные циклы не очень хороший стиль программирования? Я вот про такое не знаю, хочу почитать авторитетный источник, и впредь знать
25 ASU_Diamond
 
09.03.21
07:32
(23) Продолжить и Прервать понятно куда выходят (и без них можно обойтись, используют для читабельности кода), а гоуту надо искать куда выходит и анализировать какой код не исполняется
26 Вася Теркин
 
09.03.21
08:00
(0) Бесконечные циклы в 1С есть, они называются Обработками ожидания.
27 dmpl
 
09.03.21
08:05
(1) Так-то бесконечные циклы используются в типовых от 1С, поэтому а) - не вариант.
28 dmpl
 
09.03.21
08:06
(2) Главное не предусмотреть все условия, даже невозможные, либо добавить дополнительное условие, которое срабатывает, когда произошло зацикливание.
29 dmpl
 
09.03.21
08:08
(6) Условий может быть несколько, а при прерывании цикла могут требоваться дополнительные действия, которые зависят от причины прерывания цикла.

(8) Это верно для чистых интерпретаторов (типа BASIC на ZX-Spectrum). У 1С исполняется байт-код, там без разницы сколько строк.
30 Волшебник
 
09.03.21
08:08
Во время бесконечного (или длительного) цикла надо возвращать управление платформе/ОС с помощью метода ОбработкаПрерыванияПользователя().

Бесконечный цикл ПОКА ИСТИНА ЦИКЛ говорит о том, что программист ещё не определился с условием выхода из цикла. Внутри цикла должно быть "Прервать" по какому-то условию.
31 dmpl
 
09.03.21
08:10
(22) Сделай разузлование неизвестной вложенности одним обращением к БД.
32 ДенисЧ
 
09.03.21
08:11
(27) А кто сказал, что в 1с все пейсатели профпригодны?
33 Ненавижу 1С
 
гуру
09.03.21
08:11
(30) если цикл на стороне сервера, то куда вставлять ОбработкаПрерыванияПользователя?
34 dmpl
 
09.03.21
08:12
(32) 1С приняла на работу, код прошел проверку, раз оказался в релизе.
35 Волшебник
 
09.03.21
08:14
(33) У нас был случай, когда на стороне сервера была бесконечная рекурсия. Такие утопления приводят к вылету с дампом без всяких сообщений об ошибках. При этом отваливался рабочий процесс и около 50 толстых клиентов отваливались, а остальные продолжали работать. Найти ошибку было очень сложно, потому что рекурсия была из двух процедур, вызывающих друг друга.
36 ДенисЧ
 
09.03.21
08:15
(34) Наивный...
37 NorthWind
 
09.03.21
08:21
(29)

ЦиклРаботает = Истина;
Пока ЦиклРаботает Цикл
...
ЦиклРаботает = Условие1 И Условие2 И Условие3 И ... И Условие10;
// Опционально
Если Не ЦиклРаботает Тогда
Продолжить;
КонецЕсли;
...
КонецЦикла
38 Волшебник
 
09.03.21
08:24
(37) Вместо "Продолжить" лучше "Прервать"
39 DGorgoN
 
09.03.21
08:27
Вопрос: Где в типовых бесконечный цикл? Я не встречал..
Тыкните.
А вообще он много где используется и это не всегда признак плохого тона
40 Волшебник
 
09.03.21
08:28
НадоПродолжать = Истина;
Сч = 0; ПределСчетчика = 100000;
//...
Пока НадоПродолжать Цикл
   //...
   //штатное условие продолжения цикла
   НадоПродолжать = Условие1 И Условие2 И Условие3 И ... И Условие10;
   //...
   //страховка
   Сч = Сч+1;
   Если Сч > ПределСчетчика Тогда
      Прервать;
   КонецЕсли;
   //...
КонецЦикла
41 Krendel
 
09.03.21
08:29
Первые упп уходили на бесконечный цикл расчёта себеса, при встречной выпуске, кстати так и появился одноимённый регистр
42 NorthWind
 
09.03.21
08:30
(39) Смотрите (37), (40). Переделывается на предусловие на раз, и уже формально никакого "бесконечного" нет.
43 Волшебник
 
09.03.21
08:32
(42) Условие на "ПределСчетчика" не должно срабатывать. Это аварийная страховка. Поэтому будет методически неправильно указывать его в качестве предусловия.
44 Irbis
 
09.03.21
08:32
Существенный недостаток бесконечного цикла — изначально заложенное зацикливание, то есть если внутри тела цикла необходимо гарантировать прерывание такого цикла. В рекурсии обычно с этим борются закладывая глубину вызовов в параметры, обоснованно предполагая, что вложенность заведомо не может превышать какого-то значения. С бесконечным циклом примерно тоже самое, нужно обеспечить принудительный выход по какому-либо условию.
Вот и вся неказистость конструкции, нужно просто правильно её готовить, потренировавшись на кошках.
45 Волшебник
 
09.03.21
08:33
(44) Теперь предлагаю обсудить запросы внутри бесконечного цикла.
46 Волшебник
 
09.03.21
08:34
Внутри бесконечного цикла часто нужна пауза. Вот разработка, идея которой возникла из обеденной шутки
http://catalog.mista.ru/public/706204/
47 Irbis
 
09.03.21
08:34
(45) Я столько не выпью, а если и выпью, то работать не смогу. Хотя извращение зачетное. +1
48 Кирпич
 
09.03.21
08:40
Долбаные плоскоземельщики. То им ООП в 1с подавай, то им goto не нравится. Теперь до цикла докопались.
49 Волшебник
 
09.03.21
08:45
(48) в 1С есть ООП
50 Кирпич
 
09.03.21
08:46
(49) Слава богу
51 TormozIT
 
гуру
09.03.21
08:47
(29) > без разницы сколько строк
Ты ошибаешься. https://partners.v8.1c.ru/forum/t/1134075/m/1708722
Если туда нет доступа, то тут основное продублировано https://forum.infostart.ru/forum34/topic33723/?PAGEN_1=5#message1962014
52 Кирпич
 
09.03.21
08:58
(51) подтверждаю. чем меньше строк, тем быстрее. недавно проверяли.
53 TormozIT
 
гуру
09.03.21
09:03
Однострочную оптимизацию я применяю только там, где это дает существенный прирост на общем фоне. Таких мест в ИР например около 20.
54 ДенисЧ
 
09.03.21
09:07
(51) (52) (53) И на сколько тысячных долей процента это даёт прирост?
55 Кирпич
 
09.03.21
09:10
(54) Чем больше итераций тем больше процентов
56 Кирпич
 
09.03.21
09:10
но один хрен несущественно
57 Кирпич
 
09.03.21
09:13
вот например
8 сек

    Для а = 1 по 10000000 цикл
        д = д + 100.50;
    КонецЦикла;


6 сек

Для а = 1 по 10000000 цикл д = д + 100.50; КонецЦикла;
58 Bigbro
 
09.03.21
09:15
всякие проверки-прерывания на автопилоте пишу в одну строку, типа:
Если й=0 Тогда Продолжить КонецЕсли;
59 novichok79
 
09.03.21
09:20
на самом деле в 1С есть ООП,
есть классы "справочники", "документы" - базовые классы.
а их потомков мы уже добавляем в конфигурацию.
если говорить как Java'ист, 1С = hibernate + javafx.
почему бы просто не добавить в дерево метаданных базовый класс "классы".
пусть программист добавляет туда какую хочет логику.
а так - добавьте в структуру возможность вызова процедур и функций изнутри, будет вам обычный класс.
60 Волшебник
 
09.03.21
09:21
(59) Есть же Обработки
61 Волшебник
 
09.03.21
09:22
От наследования уже пора отказываться. Теперь в тренде компоновка и реализация интерфейсов.
62 Dzenn
 
гуру
09.03.21
09:23
Например, при пакетной обработке справочника:


Пока Истина Цикл

    КоличествоОбработать = 1000;
    КоличествоОбработанных = ОбработатьНоменклатуру(КоличествоОбработать);
    Если КоличествоОбработанных = 0 Тогда
        Прервать;
    КонецЕсли;

КонецЦикла;
63 Волшебник
 
09.03.21
09:27
(62) Типичный пример опасного цикла, который может зависнуть. Функция ОбработатьНоменклатуру может брать в обработку один и тот же элемент многократно.
64 Галахад
 
гуру
09.03.21
09:27
(58) Неужели условие выполняется большое количество раз?
65 Волшебник
 
09.03.21
09:28
(62) Сюда можно добавить предварительный подсчёт максимального количества итераций, например, ВсегоЭлементов / РазмерПорции + 1
66 Dzenn
 
гуру
09.03.21
09:29
(63) Не согласен, зависит от реализации. При таком подходе, при обработке элемента, вне зависимости от результата, нужно делать пометку регистр сведений, что данный элемент обработан.
67 Dzenn
 
гуру
09.03.21
09:33
(65) ВсегоЭлементов / РазмерПорции + 1  - это относительный показатель, а выборка "ПЕРВЫЕ 1000", если это точно необработанные - абсолютный показатель. Ну и "ОбработкаПрерыванияПользователя" можно в цикл добавить, если он на клиенте.
68 dmpl
 
09.03.21
09:59
(39) Ну, например, расчет пооперационного расписания, разузлование, регламентированные отчеты. Сделайте поиск по фразе "Пока Истина". В ERP порядка 800 таких конструкций.

(66) У 1С при таком подходе получается зацикливание, если те предположения, из которых они исходили, не выполняются.
69 Fedor-1971
 
09.03.21
10:03
(59) Адепты ООП, по какой-то причине, забывают, что 1С хранит Объектную модель данных в Реляционной БД
и преобразование БД-1С и обратно выполняется автоматически

И как обеспечить эту радость для произвольного класса выдуманного программером? То же дать возможность самому описывать таблицы хранения? Тут уже надо иметь уверенность в высокой квалификации исполнителя, а её то и нет
70 ДенисЧ
 
09.03.21
10:10
(69) Hibernate же эту проблему решил? И Alchemy тоже
Значит, решение существует (с) математик в отеле при пожаре.
71 Dzenn
 
гуру
09.03.21
10:11
(68) В любом языке, а не только в 1С, бесконечный цикл зацикливается, если предположения по его выходу не выполняются ;-)
72 Irbis
 
09.03.21
10:15
(71) И это и есть основное зло такой конструкции. А в умелых руках и хер балалайка
73 Волшебник
 
09.03.21
10:17
(70) Есть обработки и регистры сведений. Не любите нам мозги.
74 ДенисЧ
 
09.03.21
10:19
(73) Как данные обработки сохранить в базе данных? )))
75 dmpl
 
09.03.21
10:22
(74) Через хранилище значения.
76 Fedor-1971
 
09.03.21
10:26
75+ Это если потом с ними не нужно активно работать
Либо положить в регистр сведений, либо запихнуть в Ссылочные объекты (2 или более связанных по некой логике обработки)
77 Исновая
 
09.03.21
10:26
(0) если рабдата меньше дата Тогда не оплачено
78 Волшебник
 
09.03.21
10:32
(74) с помощью менеджера записи
79 fisher
 
09.03.21
10:36
(0) Используется обычно, когда условие выхода проблематично анализировать в начале/конце итерации. Можно заменить на флаги, но это такой же трейдоф как и использование/неиспользование гоуту для выхода из глубокой вложенности.
80 Волшебник
 
09.03.21
10:40
(79) Руки прочь от GOTO!
81 fisher
 
09.03.21
10:54
Необходимость во всяких гоуту и бесконечных циклах появляется редко. Во всяких там стейт-машинах и иже с ними.
82 ДенисЧ
 
09.03.21
10:54
(81) В стейт-машинах переходы (гото) вообще-то не нужны. Там нужен свитч. И паттерн-матчинг
83 Волшебник
 
09.03.21
11:00
(82) switch-case — это тот же goto с выбором метки
84 ДенисЧ
 
09.03.21
11:02
(83) Так и цикл, и если - тот же переход.
Просто подсахаренный.
85 Масянька
 
09.03.21
11:09
Каждый настоящий программист должен в своей жизни минимум один раз написать бесконечный цикл (С)
Ответ: чтобы почувствовать себя настоящим программистом.
86 Волшебник
 
09.03.21
11:11
(85) Языки, в которых нет бесконечных циклов, нельзя считать полноценными. Суть компьютера в том, что он постоянно крутится в бесконечном цикле, ожидая событий от пользователя или клиентов.
87 Irbis
 
09.03.21
11:11
(84) Особенно хорошо это заметно было в программировании микрокалькулятора. Или следующий шаг программы (действие), или переход по какому либо условию.
88 fisher
 
09.03.21
11:12
(82) В общем случае - да. Просто запутанные циклы, из которых может возникнуть потребность "выпрыгивания", чаще возникают в рамках задач, которые требуют и стейт-машин тоже. Такое у меня сложилось ощущение.
89 acht
 
09.03.21
11:21
(88) > Просто запутанные циклы, из которых может возникнуть потребность "выпрыгивания",
А вот нехер писать запутанные циклы, которые можно отрефакторить на отдельные методы с возвратом в нужной точке.
90 Garykom
 
гуру
09.03.21
11:30
(54) Там не доли а десятки %
Просто в платформе 1С бага с обработкой пустых строк и строк комментариев - оно при исполнении циклы по ним крутит
91 fisher
 
09.03.21
11:34
(89) Если это будут абсолютно синтетические методы, единственная задача которых - избавиться от переходов, то большой вопрос - что из этого будет меньшим злом.
92 Garykom
 
гуру
09.03.21
11:36
93 acht
 
09.03.21
11:37
(91) А ты попробуй. Напиши запутанный цикл, а потом разбей его на синтетические методы. Потом отвлекись на денек, вернись и прочитай код. А вот потом уже философствуй про "большой вопрос" и "меньшее зло".
94 dmpl
 
09.03.21
11:43
(81) В ERP без этого никуда. Там даже GOTO используется.
95 fisher
 
09.03.21
11:44
(93) Рад встретить программиста, постигшего абсолютный дзен. А вот у разработчиков джавы не поднялась рука выпилить гоуту из циклов. Не просветлились до твоей стадии.
96 Hmster
 
09.03.21
11:45
Окно в программе это уже по сути бесконечный цикл

//Инициализация
Пока Истина Цикл
   //отработка событий //+проверка на закрытие окна

   //ожидание, чтобы цикл не грузил процессор, и рабочий цикл выполнялся не постоянно, а "фиксированное" количество раз в секунду
КонецЦикла;
//Завершение работы
97 Serg_1960
 
09.03.21
11:50
Погуглил в конфигурации "Пока Истина Цикл" - использовалось около 1500 раз. «И эти люди запрещают ковыряться мне в носу»(с)
98 Кирпич
 
09.03.21
11:51
Так никто и запрещает вроде.
99 Кирпич
 
09.03.21
11:52
не
100 Волшебник
 
09.03.21
11:53
Руки прочь от бесконечных циклов!
101 Масянька
 
09.03.21
11:53
Сто
102 acht
 
09.03.21
11:53
(95) > у разработчиков джавы
А причем тут разработчики языка? Ты еще рассмотри выход из цикла выбрасыванием исключения и сошлись, ну например на Гвидо ван Россума.
103 ДедМорроз
 
09.03.21
11:57
В языке 1с нет цикла с постусловием,поэтому,или извращаться с вводом дополнительной переменной,которую сбрасывают в ложь где-то внутри цикла или условие Истина и выход по Прервать.
С переменной имеет право на существование,когда условие проверяется во вложенном цикле,т.к.там явно Прервать наружу не выведет.
Опять же Пока НЕ Отказ Цикл тоже неплохо смотрится,хотя,по сути та же переменная.

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

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

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

или

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

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

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

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

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

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

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

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

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

/////

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