Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Функции и процедуры на экспорт

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.