Вывод в windows-проводнике названия баз в каталоге кластера 1С и каталогах локального кэша и настроек пользователя

15.11.17

База данных - Инструменты администратора БД

Вывод в windows-проводнике названия баз в каталоге кластера 1С и каталогов локального кэша и настроек пользователя. Используется создание файла desktop.ini, который автоматически размещается в подкаталогах кластера 1С. Теперь станет немного проще определить прямо в windows-проводнике, что, к примеру, каталог fd531400-428c-41c0-954f-b910bb5cc552 это именно база ERP.

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

Наименование Файл Версия Размер
Вывод в windows-проводнике названия баз в каталоге кластера 1С и локальных каталогах пользователя (v2)
.epf 119,13Kb
60
.epf 119,13Kb 60 Скачать

Возможно, существует много обработок которые анализируют файл 1CV8Clst.lst, выводят из него данные в человеческом, позволяют удалить каталоги несуществующих баз, предоставляют другие сервисные возможности и т.д. Да что там говорить, я и сам когда-то в качестве развлечения тоже делал различные варианты парсера этого файла.

Однако что интересно, я не смог найти на Инфостарте упоминания файла desktop.ini или уникального идентификатора {F29F85E0-4FF9-1068-AB91-08002B27B3D9}.

А между тем, несложно сложив одно с другим, мы получаем возможность задать некоторые свойства каталога (что, как мне кажется, невозможно сделать интерактивно), которые будут видны в отдельных колонках в проводнике Windows при выводе в режиме "таблица". Если кому-то, как и мне, надоело видеть в каталоге "reg_1541" безликие УИДы, это можно легко исправить -- всего-то создать desktop.ini нужного формата и включить отображение колонки "Название".

После успешного тестирования этой идеи я решил создать обработку, которая максимально упростила бы этот процесс и привнесла в  него возможности произвольной настройки. В итоге получилось следующее:

  • выбираем место выполнения кода (клиент или сервер).
  • выбираем или указываем каталог кластера 1С (с учётом контекста; помним что выполнение возможно на клиенте и на сервере). Например каталог "C:\Test" при работе с сервера и "\\Server1C\C$\Test" при работе с клиента это суть одно и то же, вопрос только в авторизации доступа.
  • нажимаем "Создать desktip.ini". После этого:
  • проверяется доступ к каталогу.
  • считывается и парсится файл 1CV8Clst.lst.
  • считываются подкаталоги кластера.
  • в каждом подкаталоге создаётся файл desktop.ini, формирующийся по заданному шаблону, используя данные из 1CV8Clst.lst и любой код на языке 1С.
  • теперь в windows-проводнике каталога кластера можно отобразить колонки, заполненные нашими данными. Данные могут появиться не мгновенно, но в пределах десятка секунд.

Информации о desktop.ini довольно мало, и иное его использование (кроме задания тех свойств про которые я упоминал) у меня не получилось. Даже свойство "Комментарий" почему-то не работает, не говоря уже о более экзотических вариантах типа установки индивидуальной иконки для папки (хотя описано и такое, и ещё куча прочих). Однако лёгкая возможность настройки произвольного шаблона создания файла даёт возможность поэкспериментировать самостоятельно.

