Имя: Пароль:
LIFE
 
OFF: Функция/Процедура
0 trambalda
 
21.10.11
17:11
Хочу отличиться в пятницу, задав дебильный вопрос.
А зачем, собственно, сделано это различие?
Процедура и Функция.
Сделать только функции религия у 1С не позволила?
Или это разделение несет какой-то скрытый тайный смысл?
И еще хочу конструкции типа +=.
1 Fragster
 
гуру
21.10.11
17:13
а я хочу пива
2 trambalda
 
21.10.11
17:14
(1) Тебе проще, завидую. Потерпи часик 0)
3 Fragster
 
гуру
21.10.11
17:14
(2) не, мне еще рулить
4 ChMikle
 
21.10.11
17:14
процедура - выполняет какие-то действия и не возвращает результат
Функция- имеет входные и выходные параметры и может использоваться в качестве законченной маленьккой подсистемы , где есть вход -черный ящик-выход например :
процедура реакция на изменения каких-то состояний реквизитов формы и функция умножения (а,b) возвращает результат a*b = c
5 Chai Nic
 
21.10.11
17:15
По логике, функции в 1с - это неправильные функции. Ибо имеют побочные эффекты. По сути, функция должна только возвращать значение, и ничего больше. А любые изменения в среде должны делать процедуры.
6 Zaid
 
21.10.11
17:16
7 Fragster
 
гуру
21.10.11
17:16
(5) о_О
8 ДенисЧ
 
21.10.11
17:16
(7) он прав, вообще-то...
9 DrShad
 
21.10.11
17:16
(4) а процедура значит не может сделать, то же что функция?
10 Mort
 
21.10.11
17:17
(5) Не так категорично, но поддерживаю.
11 ChMikle
 
21.10.11
17:17
(9) >>А зачем, собственно, сделано это различие?
Процедура и Функция.
это ответ на вопрос в чем разница ...
12 Zaid
 
21.10.11
17:18
(8) Срач назревает )) Я вот не согласен. Смысловое разделение слишком условное и надуманное. Фактически разницы между ними нет никакой. Процедура - это таже функция, только более ущербная.
13 trambalda
 
21.10.11
17:18
(6) Блин, все удовольствие испортил, зараза!
Читать теперь весь тред.

Не вижу в С++/Питоне и тьме других адекватных языков процедур.
Что в них не так?
14 EvgeniuXP
 
21.10.11
17:18
(0) а может наоборот оставить только процедуры, а результаты передавать через параметры обратно? :) зачем нам функции
15 ДенисЧ
 
21.10.11
17:18
(13) в с++ - void f(){} - вполне процедура.
16 Mort
 
21.10.11
17:19
(12) Оно по первой кажется надуманным. А на самом деле - пропасть.
17 ChMikle
 
21.10.11
17:19
Megas 0) Логическое разделение...
Удобно!
Видиш слово Функция и понимаеш что она что то возвращает!
Видиш процедура и знаеш что она отработает и всё!
18 izekia
 
21.10.11
17:19
а вот в ассемблере нет функций
19 Chai Nic
 
21.10.11
17:20
(12) Понятие "Функция" математическое. Вы себе можете представить синус, который еще и кофе заваривает? Абсурд ведь.. А сишники привыкли к этому.
20 trambalda
 
21.10.11
17:20
(14) функция - 7 символов, процедура - 9.
Микроджоули энергии тратятся впустую.
КонтролКу не предлагать, ибо зло.

(15) Имхо все равно возвращает void.
21 ChMikle
 
21.10.11
17:20
Кстати если все переменные назвыать гумно1,гумно2,гумно3... программа работать будет :), а удобнее код читать когда в переменных заложен мало-мальский смысл :)
22 trambalda
 
21.10.11
17:21
(17) Как же, отработает. Переменяет значения во всех параметрах и зашибись процедурка.
23 EvgeniuXP
 
21.10.11
17:21
(20) слово возврат еще не посчитал :)
24 Mort
 
21.10.11
17:22
Понимание разницы где то на грани понимания ООП. Для кого это возможность удобно написать код, а для кого-то мировоззрение, которое применяется в том же 1С при организации логики взаимодействия.
25 izekia
 
21.10.11
17:22
(17) угу, только никакого контроля нет даже в рантайме, что у тебя ретерна нет
26 trambalda
 
