1. 1C / Говнокод #9376

    −135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    Процедура ЗаписатьТрижды(Док)
    	Попытка
    		Док.Записать();
    	
    	Исключение
    		Для ХХХ=1 По 1000 Цикл
    			УУУ = ХХХ;
    		КонецЦикла;
    		Попытка
    			Док.Записать();
    		
    		Исключение
    			Для ХХХ=1 По 1000 Цикл
    				УУУ = ХХХ;
    			КонецЦикла;
    			Попытка
    				Док.Записать();
    			
    			Исключение
    				Сообщить("И с третьей попытки не удалось записать документ "+Док);
    				Сообщить(ОписаниеОшибки());
    			КонецПопытки;
    		КонецПопытки;
    	КонецПопытки;

    Разбирал тут обработку, наткнулся на этот шедевр...

    Запостил: jerokee, 10 Февраля 2012

    Комментарии (44) RSS

    • > "И с третьей попытки не удалось записать документ "
      сказал Кащей Бессмертный и изнасиловал Ивана Царевича
      Ответить
    • Почти поэтическое произведение.
      Ответить
    • Попитка нэ питка, как гаварыт таварыщ Бэрия.

      Да, с задержками в одноэске всё плохо. Глобально.
      Ради интереса спросил у гугола, нашёл статью, цитирую: "В данном коде в качестве программной задержки (аналог sleep) используется функция Предупреждение. Результат работы этой функции - появление модального окошка с приостановкой работы кода. Длительность паузы регулируется вторым параметром этой функции, а именно 30 сек в данном случае. В течении времени задержки процесс практически не потребляет ресурсы цп, что и требовалось."
      Объебосы, самые натуральные.

      А вот ещё, практически классика жанра.
      Процедура Задержка(КолМиллесекунд) Экспорт
              	Шелл=Новый COMОбъект("WScript.Shell");
              	Шелл.run("ping -n 1 -w "+Формат(КолМиллесекунд,"ЧГ=")+" 0.0.0.1",0,-1);
      КонецПроцедуры
      Ответить
      • всем же известно, что задержки в коде будут писать только вредители, тщетно желающие оклеветать мощь и великолепие 1с
        поэтому в 1с нет задержек и не будет, и конфигурации всегда работают со скоростью света в вакууме
        Ответить
        • просто создатели 1C знают, что время - деньги
          кто много sleep тот видит только сны
          Ответить
      • Шел.пошел()
        Ответить
      • >COMОбъект
        >СОМ
        Ответить
    • Быдлокод какой, простибудда.
      Лучше бы он не циклами кривыми железяку напрягал, а вопрос/предупреждение с таймаутом использовал.
      Ответить
      • Удаляем гланды через одно отверстие?
        Ответить
        • нет, вполне себе штатный способ, и в данном случае вполне логичный.
          Ответить
          • Штатный, лол. Это как раз унылый костыль.
            Быдлоплатформопроблемы.
            Ответить
            • как бы это помягче сказать то...
              в случае неудачной попытки - задать вопрос о повторе попытки - это сосем не "унылый костыль". но именно уместное в таком случае действие. в данном. конкретном. случае.
              и - немого жаль, что задор в традиционном (и уже давно унылом) поливании этой конкретной платформы г0вн0м "просто потому что это быдлоязык" застит тебе элементарную логику.
              (о том, что sleep в одинэсине нету, и что для этого нужны костыли - я, кстати, ни полуслогом не отрицал и не отрицаю, сюрпраайс)))
              Ответить
              • Во-первых, говорят, что в восьмёрке код может быть серверным, а там никаких окошек нет.
                Во-вторых, задержка может быть нужна не только при ожидании следующей попытки записи. Надо просто поспать, пока произойдёт что-то, скажем, оборудование продрочится. Смищно будет созерцать вылезающее окошко "подождите, мы сейчас 20 секунд постоим на всякий, а то вдруг".
                И, последнее. Сам факт такого окошка показывает, что в консерватории что-то не так. Хотя бы потому, что пользователь может нажать "отмена", а такое по условию задачи, скажем, недопустимо. После третьей попытки - пожалуйста. Или нажмёт "продолжить" раньше. Бред, короче говоря.

                > поливании этой конкретной платформы г0вн0м
                Так я же не на ровном месте это делаю. Я нонче быдлопейсатель на сем быдлоеретическом языке (сюрпрайз!).
                Я видел чёртову гору языков и платформ (кроме, разве что, лиспов, шарпов и брейнфаков). В каких-то провёл радостные минуты, в каких-то суровые дни. Какие-то лучше, какие-то не очень.
                Так вот. 1С - это ПИЗДЕЦ. Большой, злоебучий и инфернальный пиздец. В человеке должно быть прекрасно всё, и душа и тело. 1С умудряется быть ужасным по всем фронтам.
                Семёрке я делаю скидку на то, что ей уже стопицот лет, что у них не было денег на рахитектора, писали на коленке Вижуалъ Русскийъ Паскальъ для упоротых бухгалтеров, совершенно не представляя, что же должно получиться в итоге. Долгожительство же имеет свои весомые причины, которые завязаны на достоинства лишь отчасти.
                Сложно найти более упоротую, проприетарную, несовместимую ни с чем, ФГМную, слоупоучную быдлоплатформу. Даже тот же ПХП - просто рай на земле.
                Ответить
                • во-нулевых, не торопись категорично высказываться о том, о чем слышал краем уха - может получиться глупость (как, например, вот сейчас). во-первых, если речь не идет о фоновых заданиях (а в основном речь о них не идёт) - кон на сервере выполняется только в рамках открытого сеанса, такое выполнение - в целом и основном преследует цели оптимизации. во-вторых, даже при выполнении фоновых заданий есть вполне штатные возможности выполнения кода по обработке ожидания (с хранением необходимых промежуточных переменных состояния на регистре сведений) - не такой уж и "кривой" способ. Так что Смищно пока только с твоей категоричности.
                  И, последнее. Сам факт окошка (хоть с предупреждением и единственной кнопкой Ок, хоть с вопросом) - хоть ты обобжимайся - нихрена не прервет если соответствующим образом наваять Не, это было предпоследнее. Последнее - сожаление о твоей идиосинкразии. Потому что реплика о вопросе и длгичности использования именно в этой ситуации - почему-то благополучно миновала внимание твоего разума возмущённого, что, однако, тоже добавило забавности.
                  Бред, короче говоря, ага. ))
                  Ответить
                • Далее... судя по твоей дремучей неосведомленности, вряд ли ты обладаешь квалификацией в объёме, допускающем категоричность в подобных, прости, но довольно бесталанных высерах. Я тоже видел чертову гору языков, начиная с дремучих восьмидесятых годов прошлого века, и уж никак не меньше тебя, пацан. И прекрасно понимаю, что язык (точнее язык + среда + модель данных) - это лишь инструмент. И как инструмент, каждый язык имеет свою область применения, в которой он более оптималень для решения задач, чем другие. В этом смысле, ничего не говоря о том, что для тебя, и не только для тебя, взращенных на некотором ограниченном (что неизбежно) перечне "инструментов" одинэсина кажется пиздецом, доводящим до вот такого батхерта и анальной попоболи. И по этому поводу я уже давненько даже в мыслях не строю возражений, воспринимая это как данность, как элемент IT-традиций, даже с некоторой толикой уважения. Но не в тех случаях, когда вот такие как ты "пионЭры", нахватавшиеся "по вершкам" лезут с глобальными обобщениями и поучениями, царапая по пути обои растопыренными пальцами.
                  Успокойся уже. Ты выиграл ПРИЗ - компас, стрелка которого безошибочно и уверенно показывает направление "нахуй".

                  ЗЫ: и - да, извини, пионЭр, но в дальнейшем можешь не трудить свой организм высиранием комментариев, обращенных ко мне. Ибо ты глуп и просто неинтересен - в связи с чем твои обращения ко мне, вероятнее всего, просто благополучно минуют внимание адресата.
                  Ответить
                • Я не понимаю, в чём проблема?
                  Если программка для тёток бухгалтерш, то лучше окно и таймер, если серверная, то в цикле эн раз попытаться записать.
                  Спор про бузину и дядьку.
                  Ответить
                  • да там и циклом не нуно грузить.
                    говорю же - в фоновых задачах для этого вполне себе нормально юзается выполнение нужного кода в виде вызова процедуры с заданным интервалом (в т.н. обработке ожидания).
                    Ответить
                  • бузина должна быть под хохлому расписана, а у дядьки обязательно столичная пропиская
                    Ответить
                  • Изначально вопрос был поставлен так: в 1с нельзя никак усыпить обработку на желаемое время. Есть только костыли разной степени кривости.
                    Собственно, такая ситуация не впервой. Для системы, состоящей из спичек, желудей и говна - вообще рядовая.
                    Ответить
                    • если ты чего-то не знаешь, недопрограммер, это совсем не значит, что этого нет. тебе, дятел с воспаленным комплексом неполноценности, уже объяснено.
                      обработка ожидания.
                      а также уже упомянутые вопрос/предупреждение с таймаутом.
                      при наличии которых "чистый" слип может быть нужер разве что "из принципа" и ради растопыренных пальцев.
                      Ответить
                      • Ты жуёбок чтоле?
                        Обработка ожидания ни разу не эмулирует слип. И в данном случае (ожидание отклика, скажем, девайса) никоим образом не помогает. Плюс, мне в самом страшном сне не могло привидеться писать код своего слипа в глобальном модуле. Таймаут через окошко - просто охуенное архитектурное решение.
                        Так что перестань нести хуйню. 1с - недоязык для ундерменов. Тот факт, дедушка, что ты считаешь себя гуру, никоим образом этого не изменит и не уймёт твоей жопоболи.
                        Ответить
                        • уёбок тут ты, причем безграмотный.
                          обработка ожидания вполне себе эмулирует повтор выполнения кода с нужным интервалом, безграмотное ты чмо и быдлокодер.
                          "классический" слип не ждет никаких откликов, безграмотное ты чмо и быдлокодер.
                          по обработке ожидания может вызываться код не только в глобальнике, безграмотное ты чмо и быдлокодер.
                          Про свое спокойное отношение к обоснованным и просто традиционным набросам на 1с я уже говорил. Равно как говорил и о том, каким образом отношусь к подобным тебе долбоёбам, которые будучи сами безграмотными пионЭрами - тем не менее лезут публично чесать множественные ущемлённые грыжи на собственном комплексе неполноценности.
                          Уймись уже, пацан, а то на "самдурак" циклишься, приписывая свою попоболь другим, и лажаешься постоянно.
                          Ответить
                          • как же вы заебали
                            > Обработка ожидания ни разу не эмулирует слип
                            > обработка ожидания вполне себе эмулирует повтор выполнения кода с нужным интервалом

                            я даже погуглил, чтобы закончить этот балаган
                            http://www.lessons1c.ru/articles/25-obroj.html
                            ваша "обработка ожидания" - простейший унылый таймер с привязкой к контексту. Sleep и таймер - это две большие разницы.

                            > "классический" слип не ждет никаких откликов
                            Sleep останавливает текущий поток до того момента, пока планировщик не разбудит или не произойдёт преждевременное прерывания сна. Это мало чем отличается от ожидания поступления данных от устройства: вместо данных ожидается наступление определённого момента времени. Основное отличие в том, что поступления данных в обычной ОС с разделением времени можно ждать бесконечно.
                            Ответить
                            • для такого варианта юзается обработка внешнего события (тоже можно погуглить). которую можно и программно вызвать.
                              а вообще в одном ты глобально прав. однопоточная она, ссука. поэтому и терминологическая путаница наблюдается иногда.
                              Ответить
                          • Ты норкоман штоле сука?
                            > по обработке ожидания может вызываться код не только в глобальнике
                            "Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени."
                            Сосни бочку хуйцов. Соснул? Молодец. Полноценный, ёпта.
                            Ответить
                            • нет, родной, это ты продолжаешь сосать хуи - в очередной раз облажавшись в говно по самые подмышки.
                              Форма.ОбработкаОжидания ( http://www.lessons1c.ru/articles/25-obroj.html )
                              говорю же тебе, быдлокодер, хватит гавкать - только лажаешься.
                              Ответить
                              • Отсюда вывод - профи только тот, кто знает больше всего костылей на этой быдлоплатформе. Молодец, вот тебе конфетку.
                                Ответить
                              • Какой то страшный ресурс, у 1с нет хелпа?
                                Ответить
                                • по 77: есть синтакс-помощник. есть встроенный хелп. есть описание встроенного языка в книжках. есть hlp-файло с описанием встроенного языки (некто Петя Моисеенко сваял давным-давно - оч.удобная хрень).
                                  С 8-кой немного сложнее всё. точнее - есть хелпы, но по объему явно недостаточные; а свисителок-перделок в ней накручено столько, что полноценный мануал - это нехилый стопарь метод.материалов.
                                  Ответить
    • Закинул старик невод в море третий раз...
      Ответить
    • Тут принципиально не особо то и нужна обработка ожидания. Поясню:
      1. Документ "подвисает" при записи из-за блокировки базы другим пользователем (ну типа там кто-то что-то проводит)... Предприятие само будет ждать столько времени, сколько указано в настройках.
      2. Документ не может быть записан либо по неуникальности номера (что по хорошему надо проверить до попытки записи!), либо по "отсутствии места" на временном интервале (было такое, когда время устанавливалось на 23:59:59 и после какого-то документа обработка "встала колом"... И ты хоть 10 раз пытайся записать его...
      Ответить
    • Прям каменный век какой-то. Про асинхронное и event-driven программирование в быдлоС не слышали и видимо не услышат.
      Окаменелые какашки маммонта!
      Ответить
      • Я всё хочу попробовать восьмёрку, авось, там-то такого унылого говна нет. Семёрка старая просто. Безумно старая.
        Ответить
        • говно, лучше линух
          Ответить
        • Поверь, В 8-ке УГ не меньше! Особенно когда коснешься управляемых форм. Это не сервере низзя, зато на клиенте можно и наоборот... Тонкий клиент - отдельная песня...
          Ответить
      • А смысл в этих фичах? Это-ж учетная система...
        Ответить

    Добавить комментарий