Как из 1с программно прочитать код модулей конфигурации?
---
подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.

```1c
    Кавычка = "";
    ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);

    КодВозврата = Неопределено;
    Кавычка = "";
    Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
    Пароль = ";
    ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";

    ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
    + " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
    + " /N " + Кавычка + Пользователь + Кавычка
    + " /P " + Кавычка + Пароль + Кавычка
    + " /DumpConfigToFiles " + Кавычка + КаталогВыгрузки + Кавычка
    + " /Out " + Кавычка + ИмяФайлаСообщений + Кавычка
    + " /DisableStartupMessages /DisableStartupDialogs "
    ,
    ,
    Истина,
    КодВозврата);
```
---
/DumpConfigToFiles <каталог выгрузки> [-Extension <имя расширения>] [-AllExtensions] [-format] [-update][-force][-getChanges <имя файла>][-configDumpInfoForChanges <имя файла>][-listFile <имя файла>]
— выгрузка конфигурации в XML-файлы.
---
Жестоко ... я надеялся что можно прочитать прямо из программы без использования командной строки...
Но и то хлеб ...
Спасибо.

Кстати уточню цель может неправильно вопрос поставил.
Хочется программно проверять после обновления неизменность определенных частей модулей.
Может есть другое решение?
---
(4) (5) Спасибо за советы.

Еще чуть конкретизирую какую пользу хочется извлечь.
Используя механизм расширений можно перехватить процедуры и заменить их своими.
Теперь после обновления можно не беспокоиться что поменяется какая-то другая процедура модуля и из-за этого 1с затрет все наши изменения и придется возвращать свои куски кода в модули.
Но если изменятся именно те процедуры которые мы перехватили то последствия могут быть весьма неприятными.
Поэтому нужен механизм контроля неизменности не всего модуля а конкретно тех процедур которые влияют на логику нашего расширения.
В идеале было бы если бы 1с сделала что-то аналогичное решениям Консультант+ там можно подписаться на уведомления об изменении определенных законов и после обновления базы Консультант+ сам предупреждает об изменениях.
---
подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.

```1c
    Кавычка = "";
    ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);

    КодВозврата = Неопределено;
    Кавычка = "";
    Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
    Пароль = ";
    ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";

    ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
    + " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
    + " /N " + Кавычка + Пользователь + Кавычка
    + " /P " + Кавычка + Пароль + Кавычка
    + " /DumpConfigToFiles " + Кавычка + КаталогВыгрузки + Кавычка
    + " /Out " + Кавычка + ИмяФайлаСообщений + Кавычка
    + " /DisableStartupMessages /DisableStartupDialogs "
    ,
    ,
    Истина,
    КодВозврата);
```
---
Спасибо :) Выгонять пользователей 1с при этом не требует?
---
пользователей выгонять не требует. Требует закрытый конфигуратор, так как будет запускаться программно он.
---
так как будет запускаться программно он
Еще раз спасибо. Да пребудет с вами сила :)
---
я занят разработкой похожего решения. Можете присоединиться, как раз стоит вопрос отслеживания изменений в расширениях относительно изменений в основной. Наработки можно посмотреть тут https://github.com/Kindman1980/1C_Search_SPPR
---
опытным путем выявил что команда getchanges не работает одновременно с update. Детали тут https://github.com/Kindman1980/1C_Search_SPPR/tree/main/IncrementalDumpToFi­les
(2)
---
Напрямую доступ к тестам модулей получить не получиться, только обходным маневром, как написал Алексей. А было бы конечно хорошо, если бы такая возможность была, причем не только чтения, но и модификации кода модулей, хотя с точки зрения безопасности такое вряд ли сделают.
---
в принципе, если задаться целью, то можно, но очень непросто. Код модуля заархивирован дефлейтом, подменить файл в таблице конфига в принципе можно, но работать это будет возможно до следующего обновления платформы. По крайней мере накат из конфигсейва в конфиг обновляет конфу, минуя динамическое обновление, но может возникнуть проблема с локальным кешем пользователя.