sedmin Цитата:У нас в 1С каждый отчет - это отдельное приложение.
Да ну?! С чего бы это?
Цитата:У нас нет этой библиотеки, а если бы была, то ее компиляция снова бы стала проблемой.
Цитата: ... для каждого отчета нужы классы из разных мест.
Безосновательные утверждения.
Цитата:Смысл атома в том, что это - минимальная операция. На его основе можно делать что угодно.
Я предлагаю обойтись вообще без лишних телодвижений.
Цитата:То есть все описание класса лежит в одном файле класса. А как он подвязывается - дело десятое.
Вот оно в чем дело! У меня описания классов лежат в файлах реализации уже года три, если не больше. А как подвязываются эти файлы - как раз самый первый вопрос.
зы: Приведу пример.
Предположим, есть некая конфигурация, назовем ее "ТоргуемВсем". В ней есть отчет
ОтчетПоОстаткам (внешний или встроенный в МД - неважно). В коде конфиги используются следующие классы:
- Система.Формы.РасширениеФормы
- Система.Формы.ВалидаторДанныхБазовый
- Система.Формы.ВалидаторДанныхРавенство : Система.Формы.ВалидаторДанныхБазовый
- Система.Формы.ВалидаторДанныхДиапазон : Система.Формы.ВалидаторДанныхБазовый
- ТоргуемВсем.ОтчетПоОстаткам.ГенераторПечатнойФормы
- ТоргуемВсем.ОтчетПоОстаткам.ПоставщикДанных
- ТоргуемВсем.ОтчетПоОстаткам.ВалидаторДанных : Система.Формы.ВалидаторДанныхРавенство
Причем, классы пространства имен
Система не зависят от используемых компонент v7.7 и используются в любых конфигурациях, а классы пространства имен
ТоргуемВсем используются только в одноименной конфиге, в соответствующем отчете.
Чтобы это работало, создаем где-то в сети расшареный каталог
\\server\Классы1спп со следущим содержимым:
Система\
Формы\
РасширениеФормы.ert
ВалидаторДанныхБазовый.ert
ВалидаторДанныхРавенство.ert
ВалидаторДанныхДиапазон.ert
ТоргуемВсем\
ОтчетПоОстаткам\
ГенераторПечатнойФормы.ert
ПоставщикДанных.ert
ВалидаторДанных.ert
Сообщаем нашей конфиге, что классы нужно искать в каталоге
\\server\Классы1спп.
На этом вся работа по подключению классов заканчивается.
При первом создании экземпляра класса, скажем,
ТоргуемВсем.ОтчетПоОстаткам.ГенераторПечатнойФормы, 1С++ обращается напрямую к файлу
\\server\Классы1спп\ТоргуемВсем\ОтчетПоОстаткам\ГенераторПечатнойФормы.ertПри этом, также, конфига использует старые классы, описаные в defcls.prm и подключенные всевозможными динамическими способами - тут, надеюсь, пример не нужен.
При добавлении в МД, скажем, нового отчета, нам нужно будет только добавить файлы реализации классов, аналогично приведенному примеру.
Конфигурация может быть безболезненно отчуждена путем копирования нужных файлов. Уникальность пространств имен обеспечивает отсутствие конфликтов.