21.10.11
17:23
(24) А нет никакой связи между ООП и разницей между функциями/процедурами.
27 Сниф
 
21.10.11
17:24
А еще можно вне функций и процедур в конце модуля кодить...
28 trambalda
 
21.10.11
17:24
(27) За это надо четвертоколевовешать!
29 Mort
 
21.10.11
17:25
(26) Между ними нет, а между пониманием и непониманием есть.

(28) С чего бы?
30 Сниф
 
21.10.11
17:27
(28) но иногда это просто необходимо
31 Mort
 
21.10.11
17:27
Кстати в модуле управляемой формы можно считать сколько раз форма гоняла на сервер и обратно )
32 trambalda
 
21.10.11
17:28
И вообще, даешь питоновый синтаксис!
Когда-тогда, пока-цикл. fffuuu...
Микроджоулей жалко.
33 Cthulhu
 
21.10.11
17:29
функция должна вычисляться (не меняя данные).
процедура должна выполняться (что-либо изменять в данных - включая оперативные и временные).
это можно соблюдать, а можно и не соблюдать при программировании.
34 Cthulhu
 
21.10.11
17:30
(32): фихтебе! дайошш brain-овский синтаксис !!!!
ЗЫ: ну, или forth-овский на крайняк...
35 EvgeniuXP
 
21.10.11
17:30
(32) зп урежут, так что не жалей, наоборот раздувать надо - больше будут платить.
36 Mort
 
21.10.11
17:31
Ещё раз пропиарю вот
http://www.ozon.ru/context/detail/id/5011068/
очень хорошо разъясняется что хорошо и что плохо.
37 Сниф
 
21.10.11
17:31
(36) Чистый кот?
38 Mort
 
21.10.11
17:32
(37) Угу, не какой-нибудь помойный.
39 Cthulhu
 
21.10.11
17:32
(38): потвойный?..
40 trambalda
 
21.10.11
17:33
(33) Да не нужен этот микроменеджемент никому.
(34) Только не Форт, количество 1ников резко снизится.
(36) Знакомый кот, только на (0) не отвечает.
41 Mort
 
21.10.11
17:37
(40) Там все написано. Одна функция/процедура должна делать что-то одно. Функция возвращать, процедура выполнять. Функцию которая что-то меняет это ФУ, даже если в определенном случае такое решение занимает меньше кода.
42 Zaid
 
21.10.11
17:40
(41) А логическое объяснение этому есть? Минусы решения, которое занимает больше место и, тем самым, менее читабельно, понятны. А есть ли у такого решения плюсы? А то "ФУ" как-то не очень убеждает.
43 Любопытная
 
21.10.11
17:41
(1) Я уже не хочу)
44 syktyk
 
21.10.11
17:42
Функция - это от математиков пошло
45 trambalda
 
21.10.11
17:43
(41) Переделывая в том году на С++/qt (под линукса) фронт-офис, фактически переписывая заново, ковыряясь с кучей исходников библиотек разной степени глючности, меня посетила простая мысль - книги все эти (про котов) пишут высоколобые аутисты с марса, питающиеся солнечным светом. Ибо так программы никто не пишет. Ну вообще никто. Я не буду отрицать, что в книге все разумно и правильно, но жизнь есть жизнь.
46 Mort
 
21.10.11
17:43
(42) По сравнению с количеством кода подобная мешанина в процедурах/функциях гораздо сильнее усложняет код.
47 Chai Nic
 
21.10.11
17:43
(42) Ты можешь вызывать функцию, не задумываясь о побочных эффектах. Это очень важно с точки зрения повторного использования кода и минимизации велосипедостроения.
48 Mort
 
21.10.11
17:45
(45) А мой кореш пишет на жаве именно так. Конечно не в один в один, но есть рекомендации, которые тупо увеличивают скорость работы за счет порядка в коде.
49 syktyk
 
21.10.11
17:47
Понятие функции впервые появилось в Фортране, языке который был разработан для математиков
50 trambalda
 
21.10.11
17:48
(47)

Функция ВообщеБезПобочныхЭффектов(а, б)
   с = а + б;
   б = 12;
   Возврат с;
КонецФункции

(48) Я не спорю. Есть светлые головы. И я стараюсь быть светлой. Но 99% (и девять в периоде) плевали.
51 EvgeniuXP
 
