Программное чтение файла ibases.v8i

02.04.19

Интеграция - Внешние источники данных

Пример кода, который позволяет читать файл списка баз данных ibases.v8i.

Добрый день. 

Возможно, информация не нова, но будет полезна. 

Появилась необходимость читать список баз данных из файла ibases.v8i. 

Решил реализовать с помощью парсинга текстового документа. 

Поиск файла идет из каталога пользователя с последующим добавлением и заполнением строки таблицы формы обработки.

Список баз таким образом будет получен пользовательский, у каждого свой, который отображается при запуске 1С.

Если есть иные варианты, пишите в комментарии, обсуждайте, критика приветствуется. 

Если кто-то может дать информацию, как можно к списку баз, подтянуть и откуда подтянуть, пользователей базы для заполнения списка выбора в строке таблицы, пишите. 

 

&НаКлиенте
Процедура ПолучитьСписокБазПользователя(Команда)
	
	ВременныйКаталог = КаталогВременныхФайлов();
	
	ИмяФайла = "ibases.v8i";
	
	ВременныйКаталог = СтрЗаменить(ВременныйКаталог, "\Local\Temp\", "\Roaming\1C\1CEStart\");
	
	ФайлЗапуска1С = Новый Файл(ВременныйКаталог + ИмяФайла);
	
	Если ФайлЗапуска1С.Существует() Тогда
		
		ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
		ТекстовыйДокИзФайла.Прочитать(ФайлЗапуска1С.ПолноеИмя);
		
		//Текст = ТекстовыйДокИзФайла.ПолучитьТекст();
		
		СлБаза = Ложь;
		Для НомерСтроки = 1 По ТекстовыйДокИзФайла.КоличествоСтрок() Цикл
			
			СтрокаТекста = ТекстовыйДокИзФайла.ПолучитьСтроку(НомерСтроки);
						
			Если Лев(СтрокаТекста, 1) = "[" Тогда //Это имя в списке
				
				СтруктураБазы = Новый Структура;
				
				СтруктураБазы.Вставить("ИмяБазы", Сред(СтрокаТекста, 2, СтрДлина(СтрокаТекста) - 2));
				
			ИначеЕсли СтрЧислоВхождений(СтрокаТекста, "Connect=File=") > 0 Тогда
				
				Путь = СтрЗаменить(СтрокаТекста, "Connect=File=", "");
				
				Путь = СтрЗаменить(Путь, ";", "");
				Путь = СтрЗаменить(Путь, """", "");
			
				СтруктураБазы.Вставить("ПутьКБазе", Путь);
				
				//Проверяем добавляемую строку
				Если СписокБазДанных.НайтиСтроки(Новый Структура("ИмяБазы", СтруктураБазы.ИмяБазы)).Количество() = 0 Тогда
				СтрокаБазы = СписокБазДанных.Добавить();
			
				ЗаполнитьЗначенияСвойств(СтрокаБазы, СтруктураБазы);
				КонецЕсли;

			КонецЕсли;
			
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    29752    38    49    

44

Внешние источники данных Программист Бизнес-аналитик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    7375    18    4    

15

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (Базовая, ПРОФ, КОРП, ФРЕШ (тонкий клиент)).

17080 руб.

19.12.2016    52723    114    107    

79

Внешние источники данных Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4880 руб.

16.08.2023    3454    7    8    

9

Внешние источники данных Мастера заполнения Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Россия Платные (руб)

Решение позволяет по ИНН производить проверку контрагентов, получая сведения: видов деятельности, данных ЕГРЮЛ, связанных организаций, отчетности, налогов, финансовый анализ, а также в один клик заполнить карточки справочников контрагентов/партнеров по ИНН в программе 1С по данным государственных реестров.

6000 руб.

12.08.2025    2525    9    20    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ziggurat 50 02.04.19 17:45 Сейчас в теме
А если временная папка переопределена?
2. Andryza 39 02.04.19 18:13 Сейчас в теме
(1)Тогда уже писать под свою папку, в таком случае. Это же как пример, каталог по умолчанию типового функционала.
3. independ 1537 02.04.19 18:18 Сейчас в теме
Для windows можно так
WSH = Новый COMОбъект("WScript.Shell");
ВременныйКаталог  = WSH.ExpandEnvironmentStrings("%APPDATA%")+"\1C\1CEStart\ibases.v8i";
IgorS; A_Max; Andryza; acanta; +4 Ответить
4. CratosX 116 03.04.19 19:20 Сейчас в теме
Опишите переменную СписокБазДанных
5. Andryza 39 03.04.19 23:29 Сейчас в теме
(4)таблица значений
6. CratosX 116 04.04.19 12:17 Сейчас в теме
(5) таки да, но хотелось бы полное описание колонок.
7. Andryza 39 04.04.19 12:43 Сейчас в теме
(6) Таблица значений. Колонки (Имя базы, Путь к базе, Пользователь, Пароль, Количество проводок в базе) Все строковые, кроме количества проводок.
13. pentanom 31 29.05.19 11:36 Сейчас в теме
(7)
Таблица значений. Колонки (Имя базы, Путь к базе, Пользователь, Пароль, Количество проводок в базе) Все строковые, кроме количества проводок.
В базе УТ (например) проводок нет. Что будет в колонке "Количество проводок в базе" ?
14. Andryza 39 30.05.19 20:22 Сейчас в теме
(13) А я и не писал, что речь идет об УТ,
16. pentanom 31 30.05.19 23:50 Сейчас в теме
(14)Вы вообще не писали о каких базах идет речь. А в списке баз могут быть и не только БП.
17. Andryza 39 31.05.19 11:44 Сейчас в теме
(16)Так я Вам об этом и говорю, что речь не шла о типах баз в принципе, статью читайте внимательно.
15. Andryza 39 30.05.19 20:25 Сейчас в теме
(13)И вообще, я писал о методе чтения списка баз, а не о самой разработке. + логично, что если я упомянул колонку "количество проводок", значит речь идет о БП.
8. МимохожийОднако 142 07.04.19 08:28 Сейчас в теме
"Появилась необходимость читать список баз данных из файла ibases.v8i."
Прочитать файл можно, отрыв в блокноте и глазками. Зачем читать программно? Любопытно, где это можно применить?
9. Andryza 39 07.04.19 14:49 Сейчас в теме
(8)Применить это можно по необходимости, собственно об этом я и написал.
10. МимохожийОднако 142 07.04.19 18:18 Сейчас в теме
(9) Назови хотя бы одну необходимость. Собственно об этом я спросил.
11. Andryza 39 07.04.19 21:52 Сейчас в теме
(10) Для особо дотошных - потребовалась обработка, которая получала бы количество проводок из бух. баз, что бы можно было настраивать, сохранять список этих самых баз в форме обработки, с указанием имен, путей к базе, логина/пароля юзера. Для дальнейшего получения количества проводок в этих базах. баз 15 штук, все файловые, вот для этого и понадобилось чтение. Нажали кнопку заполнить, список заполнился в форме обработке, и что бы можно было этот список сохранить в файл со всей информацией. Теперь ты понял необходимость? Что бы руками это все не набивать - это как минимум.
19. StrogonovLN 29.11.23 15:22 Сейчас в теме
(8) Ответ в некропост спустя 4 года)) Потребовалось найти ID баз по списку, что бы определить какой кэш какой базе принадлежит, что бы огульно не чистить всё)
12. МимохожийОднако 142 08.04.19 06:46 Сейчас в теме
Так бы сразу и написал. Спасибо.
18. Sergey_is 07.07.23 17:30 Сейчас в теме
Спасибо. Список понадобился. Пытался путь %appdata% с помощью vbf определять (переменные среды). А тут просто и незамысловато "TEMP - КаталогВременныхФайлов". Знал же.
20. Slypower 3 26.11.25 14:57 Сейчас в теме
КаталогВременныхФайлов() может содержать подпапки - "\Local\Temp\3" (3, к примеру). Выловить их невозможно, поэтому получить достоверность не получается, либо нужно отсекать сперва все, что находится после "Temp\"
Лев(ВременныйКаталог,найти(ВременныйКаталог,"Temp\")+4)
Для отправки сообщения требуется регистрация/авторизация