Структура модуля
https://its.1c.ru/db/v8std#content:2149184104:hdocЯ хочу внести немного понимания в то, что можно использовать на внедрении, а что не нужно.
ПрограммныйИнтерфейс = Public
СлужебныйПрограммныйИнтерфейс=Internal в C# или Package в Java
СлужебныеПроцедурыИФункции=Private
Public для всех, по нему поддерживается обратная совместимость, нарушение обратной совместимости это критическая ошибка. Его разрешено в 3 цифре версии пометить как устаревший, во второй цифре версии удалить из устаревших. Используйте в своих кастомизациях конфигурации то что лежит в области Public.
Internal это интерфейс межподсистемный в рамках одной библиотеки. Он нужен для того чтобы можно было строить отцепляемость подсистем, чтобы вы могли внедрить несколько подсистем БСП а остальны довнедрять потом, и базовые подсистемы при этом автоматически переключились на ветки с задействованием довнедренных. Он не доступен конечным конфигурациям. Не используйте его.
Private, все что лежит в этой области мы перекладываем как хотим. Переносим и переименовываем функции как хотим. Это наши кишки и туда лезть не надо.
Используя не Public вы будете постоянно гавниться "опять они все разломали", и виноваты будете при этом сами!