21.10.11
17:50
некоторые даже элементарных отступов не делают в циклах.... или пишут от самого левого края... или еще хуже: пишут ИМЯПЕРЕМенной - ибо 1С на это регуается, а еще их начальство поощряет и дает категории :)
52 EvgeniuXP
 
21.10.11
17:50
(51) * на это не ругается
53 syktyk
 
21.10.11
17:51
(50)А если "б" передается по ссылке?
54 Chai Nic
 
21.10.11
17:52
(50) Ну и? Это всего лишь иллюстрирует несовершенство программной модели 1с.
На самом деле, функция не должна изменять и формальные параметры тоже. И те объекты, на которые они ссылаются. И глобальные объекты. В общем случае, функция на входе должна иметь некий "снапшот" состояния среды на момент её вызова, и любые изменения в нем не должны менять контекст вызова.
55 Mort
 
21.10.11
17:53
(50) Гы. Реквизит объекта в "б" пошли.
56 pumbaEO
 
21.10.11
17:54
(54) это дорого для каждого вызова функции создавать "снапшот" переменных.
57 Mort
 
21.10.11
17:56
(56) Он имел ввиду что на выходе функции состояние системы не меняется. Все встроенные функции 1С следуют такому принципу, за исключением диалоговых, которые возвращают признак выполнения.
58 Chai Nic
 
21.10.11
17:56
(56) Ничуть. В версионных серверах баз данных это реализовано просто - в транзакции создаются новые версии значений только при изменениях. Полного копирования не происходит. По сути, тут тоже будет неявная версионная транзакция с обязательным откатом.
59 trambalda
 
21.10.11
17:56
(53) Ну по идее, наверное, тру все переменные писать как Знач. Но кто это делает?
Я к тому, что ключевое слово "Функция" не дает гарантии того, что эта функция только возвращает. Она запросто может и входные параметры крыжить и внутри базы колбасить. То есть смысла в разделении Ф и П нет. Чисто традиция 1С, попытка быть лайк ВизуалБейсик.
60 Mort
 
21.10.11
17:57
(59) Это в г0внокоде функция не дает таких гарантий, а у реальных пацанов даёт.
61 Chai Nic
 
21.10.11
17:57
(59) "знач" ничего не гарантирует. Например, "знач ТабЗнач" не запрещает изменять эту таблицу значений.
62 Cthulhu
 
21.10.11
17:58
(59): те, которые в коде изменяются - всегда описываю со "Знач".
63 trambalda
 
21.10.11
17:58
(60) Жаль что типовые пишут не очень реальные пацаны )
64 Cthulhu
 
21.10.11
17:58
(61): гарантирует умение понимать встроенный язык, в частности знание метода "Выгрузить", например.
65 Chai Nic
 
21.10.11
17:59
(64) Я говорю про несовершенство программной модели, не умеющей делать надежную изоляцию функций. А вы о костылях. :)
66 Mort
 
21.10.11
17:59
(63) Их просто много, где столько реальных взять?
Покажи пример из типовой.
67 Mort
 
21.10.11
18:00
+(57) И выборок ещё. ну про итераторы отдельная тема.
68 Cthulhu
 
21.10.11
18:03
(65): а я о достаточности программной модели для реализации надежной изоляции функций.
69 Chai Nic
 
21.10.11
18:06
(68) Если программист должен что-то предпринять для изоляции - она не может считаться надежной! Это как приснопамятные сишные строки с выделяемым заранее буфером, и не дай бог в него записать лишнее - система позволит.. :)
70 Cthulhu
 
21.10.11
18:09
(69): программист по-любому "должен что-то предпринять" для изоляции, так что согласно твоему утверждению все системы программирования хреновые. а на самом деле - "неча на зеркало пенять..."
71 pumbaEO
 
21.10.11
18:10
(66)
Функция ОбновитьИндексППД(ИнформацияОбАктуальностиИндексаППД,ППДВключен,ИндексАктуален) Экспорт
   
   Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Запретить Тогда
       Возврат НСтр("ru = 'Использование индекса полнотекстового поиска данных запрещено!'");
   КонецЕсли;
   
   Если Не ПолнотекстовыйПоиск.ИндексАктуален() Тогда
       ПолнотекстовыйПоиск.ОбновитьИндекс();
   КонецЕсли;
   ОбновитьИнформациюОбАктуальностиИндексаППД(ИнформацияОбАктуальностиИндексаППД,ППДВключен,ИндексАктуален);
   
   Возврат "";
   
