Имя: Пароль:
1C
1С v8
Функции и процедуры на экспорт
, ,
0 Фантазер
 
14.04.21
09:18
Переделываю стандартные печатные формы и возник один вопрос - почему многие функции и процедуры не имеют опции "экспорт" ?
Почему половина функций и процедур общего модуля не доступны из других мест по причине отсутствия у них опции "экспорт"? Это как-то экономит оперативную память? Или смысл в чем-то другом?
1 Chameleon1980
 
14.04.21
09:21
потому, что они предназначены для только для вызова из процедур и функций того-же ОМ
т.е. они, как бы служебные (внутренние)
по-моему - несложно догадаться
2 1ctube
 
14.04.21
09:21
Это показывает что функция без экспорта используется в пределах этого модуля
3 Chameleon1980
 
14.04.21
09:22
зачем их вообще открывать наружу, если они больше нигде не нужны?
что-бы после точки ИмяОбщегоМодуля. у тебя сарафан нужного и ненужного был?
с точки зрения ресурсов не задумывался, но, наверняка требуется доп. расход какой-то
4 acht
 
14.04.21
10:08
(0) Потому что нет нужды выставять их наружу.

То, что тебе тяжело без этого выполнять твою же задачу "Переделываю стандартные печатные формы", это только твои проблемы, извини.
5 АнализДанных
 
14.04.21
10:11
(0) (С) Bash.im:
xxx: Каждый раз, когда ты используешь int вместо short - кто-то идет покупать планку оперативы.
6 fisher
 
14.04.21
12:14
(0) По-идее ничего не экономит. Только на область видимости влияет. В "большом мире" это позволяет разделить внешний программный интерфейс библиотек и внутреннюю реализацию. Что в свою очередь позволяет менять внутреннюю реализацию без опасения, что что-то сломается у пользователей твоей библиотеки после обновления версии (так как ко внутренней реализации пользователи доступа не имели).
В 1С де-факто в этом почти нет смысла. Больше вреда чем пользы. ИМХО, спокойно могли бы упростить язык за счет дефолтового экспорта всего и вся.
7 АнализДанных
 
14.04.21
12:24
(6) (0) Очень сложно делать рефакторинг кода, когда ты видишь слово "Экспорт". Это значит, что надо править код еще где-то, т.к. эта процедура может вызываться где угодно. Например, в ком соединениях, или это какой-то подключаемый обработчик. Трудоемкость анализа сильно возрастает, если они все экспортные. Если слова "Экспорт" нет, значит не надо анализировать всю конфигурацию.
8 acht
 
14.04.21
12:27
(6) >  упростить язык за счет дефолтового экспорта всего и вся.

// Счастливой отладки
#define private public
9 hhhh
 
14.04.21
12:34
(6) вот как раз в 1с, все и всё меняют по нескольку раз в месяц. Если открыть внутренние наименования, то вообще наступит полный трындец.
10 fisher
 
14.04.21
12:34
(7) Ладно. Погорячился :)
У меня просто от общих модулей подгорает. Если в одном ОМ не закапсулировался, то вынужден экспортиться. Хотя де-факто это может быть внутренняя реализация, охватывающая несколько общих модулей.
11 mikecool
 
14.04.21
12:43
(8) + #define true false
12 fisher
 
14.04.21
12:56
#define return if (std::random(1000) < 2) throw std::exception(); else return