Имя: Пароль:
1C
1С v8
v8: Когда в 1с появятся замыкания?
,
0 ERWINS
 
08.05.14
15:42
1. Не нужно 67% (10)
2. В 9.0 33% (5)
3. В 8.3.6 0% (0)
Всего мнений: 15

В место такого кода

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОтвет", ЭтотОбъект);
    ПоказатьВопрос(ОписаниеОповещения, "Завершить работу системы?",РежимДиалогаВопрос.ДаНет, 60);
    Отказ = Истина;
    
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьОтвет(РезультатВопроса, ДополнительныеПараметры) Экспорт
    
    Если РезультатВопроса <> КодВозвратаДиалога.Нет Тогда
        ЗавершитьРаботуСистемы(Ложь);
        Закрыть();
    КонецЕсли;
    

КонецПроцедуры


Писать более простой

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОтвет", ЭтотОбъект);
    ПоказатьВопрос((РезультатВопроса, ДополнительныеПараметры) => (Если РезультатВопроса <> КодВозвратаДиалога.Нет Тогда
        ЗавершитьРаботуСистемы(Ложь);
        Закрыть();
    КонецЕсли;) , "Завершить работу системы?",РежимДиалогаВопрос.ДаНет, 60);
    Отказ = Истина;
    
КонецПроцедуры
16 Rebelx
 
08.05.14
16:22
Ну кабы вроде как то же самое можно обработкой выбора реализовать

Не нужно
21 wade25
 
08.05.14
16:27
Полагаю есть причины не делать функцию доступной. Т.е. 1с становится кроссплатформенным приложением и на разных платформах пауза по разному воспринимается, много косяков всплывет.
Ну и ожидания для отладки не оч хороший инструмент. В других языках по моему можно многопоточность использовать, пока пауза выполнять какие то другие процессы.

Не нужно
53 Эмбеддер
 
09.05.14
15:28
(0) по-моему наоборот хуже читается. особенно плохо это будет выглядеть при объединении конфигураций

Не нужно
58 EugeniaK
 
09.05.14
17:18
Нечитабельно.
Типовой вариант лучше.

Не нужно
79 quest
 
11.05.14
16:27
(defparameter Закрывашка (lambda (чего-там-позакрывать доппараметры) (закрыть чеготампозакрывать доппараметры))

(defun юзалка (форма)
  (apply закрывашка форма nil))

хотя через defgeneric было бы проще :)

Не нужно
121 dmpl
 
12.05.14
08:45
Обычные формы уже это реализуют.

Не нужно
156 х86
 
13.05.14
11:20
то что хочет ТС впринципе штука нужная, как уже отмечали, на JS (и не только) активно используемая
токма вопрос накой это вкрячивать в эску ???

Не нужно
202 Ювелир
 
13.05.14
15:45
Т.е. попытка реализовать сохранение контекста процедуры выполняемой на сервере, когда может потребоваться вызвать ее еще раз? Вместо явного сохранения на клиенте? Мне кажется 1с от этого пытается уйти. Ибо все это хорошо когда такие процедуры малы и контекста не много. Программист задумывается на хрена он передает икспарам и игрекпарам, когда можно этого не делать (и из-за лени (да простят меня 1С-ники, конечно, это происходит из совершенно других, более высоких мотивов :) ) - оптимизирует передачу параметров, миграцию контекста - туда-сюда). Когда есть халявный метод позволяющий запихнуть тупо все и не разбираться - срабатывает закон лени. В результате опухает  передача контекста по пути клиент - сервер - клиент.

Думаю если идти предложенным 1с путем, то такие методы нам не надо, хотя это удобно с точки зрения быстро писательства.

Не нужно
246 quest
 
15.05.14
12:22
(242) в (207) ясно сказано "Смысл замыкании как раз в рефакторинге", так что отчеты в пролете.
(243) Да. я отстал. моя среда разработки для не 1С - емакс. и необходимости в ее модификации я не вижу. Вполне нормально работает и для С++ и для лиспа.
(244) Круть. Значит до замыканий осталось полшага - основное то сделано уже. чисто косметические вещи остались - переписать платформу и переобучить армию программистов.

В общем, это мое последнее  сообщение в этой ветке. Смысла продолжать нет. Мы действительно говорим о разных вещах разным языком.

Не нужно
252 Анцеранана
 
15.05.14
12:40
Слишком сложный руский синтаксис для простого парня из маленькой северо-мадагаскарской деревушки. Точки , стрелочки, скобочки (( Придумай проще!

Не нужно