КонецФункции

ОбновитьИнформациюОбАктуальностиИндексаППД - процедура, которая успешно в далнейшем меняет все переданные параметры.
72 Mort
 
21.10.11
18:12
(71) Это потому что исключение через ж0пу реализовано.
73 Chai Nic
 
21.10.11
18:14
(70) Почему-то в серверах БД это реализовано (снапшот-транзакции). А ведь могли бы обойтись одним грязным чтением. И всё на усмотрение программиста... пусть сам всё предпринимает. Да? :)
Суть надежного программирования в том, что система должна позволять МАТЕМАТИЧЕСКОЕ доказательство корректности кода. Если она позволяет побочные эффекты - она не может быть априори надежной.
74 Cthulhu
 
21.10.11
18:16
(73): что именно реализовано??? телепатическое обнаружение исполнительной системой того, по ссылке или по значению следует использовать полученный параметр???
Утверждение (70) не противоречит определению надежного программирования.
может хорош умничать, а просто подумать?..
75 Chai Nic
 
21.10.11
18:18
(74) Системе никакой телепатии не надо. Надо просто открыть версионную транзакцию в режиме снапшот. Если бы система это умела, конечно...
76 Cthulhu
 
21.10.11
18:22
(71): ещё в типовых нарывался на совершенно чюдное действо при проведении документа если переменная модуля не инициализируется в составе выполняемых процедур (проинициализирована в теле модуля). при программном проведении следующего документа того же вида, как ранее проведенный, исполнительная система не компилирует модуль документа, а использует ранее прокомпилированный (при проведении предыдущего документа) - причем со всеми "унаследованными" от проведения предыдущего документа значениями переменных модуля!!! повеселился изрядно.
(75): Умник, ты исходный то смысл не подменяй. Речь о том, что исполнительной системе по-любому необходимо как-то различать в процедуре/функции - использовать полученный параметр "по значению" или "по ссылке". см.(65),(68).
77 Ахиллес
 
21.10.11
18:24
Точно аутисты с Марса. Если не писать ничего сложнее, чем с = а+ б тогда может и прокатит разделение на : "функция должна вычисляться (не меняя данные)"
"процедура должна выполняться (что-либо изменять в данных - включая оперативные и временные)"
А в жизни чаще всего бывает так:

Функция ВообщеБезПобочныхЭффектов(а, б)
  ПолучиФашистГранату(б)
  с = а + б;  
  Возврат с;
КонецФункции

Процедура ПолучиФашистГранату(б)
  б = 12;
КонецПроцедуры

То есть даже вызывая "безопасную" функцию вы не будете уверены, что ничего не изменится пока не просмотрите весь код.
78 EvgeniuXP
 
21.10.11
18:25
(59) у всех переменных слово Знач не пишут - захламление кода и захламление памяти, что влияет в конечном счете на производительность... зато понимание кода лучше, т.е. это передаются туда не ссылки и переменные не меняют свои значения, которые используются ранее до вызова процедуры или функции.
79 pumbaEO
 
21.10.11
18:29
(78) тем не менее в БСП все чаще стало встречаться в функциях Функция ПолучитьТипАдресногоЭлементаПоКоду(знач Код)
ну а с примером из (77) ничего не сделаешь, правда жизни и никуда не деться.
80 Chai Nic
 
21.10.11
18:29
(76) Передача параметров по ссылке/значению - ненужная и навязанная сущность. На самом деле, в правильной системе в функцию передаются параметры как часть передачи всей единой среды(контекста). То есть, чтобы ты мог делать всё что угодно внутри функции. А контекст вызова гарантированно НИЧЕГО бы не увидел из этого, кроме явно возвращенного функцией значения! А для этого надо, чтобы среда исполнения поддерживала транзакции не только на уровне БД, но и на уровне локальных переменных. Вход в функцию - старт транзакции, выход - откат.
81 Chai Nic
 
21.10.11
18:30
(77) Именно поэтому я считаю, что отсутствие побочных эффектов должна гарантировать среда исполнения. Скажем, через объявление функции с ключевым словом "строгая".
82 pumbaEO
 
