Как из 1с программно прочитать код модулей конфигурации?

1. YanTsys 12 05.12.17 19:58 Сейчас в теме
Как из 1с программно прочитать код модулей конфигурации?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
7. spacecraft 06.12.17 10:01 Сейчас в теме +1 $m
(6) подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
	Кавычка = """";
	ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);
	
	КодВозврата = Неопределено;
	Кавычка = """";
	Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	Пароль = "";
	ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";
	
	ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
		+ " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
		+ " /N "                  + Кавычка + Пользователь + Кавычка
		+ " /P "                  + Кавычка + Пароль + Кавычка
		+ " /DumpConfigToFiles "  + Кавычка + КаталогВыгрузки + Кавычка
		+ " /Out "                + Кавычка + ИмяФайлаСообщений + Кавычка
		+ " /DisableStartupMessages /DisableStartupDialogs "
		,
		,
		Истина,
		КодВозврата);
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Alexey_ 26 05.12.17 20:03 Сейчас в теме
(1)/DumpConfigToFiles <каталог выгрузки> [-Extension <имя расширения>] [-AllExtensions] [-format] [-update][-force][-getChanges <имя файла>][-configDumpInfoForChanges <имя файла>][-listFile <имя файла>]
— выгрузка конфигурации в XML-файлы.
3. YanTsys 12 05.12.17 20:14 Сейчас в теме
(2) Жестоко ... я надеялся что можно прочитать прямо из программы без использования командной строки...
Но и то хлеб ...
Спасибо.

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

Еще чуть конкретизирую какую пользу хочется извлечь.
Используя механизм расширений можно перехватить процедуры и заменить их своими.
Теперь после обновления можно не беспокоиться что поменяется какая-то другая процедура модуля и из-за этого 1с затрет все наши изменения и придется возвращать свои куски кода в модули.
Но если изменятся именно те процедуры которые мы перехватили то последствия могут быть весьма неприятными.
Поэтому нужен механизм контроля неизменности не всего модуля а конкретно тех процедур которые влияют на логику нашего расширения.
В идеале было бы если бы 1с сделала что-то аналогичное решениям Консультант+ там можно подписаться на уведомления об изменении определенных законов и после обновления базы Консультант+ сам предупреждает об изменениях.
7. spacecraft 06.12.17 10:01 Сейчас в теме +1 $m
(6) подписки на изменения скорее всего ожидать не стоит.
А вот проверить нужные модули можно. Как выше говорилось, через выгрузку конфигурации в файлы.
Похожий механизм используется в Демо БСП. ПроверкаВнедренияБСП в частности. Там можно посмотреть.
	Кавычка = """";
	ПутьКБазе = СтрЗаменить(СтрокаСоединения, Кавычка, Кавычка + Кавычка);
	
	КодВозврата = Неопределено;
	Кавычка = """";
	Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	Пароль = "";
	ИмяФайлаСообщений = КаталогВыгрузки + "\СообщенияВыгрузкиКонфигурацииВФайлы.txt";
	
	ЗапуститьПриложение(Кавычка + КаталогПрограммы + "1cv8.exe" + Кавычка + " DESIGNER"
		+ " /IBConnectionString " + Кавычка + ПутьКБазе + Кавычка
		+ " /N "                  + Кавычка + Пользователь + Кавычка
		+ " /P "                  + Кавычка + Пароль + Кавычка
		+ " /DumpConfigToFiles "  + Кавычка + КаталогВыгрузки + Кавычка
		+ " /Out "                + Кавычка + ИмяФайлаСообщений + Кавычка
		+ " /DisableStartupMessages /DisableStartupDialogs "
		,
		,
		Истина,
		КодВозврата);
Показать
8. YanTsys 12 06.12.17 11:14 Сейчас в теме
(7) Спасибо :) Выгонять пользователей 1с при этом не требует?
9. spacecraft 06.12.17 11:49 Сейчас в теме
(8) пользователей выгонять не требует. Требует закрытый конфигуратор, так как будет запускаться программно он.
10. YanTsys 12 06.12.17 15:10 Сейчас в теме
(9)
так как будет запускаться программно он

Еще раз спасибо. Да пребудет с вами сила :)
12. Kindman1980 81 27.06.21 13:50 Сейчас в теме
(6) я занят разработкой похожего решения. Можете присоединиться, как раз стоит вопрос отслеживания изменений в расширениях относительно изменений в основной. Наработки можно посмотреть тут https://github.com/Kindman1980/1C_Search_SPPR
11. Kindman1980 81 27.06.21 13:45 Сейчас в теме
(2) опытным путем выявил что команда getchanges не работает одновременно с update. Детали тут https://github.com/Kindman1980/1C_Search_SPPR/tree/main/IncrementalDumpToFi­les
(2)
4. ger_kar 05.12.17 21:51 Сейчас в теме
Напрямую доступ к тестам модулей получить не получиться, только обходным маневром, как написал Алексей. А было бы конечно хорошо, если бы такая возможность была, причем не только чтения, но и модификации кода модулей, хотя с точки зрения безопасности такое вряд ли сделают.
5. starik-2005 3033 05.12.17 21:56 Сейчас в теме
(4) в принципе, если задаться целью, то можно, но очень непросто. Код модуля заархивирован дефлейтом, подменить файл в таблице конфига в принципе можно, но работать это будет возможно до следующего обновления платформы. По крайней мере накат из конфигсейва в конфиг обновляет конфу, минуя динамическое обновление, но может возникнуть проблема с локальным кешем пользователя.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)