Ссылки к размышлению (https://msdn.microsoft.com/en-us/library/ms692560, https://hwiegman.home.xs4all.nl/desktopini.html) есть в обработке.

Обработка прилагается, собственно идея не так уж сложна, так что основной объём кода -- это обвязка, интерфейс, удобства и настройки. Ах да, управляемые формы.
Результаты работы -- на скриншотах. Буду рад, если кому-то пригодится.

Upd. 17.11.2017 - "Хочу такую же для локального кэша и для настроек пользователя!" (с)
Теперь нужно выбрать ещё и "Режим работы" -- каталог кластера или каталоги пользователя. Первый режим (для кластера) работает по старому, а во втором (каталоги пользователя) каталог выбирать уже не нужно, используются AppData и LocalAppData. Второй режим можно включить только в случае выполнения кода на клиенте. Шаблоны для двух режимов -- разные.
Схема работы во втором режиме:
- считываются и парсятся файлы ibases.v8i из каталогов %APPDATA%\1C\1Cv81, %APPDATA%\1C\1CEstart;
- в каталоге %APPDATA%\1C\1CEstart считываются указанные в файле 1CEStart.cfg параметры CommonInfoBases, и указанные в них файлы ibases.v8i тоже считываются и парсятся;
- считываются подкаталоги %APPDATA%\1C\1Cv81, 1Cv82, 1Cv8, %LOCALAPPDATA%\1C\1Cv81, 1Cv82, 1Cv8
- в каждом подкаталоге создаётся файл desktop.ini, формирующийся по заданному шаблону, используя данные из ibases.v8i (поиск по УИД) и любой код на языке 1С

NB! в настоящее время наименее производительным местом является разбор файла-шаблона, который осуществляется много раз и посимвольно (для каждого подкаталога). В результате при большом количестве подкаталогов формирование файлов может затянуться на несколько лишних секунд, хотя парсинг, фактически, каждый раз выполняется один и тот же. Не оптимизировал, т.к. обработка не предполагается для частого запуска. Удаляйте из шаблона лишние комментарии и неиспользуемые параметры.

P.S. не знаю можно ли скачивать обновление без $m, получится ли обновить предыдущий файл; так что выложил новый в то же место как v2. Если что не так, то скачавшие первую версию могут написать, вышлю вторую.

обработка desktop.ini каталог кластера каталог локального кэша каталог настроек пользователя

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

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

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2987    15    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3556    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177765    1074    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27385    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61320    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11748    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31113    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10987    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. guy_septimiy 16.11.17 09:44 Сейчас в теме
Полезно.
Плюс
nomadon; cleaner_it; emakei; +3 Ответить
2. Йожкин Кот 1006 16.11.17 09:54 Сейчас в теме
Очень здорово! Хочу такую же для локального кэша и для настроек пользователя!
ixijixi; BigB; nixel; nomadon; cleaner_it; ALagutin; emakei; KroVladS; dmpas; +9 Ответить
3. cleaner_it 220 16.11.17 13:50 Сейчас в теме
Очень даже полезно, молодец)
4. nomadon 367 16.11.17 14:39 Сейчас в теме
5. Darklight 32 16.11.17 16:49 Сейчас в теме
6. Brawler 454 16.11.17 18:23 Сейчас в теме
Подайте кто нить идею самой 1С.
Прогеры платформы, могли бы такое тоже спокойно замутить))

P.S.
Я бы наверное поступил несколько иначе при оформлении ini файла.
В такой ситуации имя папки в проводнике заменяется на указанное в ini файле.

Например

[.ShellClassInfo]
InfoTip=Супер база!!!
IconFile=ico.ico
IconIndex=0
LocalizedResourceName=Супер база!!! [9a0b6c4b-c564-4b66-8e14-9c0b8f565564]



IconFile - путь к файлу иконки ежели очень нужно, в данном случае она лежит в этой же папке
7. Alias 176 17.11.17 09:09 Сейчас в теме
(6)
Однако лёгкая возможность настройки произвольного шаблона создания файла даёт возможность поэкспериментировать самостоятельно.

Скажите, а Вы сами проверяли указанный вариант? Работало? На какой ОС?

Использование иных параметров (кроме задания тех свойств про которые я упоминал) у меня не получилось. Даже свойство "Комментарий" почему-то не работает, не говоря уже о более экзотических вариантах.

