Имя: Пароль:
1C
1С v8
Про экспортные функции
0 Ненавижу 1С
 
гуру
06.06.14
10:44
Чтобы функция модуля обработки была доступна в форме обработки, она должна быть экспортной
Но тогда она доступна из других мест - нехорошо

Мне кажется надо было разработчикам платформы рассматривать форму как embedded-класс в классе обработки, тогда вложенному классу были бы доступны все private-методы
1 ДенисЧ
 
06.06.14
10:46
Опять ООП-срач? :-)
2 acsent
 
06.06.14
10:46
Почему не хорошо то?
3 acsent
 
06.06.14
10:46
Приведи пример
4 senior
 
06.06.14
10:48
возможно, а приведи пример функции...
5 scanduta
 
06.06.14
10:48
Он просто ненавидит 1с
6 MSII
 
06.06.14
10:48
(0) Она доступна там, где есть ОбработкаОбъект и недоступна там, где этого объекта нет. Чего еще нужно?
7 Godofsin
 
06.06.14
10:51
(6) +1
8 Maxus43
 
06.06.14
10:52
кг/ам
9 shuhard
 
06.06.14
10:52
(0) мы не против
10 Поpyчик-4
 
06.06.14
12:02
(0) Отправить резюме в фирму 1С, устроиться и поставить на рога всех не предлагать?
11 Ненавижу 1С
 
гуру
11.06.14
21:57
(10) та же гроши платят, даже ВР ушел
12 Armando
 
11.06.14
22:28
(0) тогда не надо ее размещать в модуле обработки. размести в модуле формы, если она только там и нужна.
13 Ненавижу 1С
 
гуру
20.06.14
22:24
(12) если она с базой взаимодействует?
14 GANR
 
20.06.14
22:39
(0) С другой стороны, приобрел бы АК-47 такую популярность во всем мире, будь на нем громадное количество кнопок в котором ни за что не разберется не то что люди из Африканских племен, а даже инженеры со стажем??? Вот поэтому и не перегружается платформа лишними функциями.
15 acanta
 
20.06.14
22:53
(14) ты еще скажи что 1С 2.0, 1С 6.0 вечны, а 7.7 и 8 слишком сложны для африканских племен, поэтому экспортные конфигурации есть только для Украины, Белоруссии и Казахстана.. Еретик!
16 Лефмихалыч
 
20.06.14
22:54
(0) соглашусь, т.к. предложение правильное. Например, у обработки может быть несколько форм, которые должны один и то же метод использовать. Тогда метод должен быть, как минимум в модуле обработки. Но бывают методы, которые сторонним разработчикам давать не положено. Таких случаев крайне мало, но есть. Особенно, когда разработчиков пол дороги до дохрена и все разные
17 Лефмихалыч
 
20.06.14
22:55
(13) она может не только с базой взаимодействовать, она может коннекты к другим базам поднимать и творить чорную магию
18 acanta
 
20.06.14
22:58
(17) и сеять панику среди толп непуганных юзеров..
С воплем "Вирус 1С" выпрыгивающих из окон 2 го этажа..
19 Ненавижу 1С
 
гуру
20.06.14
22:59
(17) ну я самое простое же
20 Лефмихалыч
 
20.06.14
23:04
(18) нет - и обслуживать до бениной мамы разных баз, чтобы штат поддержки был на 100500 человек меньше, чем мог бы быть без этого
21 acanta
 
20.06.14
23:08
(20) а зачем нам 100499 безработных 1сников?
22 Лефмихалыч
 
20.06.14
23:10
+(20) мне наше "развитие" уже одну клёвую штуку не согласовало по причине: "Этот метод может вызвать кто угодно, в продуктив его нельзя" и мне не чем было крыть, ибо они правы. Дело было пару месяцев назад, а обидно до сих пор - в результате архитектурное решение пришлось вывернуть на изнанку так, что мне делать его уже не хочется. Был бы сабж, было б клёво.
Вообще это было бы полезно - иметь механизм protected-методов не только в обработках, но и в чем угодно
23 Ненавижу 1С
 
гуру
21.06.14
00:55
(22) спасибо за выдержку из контекста, не кубанский колхоз у вас
24 mistеr
 
21.06.14
01:57
И все же, реальный пример будет?

Я думаю все правильно, потому что объект должен быть отделен от формы, то есть от GUI. Хотя многие и пихают гуевый код в модуль формы (в том числе и разработчики типовых). Все, что может сделать с объектом родная форма, может сделать и кто угодно.

О, вспомнил умное слово - слабая связность. Это то, что нужно. Иначе код сложно поддерживать.
25 mistеr
 
21.06.14
01:58
(24) Читать "пихают гуевый код в модуль *объекта*"
26 Лефмихалыч
 
21.06.14
21:20
(24) >И все же, реальный пример будет?
реально представь себе любой реальный экспортный метод в привилегированном модуле
27 Armando
 
21.06.14
22:31
А в нем
Выполнить(Команда)
28 Лефмихалыч
 
21.06.14
23:27
(27) ну, за экспортирование таких функций, положим, в приличном обществе могут и яйцы оттоптать, что делает пример не так уж чтобы прям сильно реальным, но в жизни и даже в типовых всякое бывает.
29 Asmody
 
21.06.14
23:32
(0) [тогда она доступна из других мест] - и очень хорошо. а как дополнительные интерфейсы имплементировать? (программные, имеется в виду)
30 xReason
 
21.06.14
23:33
(0) Можно сделать намного проще ввести тип видимости Защищеный ( Protected) видимость в области своего объекта
31 xReason
 
21.06.14
23:33
(29) Это плохо. Иногда не нужный интерфейс торчит наружу
32 mdocs
 
21.06.14
23:34
Даешь 100500 галочек и деректив компиляции для управления видимостью одних моделей из других модулей.
33 Лефмихалыч
 
21.06.14
23:37
(29) речь о том, что иногда API надо прятать от посторонних. Слово "иногда" очень важно, не игнорируй его
34 mistеr
 
22.06.14
02:33
(26) Речь шла вообще-то о формах.

Но ладно, а что с модулем? Зачем там protected? Зачем вообще protected без полноценных классов, не понимаю.
35 Лефмихалыч
 
22.06.14
02:43
(34) речь шла вообще-то об экспортных методах модулей. Я не смогу объяснить, если ты не будешь читать ветку
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.