Как из 1с программно прочитать код модулей конфигурации?
По теме из базы знаний
- Как управлять качеством кода 1С, используя платформу SonarQube
- Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок
- Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы
- API-first архитектура при разработке сервисов на 1С
- YAxUnit или модульное тестирование в 1С
Найденные решения
(6) подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
Кавычка = """";
ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);
КодВозврата = Неопределено;
Кавычка = """";
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Пароль = "";
ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";
ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
+ " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
+ " /N " + Кавычка + Пользователь + Кавычка
+ " /P " + Кавычка + Пароль + Кавычка
+ " /DumpConfigToFiles " + Кавычка + КаталогВыгрузки + Кавычка
+ " /Out " + Кавычка + ИмяФайлаСообщений + Кавычка
+ " /DisableStartupMessages /DisableStartupDialogs "
,
,
Истина,
КодВозврата);
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2) Жестоко ... я надеялся что можно прочитать прямо из программы без использования командной строки...
Но и то хлеб ...
Спасибо.
Кстати уточню цель может неправильно вопрос поставил.
Хочется программно проверять после обновления неизменность определенных частей модулей.
Может есть другое решение?
Но и то хлеб ...
Спасибо.
Кстати уточню цель может неправильно вопрос поставил.
Хочется программно проверять после обновления неизменность определенных частей модулей.
Может есть другое решение?
(2) (4) (5) Спасибо за советы.
Еще чуть конкретизирую какую пользу хочется извлечь.
Используя механизм расширений можно перехватить процедуры и заменить их своими.
Теперь после обновления можно не беспокоиться что поменяется какая-то другая процедура модуля и из-за этого 1с затрет все наши изменения и придется возвращать свои куски кода в модули.
Но если изменятся именно те процедуры которые мы перехватили то последствия могут быть весьма неприятными.
Поэтому нужен механизм контроля неизменности не всего модуля а конкретно тех процедур которые влияют на логику нашего расширения.
В идеале было бы если бы 1с сделала что-то аналогичное решениям Консультант+ там можно подписаться на уведомления об изменении определенных законов и после обновления базы Консультант+ сам предупреждает об изменениях.
Еще чуть конкретизирую какую пользу хочется извлечь.
Используя механизм расширений можно перехватить процедуры и заменить их своими.
Теперь после обновления можно не беспокоиться что поменяется какая-то другая процедура модуля и из-за этого 1с затрет все наши изменения и придется возвращать свои куски кода в модули.
Но если изменятся именно те процедуры которые мы перехватили то последствия могут быть весьма неприятными.
Поэтому нужен механизм контроля неизменности не всего модуля а конкретно тех процедур которые влияют на логику нашего расширения.
В идеале было бы если бы 1с сделала что-то аналогичное решениям Консультант+ там можно подписаться на уведомления об изменении определенных законов и после обновления базы Консультант+ сам предупреждает об изменениях.
(6) подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
Кавычка = """";
ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);
КодВозврата = Неопределено;
Кавычка = """";
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Пароль = "";
ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";
ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
+ " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
+ " /N " + Кавычка + Пользователь + Кавычка
+ " /P " + Кавычка + Пароль + Кавычка
+ " /DumpConfigToFiles " + Кавычка + КаталогВыгрузки + Кавычка
+ " /Out " + Кавычка + ИмяФайлаСообщений + Кавычка
+ " /DisableStartupMessages /DisableStartupDialogs "
,
,
Истина,
КодВозврата);
Показать
(6) я занят разработкой похожего решения. Можете присоединиться, как раз стоит вопрос отслеживания изменений в расширениях относительно изменений в основной. Наработки можно посмотреть тут https://github.com/Kindman1980/1C_Search_SPPR
(2) опытным путем выявил что команда getchanges не работает одновременно с update. Детали тут https://github.com/Kindman1980/1C_Search_SPPR/tree/main/IncrementalDumpToFi les
(2)
(2)
Напрямую доступ к тестам модулей получить не получиться, только обходным маневром, как написал Алексей. А было бы конечно хорошо, если бы такая возможность была, причем не только чтения, но и модификации кода модулей, хотя с точки зрения безопасности такое вряд ли сделают.
(4) в принципе, если задаться целью, то можно, но очень непросто. Код модуля заархивирован дефлейтом, подменить файл в таблице конфига в принципе можно, но работать это будет возможно до следующего обновления платформы. По крайней мере накат из конфигсейва в конфиг обновляет конфу, минуя динамическое обновление, но может возникнуть проблема с локальным кешем пользователя.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)