Конечно я пробовал и "несколько иначные" варианты. У меня на WinServ2008R2 и Win7Pro не взлетели. Если у Вас есть успешный опыт использования иных вариантов -- делитесь :)
8. Brawler 454 17.11.17 09:56 Сейчас в теме
(7) Это точно вопросы ко мне? Цитаты просто не из моего сообщения. Я в замешательстве.
9. Alias 176 17.11.17 10:02 Сейчас в теме
(8) Прошу прощения, вопросы к Вам. :) а цитаты из текста публикации, которые заранее ответили на сообщение. В частности, на Ваше "Я бы наверное поступил несколько иначе" есть ответ в тексте -- "лёгкая возможность даёт поэкспериментировать"; а на "использовать LocalizedResourceName" -- "я пробовал у меня не получилось".
10. Brawler 454 17.11.17 10:38 Сейчас в теме
(9) У папки должен быть установлен атрибут "Только чтение", только так начинает показывать.
Атрибут устанавливать рекомендую не при помощи проводника винды)))
Прикрепленные файлы:
cleaner_it; Alias; +2 Ответить
11. Alias 176 17.11.17 11:44 Сейчас в теме
(10) Спасибо, да, действительно сработало. Видимо нужно в настройки вывести отдельно галочку "Устанавливать атрибут Только чтение", чтобы для желающих обеспечить возможность такого отображения...
Для себя я не хочу менять отображаемое имя, опасаюсь. Нужна всё же какая-то стабильность :) а то видим имя одно, а по факту оно другое -- это может ввести в ступор.
12. Brawler 454 17.11.17 12:22 Сейчас в теме
(11)
Для себя я не хочу менять отображаемое имя, опасаюсь. Нужна всё же какая-то стабильность :) а то видим имя одно, а по факту оно другое -- это может ввести в ступор.


Поэтому я в примере и заключил в квадратные скобки GUID базы, ну чтобы не вызывать внутренние противоречия.
13. LexSeIch 210 18.11.17 14:15 Сейчас в теме
Интересная статья. Будет время попробую на практике. Спасибо!
14. Vyatcheslav 22 22.11.17 09:56 Сейчас в теме
Очень оригинально, спасибо!
15. 7OH 69 22.11.17 10:54 Сейчас в теме
У вас ошибка в шаблоне по-умолчанию в ШаблонПоУмолчаниюКаталогПользователя.
М.Получить(
У структуры не такого метода - там должно быть
ИсточникДанных.Получить(
16. Fatov_DI 23.11.17 11:58 Сейчас в теме
(15)
У себя исправил так М.НаименованиеВСписке
17. kolya_tlt 86 26.01.18 09:05 Сейчас в теме
идентификаторы зачем было замазывать? это же не пароли от карточки банковской
SerVer1C; +1 Ответить
18. kuzyara 1902 31.01.18 05:17 Сейчас в теме
Колонки отображаются автоматически, или их через диалог "Выбор столбцов в таблице" нужно включать?
19. Alias 176 31.01.18 10:08 Сейчас в теме
(18) К сожалению, включить самому. Я не знаю где хранятся эти настройки (отображаемых колонок)... Если бы знал -- подумал бы как включить их автоматически. Буду рад любой информации :)
20. sergpogo 2 01.02.18 11:04 Сейчас в теме
Ошибка при разборе файла списка на баз на строках типа:
//Folder=/ИмяПапки
21. Alias 176 01.02.18 16:20 Сейчас в теме
(20) Такая строка не является штатной... Документация по структуре v8i -- https://its.1c.ru/db/v8312doc#bookmark:adm:TI000000368
Если такая строка появилась путём ручной корректировки файла -- что ж, всего предусмотреть невозможно :)
Обработка гарантированно умеет работать с форматом файла, описанным в документации. Иные варианты требуют хоть и простейшей, но всё же доработки.
P.S. Хотите я дополню код чтобы строки файла v8i, начинающиеся с "//", пропускались?
22. sergpogo 2 01.02.18 16:59 Сейчас в теме
(21) ручной корректировки не было. Спасибо сам поправлю.
23. Zhilyakovdr 142 15.02.18 11:39 Сейчас в теме
В шаблоне по умолчанию поправьте М.Получить("Имя базы 1С") на ИсточникДанных.Получить("Имя базы 1С")
Оставьте свое сообщение