21.10.11
18:32
(80) та ну, перед вызовом функции начал транзакцию, в функции поменял состояние базы, вышел из функции отменил транзакцию...
83 Chai Nic
 
21.10.11
18:33
(82) В чем проблема? Транзакция бывает не только блокировочная, но и версионная, которая не мешает жить другим.
84 Alexandr Puzakov
 
21.10.11
18:37
Советую несогласным с идеологией 1С:Предприятия написать свою, вот уже очередную убивцу 1С :)
85 Ахиллес
 
21.10.11
18:38
(83) Проще оставить только функции, а всю ответственность переложить на прога.
(84) А у 1С есть идеология? Может расскажешь какая, а то тут ищем, пытаемся причины понять, нифига не находим.
86 pumbaEO
 
21.10.11
18:38
(84) обязательно с NOSQL БД. :)
87 Ахиллес
 
21.10.11
18:46
Вот вы пытаетесь облегчить жизнь прогам, заставить платформу помогать прогу, сопли за ним вытирать. Это не верно. 1С должна стать опасной, как нитроглицерин. Одно неверное движение и база взлетает на воздух, а прог отправляется на прогулку в бетонных башмаках по дну ближайшего озера. Вот тогда в соответствии с естественным отбором, одинэсники наконец то начнут выпускать приличные конфы и зарплата у них повысится как минимум до "отдвухсоттыщ".
88 Chai Nic
 
21.10.11
18:53
(87) Ну вот язык Си опасный как нитроглицерин. Это не спасает от кривых програм, падающих от малейшего чиха, и представляющих благодатную среду своими уязвимостями для разных вредоносных программ...
89 Господин ПЖ
 
21.10.11
18:54
(0) лучше б ты бабу хотел... рыжую...
90 pumbaEO
 
21.10.11
18:56
ладно в понедельник продолжим http://media.ifun.ru/2/z/2zctdavk.gif
91 Алистар
 
21.10.11
21:25
void hhh(int *g, int *h){
*g=*h+1;
};
hhh(&g,&h);
в нормальных языках все видно
92 Chai Nic
 
21.10.11
21:37
(91) Что именно видно?
93 aleks-id
 
21.10.11
22:00
а на асме то функций нет. одни proc  ))
94 zak555
 
21.10.11
22:02
(0) процедуры не нужны в принципе
95 ДенисЧ
 
21.10.11
22:11
(94) Языки программирования не нужны вообще.
96 aleks-id
 
21.10.11
22:13
(94) дадада. я как раз об этом говорил в (93)
97 zak555
 
21.10.11
22:16
(95) это не суть

(96) можно всё и на процедурах сделать, только красивее - на функциях
98 aleks-id
 
21.10.11
22:21
(97) учитывая что процедура на уровне машинного кода ничем не отличается от функции наверное да.
99 zak555
 
21.10.11
22:24
(98) Падежи

вот какая красота
100 zak555
 
21.10.11
22:24
соткаНАХ
101 IamAlexy
 
21.10.11
22:26
опять 1Сники мажут г.вном лопату которой работают от зари до зари?

вот ведь странные люди..
102 zak555
 
21.10.11
22:30
(101) что за лопата ?
103 trambalda
 
21.10.11
22:33
(101) Не мажут гомном, а размышляют о бытие.
Что вполне нормально для просвещенного человека.
Размышлять.
104 IamAlexy
 
21.10.11
22:33
(102) это метафора...

1сники как никто другой любят хаять тот инструмент который дает им возможность безбедно существовать особо не напрягаясь ни умственно ни физически.. любят хаять ту среду в которой проводят больше всего своего времени осознаного..
105 zak555
 
21.10.11
22:34
(104) так ты про какой инструмент именно ?
106 IamAlexy
 
21.10.11
22:35
(105) забей...
107 zak555
 
21.10.11
22:35
1с ?
108 EvgeniuXP
 
21.10.11
22:36
(106) не обращай внимание на (105) пятница :)
109 trambalda
 
21.10.11
22:38
(104) Где ты тут увидел хай?
Ты с 1С два месяца, отсюда восхищение?
Тут есть люди которые с шестой версии с 1С живут.
Имеют право и основания на критику.
Так как не только они зарабатывают посредством ковыряния 1с, но и фирма 1С зарабатывает посредством этих людей, которые ковыряют ее успешно.
Просто хочется больше логики и удобства в ковыряниях.
110 IamAlexy
 
