gifts2017

Построение дерева информационных баз на основе файла ibases.v8i (8.1) C#

Опубликовал Сергей Рудаков (fishca) в раздел Администрирование - Стартеры 1С

Программка читает файл и информационными базами 1С и строит дерево баз, позволяет запустить 1С Предприятие 8.1 или 8.2, а также конфигуратор. Естественно требует .NET framework. Исходники прилагаются, кидайте мысли по дальнейшему развитию.

Собственно первая попытка работы с 1С Предприятием из C#. Пока только полуфабрикат, который позволяет запустить выбранную базу из дерева под пользователем указанным в поле Пользователь и паролем в поле Пароль.

Скачать файлы

Наименование Файл Версия Размер
Исходники и исполняемый файл 127
.1243886965 222,23Kb
25.09.09
127
.1243886965 222,23Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Андрей А. (Amras) 02.06.09 07:59
При запуске конфигуратор 1С 8.1.:
Ошибка:
Необрабатываемое исключение в приложении.

Accessibility
Версия сборки: 2.0.0.0
Версия Win32: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
mscorlib.resources
Версия сборки: 2.0.0.0
Версия Win32: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 2.0.0.0
Версия Win32: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.
2. Андрей А. (Amras) 02.06.09 08:02
Тоже самое и при запуске самой конфигурации в режиме предприятие.
Итог: "Не удается найти указанный файл"

На ПК:
Win XP SP3
1C 8.1.13.41
3. Андрей А. (Amras) 02.06.09 08:09
Код:
ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files\\1cv81\\bin\\1cv8.exe");

А нельзя разве использовать пути %PROGRAMFILES% (у меня например WinXP стоит не как у нормальных людей), форточки иногда и на других дисках стоят, не только на C:\>

Вот видимо и ответ на мои посты выше :) Разумеется файл не найден будет, т.к. на <C> у меня ничего нет.
4. Андрей А. (Amras) 02.06.09 08:11
Еще можно на C# вытаскивать путь к этой папке из реестра, что позволило бы оптимизировать доступ к каталогу с 1С. Это как один из возможных вариантов. Просто у меня С# не установленно, а то мог бы поиграться с вашим кодом. Но идея хорошая, за что ставлю "+"
5. Сергей Рудаков (fishca) 02.06.09 09:14
Учту все ваши замечания, это только начало :)
Кстати как узнать по которому пути установлена 1С или же другой софт?
6. Сергей Рудаков (fishca) 02.06.09 09:15
Хотелось бы хранить пароли к базам, только вот никак не придумаю где и как.
7. Андрей Скляров (coder1cv8) 02.06.09 09:30
Ну зачем же .NET framework для такой ерунды? )
8. Андрей А. (Amras) 02.06.09 10:06
[5] Например:
Путь к папке Program Files - %PROGRAMFILES%

Пример: %PROGRAMFILES%\1cv81 (откроет каталог с 1С - при условии, что она установлена по умолчанию)

Можно попробовать здесь поискать:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\1cv8.exe\shell\Open\command

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\V81.InfoBaseList\shell\Open\command

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion­\Installer\Folders

В моем случае везде был прописан путь к 1С 8.1

[6] Пароли можно хранить в реестре (правда надо будет использовать какой-нибудь метод шифрования данных)
9. Сергей Рудаков (fishca) 02.06.09 10:08
(7) а чем это плохо?
Тем более в винде это уже практически стандартная часть оси :)
Как бы нам не хотелось но за .NET framework будущее. Если уж под линуха создан Моно...
10. Андрей А. (Amras) 02.06.09 10:12
[6] Еще можно написать алгоритм на С#, который будет шифровать данные о пользователе (например, жуткий способ, делать смещение символов: Была буква А - стала буква Д, можно и посложнее). Раньше в нете лежали коды на С++, где приводился пример написания таких алгоритмов. Дальше можно шифрованные данные хранить а файле настроек или записывать в реестр.
11. Василий Демидов (Душелов) 02.06.09 10:13
Добавляй еще пакетный запуск, регламентные задания... ;))
12. Сергей Рудаков (fishca) 02.06.09 10:15
(11)Согласен, в этом направлении и двигаюсь.
13. Андрей Скляров (coder1cv8) 02.06.09 12:05
(9) А плохо это тем, что "стандартная часть оси" это только для тех кто пишет под .NET :)
А остальным приходится скачивать довольно не маленький дистрибутив или вообще отказываться от подобных разработок, потому что нет прав на установку framework-а (как мне, например).
Впрочем, я здесь хотел сказать только, что для такой банальной вещи как "стартер" 1С тащить .NET framework вовсе не обязательно...
14. Сергей Рудаков (fishca) 02.06.09 12:15
(13) у тебя нет прав на установку framework-а дома?
Ты не можешь скачать порядка 50 Мбайт в век безлимитного инета?
Если у тебя нет прав на установку framework-а обратись к системному администратору ;) Думаю он тебя направит в нужное русло ;) :)
А вообще думается за managed языками будущее разработки.
Ява достаточно широко используется, также будет и использоваться dot NET
15. Артур Аюханов (artbear) 02.06.09 12:39
(13) К сожалению, каких-то пару лет и без фреймворка ничего работать не будет.
Например, Винда 2008, 7, Виста уже юзают фреймворки почти по умолчанию :(
16. Сергей Рудаков (fishca) 02.06.09 12:45
(15) не почти, а по умолчанию стоит 2 framework
17. Сергей Рудаков (fishca) 02.06.09 12:46
(15) и не к сожалению.
Библиотека на самом деле очень мощная, многие вещи делаются гораздо проще чем при использовании нативного кода
18. Андрей Скляров (coder1cv8) 02.06.09 13:48
(14)(15)
Да я в общем-то ничего не имею против framework-а...
Просто на данный момент ситуация сложилась так, что большинство используют в качестве "рабочей" оси - ХР. И на работе инет, естественно, не безлимитный, не говоря уже о том что я не админ...
Тут как с 7.7 и 8, ни к чему "стрелять из пушки по воробьям", я могу аналогичный стартер написать просто в блокноте, без всяких фреймворков и т.п., разве что окошко будет чуть попроще может...
ЗЫ: И читайте Джоеля Спольски, ведь умные вещи пишет, доступно: http://russian.joelonsoftware.com/Articles/PleaseSirMayIHaveaLinker.html

19. Сергей Рудаков (fishca) 02.06.09 14:23
(18)
Автор: Джоэл Сполски
Переводчик: Анар Мустафаев
28 января 2004
Пять лет прошло ужо :) Многое поменялось. Когда-то требовалось скачать некоторые dll, к примеру MFC7*.DLL
Мелкософт не зря двигает именно C#, хотя винда написана на C++ ;)

<я могу аналогичный стартер написать просто в блокноте>
я также знаю о существовании функции CreateWindow(...), вот только сколько это займет времени уже другой вопрос.
Мелкософт наконец то сделал нормальную RAD, почему бы ею не пользоваться. Хотя я сам больше сердцем тяготею к Делфям ;)
Данная програмуселька написана с целью изучения возможностей C#, а дальше будет видно...
20. Сергей Гуков (SirYozha) 03.09.10 10:28
Сыровато конечно, но за реализацию на C# плюсую авансом. Надеюсь будешь периодически обновлять разработку. ;)
21. Роман Осадченко (cleaner_it) 03.09.10 11:07
Лучше убрать явный выбор версий 1С, а сделать в корне 2 ветки: 8.1 и 8.2
22. Сергей Рудаков (fishca) 06.09.10 20:55
(20) постараюсь
(21) надо бы заняться...