21.10.11
22:42
(109)гыыыыыыыы

точно.. г.вно эта ваша 1Ска..

7ка убога
8ка сыра
6ка для имбицилов ибо тупа
111 aleks-id
 
21.10.11
22:45
(109) я уже досёвую двойку ковырял, когда ты в памперсы первые мысли выкладывал ;)
112 trambalda
 
21.10.11
22:45
(110) Ну а чего передергивать-то.
7ка отличная вещь.
8ка другая отличная вещь.
Но во всем есть недостатки, которые надо не замазывать пафосом "мля она же тебя кормит гадина что ты ее хаешь дрянь!", а освещать и обсуждать.
113 trambalda
 
21.10.11
22:46
(111) У меня дома ДВК-3 была, когда ты еще под стол ходил, дитятко.
И я вел секцию по ассемблеру в классе с БК0010Ш
114 zak555
 
21.10.11
22:47
у всех линейка с собой ?
115 IamAlexy
 
21.10.11
22:48
(112) ыыыыыыы

извечное мистовсвое нытье про убогую глючную 1с с ее недопереведенным кастрированным бейсиком?
ну раз..ну два.. на третий раз уже тупо влом.

причем поноют поноют и обратно.. 1Сить..
никто в сишарп не уходит.. никто в явакодеры не рвется..
сидят себе в бухгалтериях.. втихоря печеньки жрут и обновления ставят...

ибо выгодно, ненапряжно...
116 trambalda
 
21.10.11
22:49
(115) Суть в том что судишь ты по себе, причем детализированно - с печеньками и обновлениями.
117 IamAlexy
 
21.10.11
22:50
(116) как типический 1Сник имею право.. :)
118 IamAlexy
 
21.10.11
22:50
поправлюсь: как типический тупой ленивый и жадный 1Сник...
119 trambalda
 
21.10.11
22:53
(117) А мне обидно!
Ибо нет ни печенек ни обновлений, а туеву хучу работы надо сдать в понедельник! Суть которой заключается в подтирании гомна, которое наваяли франчи и уволенный до меня программист.
Почему нет шорткатов в 1С настраиваемых?
Я когда с питона и любимого vim захожу в пофигуратор, рыдаю.
120 Chai Nic
 
21.10.11
22:54
И в России люди живут.. ругают власть, ругают себя - но в Америку не очень то хотят в большинстве своем.. Так и здесь. 1с не идеал, да реальной альтернативы нет. Но пообсуждать можно и нужно! Ибо лучше знать недостатки, и уметь превращать их в достоинства по мере возможностей.
121 IamAlexy
 
21.10.11
22:59
(119)зачем ты насилуешь себя?
иди в сишники..
кодь какоенить СПО на кутэ...

в чем проблема то?

(120) в чем то ты прав.. но нытье бесконечное достает время от времени..
особенно когда муфлон подвывает про плохих франчей..  прям вообще сидишь и думаешь - а нафига люди то вообще с желтобелыми связались то? шли бы себе нефть качать, или какихнить там одноклассников развивать в интернете.. ан нет.. сидят.. ноуют.. стенают.. разгребают кучи завалов..
122 trambalda
 
21.10.11
23:04
(121) Проблема у тебя. У остальных все ок. Решили поговорить за процедуры и функции, говорим. Зачем насилуешь себя, не нравится - не читай. Береги нервы, Сеня.
123 trambalda
 
21.10.11
23:05
Бесконечное нытье псевдогуру о том что нельзя даже косвенно упоминать о недостатках достает время от времени.
124 IamAlexy
 
21.10.11
23:06
(123) ээээ чо за нытье?
меня это радует.. забавляет можно сказать :)

см (101) - где там нытье то?
так.. мимиходом глянул о чем ветка.. ожидания оправдали - 1Сники хают 1С - все как обычно :)
125 trambalda
 
21.10.11
23:11
(124) Это я зеркалю так.

Да где хай-то? Где мазание гомном? Обычный диалог.

Мазание это когда приходит умный перец и говорит - 1С гомно, вы ослы, давайте внедрять Дакс!
126 Torquader
 
22.10.11
01:53
Нет, а чем вам не нравится подход OLE, когда есть входные и есть выходные параметры - и получается, что есть только процедуры, так как возвращается "функциями" код ошибки OLE.
Просто, если бы язык был чисто процедурный, то нельзя бы было написать Выбрать().Получить, так как значение нужно было бы указывать в скобках.
А если бы были только функции, как в JavaScript, то нельзя бы было передать параметр по ссылке.
Да и вообще, думать о разнице процедур и функций, программируя на языке, где нельзя написать a=(b=c+d)+e
127 Mnemonic1C
 
22.10.11
06:02
(0) У процедуры есть СтатусВозврата(), зачем он в функции?
128 DGorgoN
 
22.10.11
06:05
(127) Сакральный смысл..

(0) P.S. Функция как бы должна возвратить какое то значение. Традиции?
129 Loyt
 
22.10.11
07:43
(0) Ну да, процедура - это усеченная в функциональности функция. И что? В чем неудобство-то? Хочется использовать только функции - флаг в руки. Вот только такой подход в случае 1С с ее нетипизированными переменными еще сильней путать будет - ибо возврат писать все равно придется, а то, что он незначащий уже не очевидно.

Спроси еще нафига нужна обработка, если есть отчет. Там ситуация аналогичная.
130 Chai Nic
 
22.10.11
08:08
"процедура - это усеченная в функциональности функция"
А молоток - это усеченный в функциональности микроскоп! :)
131 orefkov
 
22.10.11
11:15
(129)
Занудства ради укажу, что писать "возврат" в функциях 1С вовсе необязательно.

А для меня разделение на функции/процедуры в 1С удобно тем, что когда я допустим пишу (знак | это положение курсора)
а = |
или к примеру
Если |

то интеллисенс мне из списка дополнений убирает все процедуры, ибо они в выражениях не могут применяться.
И наоборот, есть ряд функций, которые только в выражениях могут появляться, и интеллисенс мне их из списка убирает, если набор идет не в выражении.

Ну а += уже давно сделано, причем для 7ки бесплатно.
132 trambalda
 
22.10.11
11:21
(131) Александр, опять реклама? )))
Я не против, но доведите эту софтинку хотя бы до стабильной работы.
А то на форуме страшно читать отзывы, все в стиле "ежики плакали, кололись, но продолжали".
Я, например, не пользуюсь всякими вспомогалками, и контрол-пробел отключен.
С памятью повезло.
А вот шорткатница будет кстати.
133 orefkov
 
22.10.11
11:29
(132)
Так шорткатница как-раз таки работает оченно стабильно, а телепатирование, если глючит, в последних альфах можно отключить.
Но боже упаси, я ни кого не заставляю кушать кактус, все сугубо добровольно.
Ну и понятно, что мне более импонирует подход "ну попробуем, но вы уж доведите", чем "вы уж доведите, а мы может и попробуем".
134 Mikeware
 
22.10.11
11:31
(133) и "ничто так не укрепляет доверие, как 100% предоплата"© :-)))))
135 Ненавижу 1С
 
гуру
22.10.11
11:34
ПРО неопределено интересней
136 trambalda
 
22.10.11
11:36
(133) Я готов занести деньги только за стабильный продукт. Но зато готов. А вот тестировать не очень интересно, даже за бонусы.
Только я не понял, регистрация на сайте Снегопата, чтобы получить альфу - по личной просьбе?
137 orefkov
 
22.10.11
11:40
(136)
Да, пока по личной просьбе.
Авто-обонлайнивание будет только с выходом первого релиза.
138 Cthulhu
 
22.10.11
23:26
(131): "есть ряд функций, которые только в выражениях могут появляться, и интеллисенс мне их из списка убирает, если набор идет не в выражении" - а вот тут беда. любая функция может быть использована и не справа от присваивания. иногда достает, например, когда нельзя "ЗначениеИзСтрокиВнутр(тырыпыры).Выгрузить(трампампам.тыцдрыц)", например...
139 orefkov
 
23.10.11
00:26
(138)
Так я и говорю, что не все функции такие.
Это например, СокрЛП, Лев, Прав и т.п. Вызывать такие функции как процедуры бессмысленно. В 7ке еще можно было, а в 8ке компилер сразу ругается - "функция может быть использована только в выражении". А штатная подсказка между тем и не думает убирать их из списка.