gifts2017

Очистка файлов сохраненных значений пользователя (1cv7.cfg)

Опубликовал Александр Маляев (maljaev) в раздел Администрирование - Сервисные утилиты

Обработка предназначена для очистки файлов сохраненных значений 1С 7.7 (1cv7.cfg). Уменьшение размера этих файлов за счет исключения неиспользуемых или ненужных значений ведет к ускорению открытия/закрытия как самой 1С, так и её дочерних окон (отчетов, справочников, документов и т.д.). Возможна групповая обработка.

Основные возможности и нюансы:

1. Все формы и библиотеки, необходимые для функционирования обработки, упакованы в один ert-файл. Распаковка файлов ведется динамически по необходимости.

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

3. Возможна работа с базами из списка зарегистрированных баз, с базами с указанием каталога вручную, а также с отдельными файлами параметров. Возможна обработка сразу нескольких баз.

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

4. Возможна работа с одним или несколькими пользователями базы одновременно.

В случае выбора базы из списка зарегистрированных баз, а также в случае ручного выбора каталога базы, происходит процесс получения пользователей базы. Для этого используется библиотека UsersDef.dll (автор atos12, atos12@mosk.ru). Если в выбранной базе не ведется список пользователей, то используется виртуальный "пользователь по умолчанию". Если выбор файла сохраненных значений произведен вручную, то пользователь не может быть определен (также используется виртуальный).

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

При выборе пользователей отдельными колонками выводятся текущие размеры файлов 1cv7.cfg и 1cv7.cfg_. Последний - это файл бэкапов, который автоматически создается обработкой при деактивации значений и содержит в себе всю историю деактивированных значений с указанием даты и времени. Но об этом позже.

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

5. Список сохраненных значений заполняется значениями файла 1cv7.cfg, которые были сохранены методом "СохранитьЗначение()", а также архивными значениями, полученными из файла 1cv7.cfg_ (если он найден в том же каталоге).

При работе со списком сохраненных значений доступны те же возможности по групповой отметке значений и сортировке, кроме того присутствует мощная регистронезависимая система фильтрации. Прежде всего, фильтрация сохраненных значений по наименованию возможна как по подстроке, так и по маске. В случае, если используется маска, для пользователя доступны метасимволы "*" (любое количество символов) и "?" (один символ). К примеру, значение фильтрации "_ФИЛЬТР_*" отберет все значения, начинающиеся с "_ФИЛЬТР_"; "*начисление*" отберет значения, содержащие подстроку "начисление", а "*??.??.??" отберет значения, которые вероятнее всего заканчиваются датой в сокращенном формате.

Кроме фильтрации по наименованию сохраненных значений возможно также ограничить выводимый список необходимыми пользователями, пользовательскими каталогами, типами данных сохраненных значений, отфильтровать по отмеченным/неотмеченным, а также задать минимальный размер выводимых значений. Такие действия можно произвести, открыв форму установки дополнительных условий фильтрации, нажав кнопку с пиктограммой воронки. Кнопка с пиктограммой воронки, перечеркнутая крестом, снимает все условия и значения фильтрации и выводит полный список сохраненных значений.

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

Вы можете иметь набор файлов шаблонов для различных конфигураций и применять тот или иной в зависимости от ситуации. К примеру, для конфигурации "Бухгалтерский учет" достаточно иметь файл шаблонов всего с двумя строками - "РеглОтчетНастройка*" и "РеглОтчетКод*", чтобы уже добиться заметного уменьшения файла сохраненных значений и как следствие значительно уменьшить время открытия окон.

6. При записи настроек, произведенных над списком сохраненных значений, программа записывает отмеченные значения в файл 1cv7.cfg для каждого обрабатываемого пользователя, а неотмеченные (деактивированные) - в файл архива 1cv7.cfg_, с указанием даты и времени записи, находящемся в том же каталоге. Таким образом мы можем иметь неограниченное число вариантов одного и того же значения с хронологией, и выбирать любой из этих вариантов по мере необходимости. Потерять таким образом нужную информацию, находящуюся в одном из сохраненных значений, в результате неосторожных или неквалифицированных действий, становится невозможно.

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

Наименование Файл Версия Размер
Очистка файлов параметров 1457
.1223931386 356,50Kb
25.09.09
1457
.1223931386 356,50Kb Скачать
Краткое описание 781
.1223931533 6,08Kb
20.12.11
781
.1223931533 6,08Kb Скачать
Исходники 645
.1223971200 61,98Kb
25.09.09
645
.1223971200 61,98Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Schtass (sCHTASS) 14.10.08 08:58
Товарищ, а расскажите, как сумели засунуть в обработку др. обработку и библиотеку? Оч. интресно знать.
2. Maljaev (maljaev) 14.10.08 10:18
(1) На самом деле там даже 2 уровня вложенности. В сумме portable-пакет состоит из 5 вложенных обработок и 1 библиотеки. Процесс засовывания/высовывания довольно подробно разжеван мной здесь: http://infostart.ru/profile/1782/projects/600/
3. Михаил Семенов (Shaman100M) 14.10.08 10:24
Да, просто конфетка, супер. А можно расширить функционал? Думаю, что более востребованной функцией будет не очистка чего л. в файлах параметров пользователей одной ИБ в целях экономии пространства, а запись нового / изменение значения старого параметра (ну, например, простейшая замена значения сохраненной переменной) для нескольких однотипных ИБ и для всех пользователей.
4. Maljaev (maljaev) 14.10.08 10:32
(3) Да, я собираюсь расширить функционал. Если по мелочи - то немного подработать интерфейс (сделать собственный мини-редактор файлов-шаблонов; сделать просмотр параметров не в том виде как они храняться, а в исходном если это возможно; сделать редактирование параметров; можно сделать и групповую установку значений параметров). Если по крупному - то пишу сейчас распаковщик-анализатор модулей конфигураций, с целью определения, в каких конкретно объектах метаданных используется тот или иной параметр.
5. Евгений Мартыненков (JohnyDeath) 14.10.08 10:33
Прям красота какая-то! +1
6. Maljaev (maljaev) 14.10.08 10:36
(3) Забыл добавить: обработку нескольких баз одновременно считаю нецелесообразной, больше усложняющей и загромождающей работу с обрабокой. При работе с одной базой можно скажем установить единое значение параметра всем пользователям сразу, а вот при работе с несколькими базами - не всегда - если значение представляет собой ссылочный тип "справочник", "перечисление", "документ" и т.д.
7. VasilyKushnir (vasilykushnir) 14.10.08 10:55
Первое впечатление - ОТЛИЧНО! Еще поковыряю - мож замечания появятся....
8. Доржи Цыденов (support) 14.10.08 10:59
Обработка сделана мастерски! Только вот название у нее непонятное и цель использования.
9. Maljaev (maljaev) 14.10.08 11:28
(8) Насчет названия - может быть. Я сам уже в терминологии запутался немного, надо причесать свои мысли и текстовки.

А вот насчет цели использования... Сейчас приведу простой пример.

Есть у меня клиент, который давненько ведет учет в единственной локальной базе "Бухгалтерский учет". Засчет разрастания файла 1cv7.cfg открытие/закрытие некоторых окон достигает нескольких минут. Лично мне надоело ждать каждый раз по 5 минут, пока откроется окно "Регламентированные отчеты", во время моих сеансов к клиенту, а уж клиенту-то как надоело... В конце концов сделал в базе еще одного пользователя, с пустым 1cv7.cfg. На нем база разумеется летала. Сказал клиенту - хотите быстро - заходите под новым пользователем. В результате обнаруживаю что продолжают пользоваться старым. На вопрос - почему - узнаю что слишком много различных настроек теряется под новым пользователем - это и различные сохраненные каталоги, и настройки отчетов/обработок, настройки документов/справочников и т.д. Все это восстановить клиенту геморно, а я уж и подавно не знаю всего того чем он пользуется. Вот потому-то тупое удаление файла 1cv7.cfg (равно как и создание нового пользователя) чревато негативными последствиями, хотя и решает проблемы скорости. Выборочное удаления части параметров из файлов 1cv7.cfg решает проблему скорости и в то же время сохраняет все настройки, кроме деактивированных (да и деактивированные можно в любой момент восстановить).
10. Maljaev (maljaev) 14.10.08 12:02
Выложил я исходники всех обработок, входящих в состав пакета, чтобы долго не копать. Есть там интересные наработки, особенно по регулярным выражениям (на них у меня и парсинг построен, и фильтрация). Возможно кому-то интересно будет.
11. Роман Петров (PeRom) 14.10.08 13:21
Работает! и отлично работает :)
12. Алексей Плутенко (Noy) 14.10.08 14:15
13. Аркадий Кучер (Abadonna) 14.10.08 14:26
(8)>вот название у нее непонятное
А ведь прав! Переобзови на что-нить типа "Оптимизация структуры файла 1cv7.cfg"
14. Доржи Цыденов (support) 14.10.08 14:56
"Редактор значений пользователя в 1С7.7"
15. VasilyKushnir (vasilykushnir) 14.10.08 15:16
Я вижу здесь уже открыт конкурс на лучшее название... :-)
А это приватная драка, или всем можно поучаствовать?
Вот если объединить (13) и (14), то просто и лаконично: "Редактор cfg".
16. VasilyKushnir (vasilykushnir) 14.10.08 15:21
Чем проще название, тем легше в поиковике найти, ИМХО.
17. Maljaev (maljaev) 14.10.08 15:46
Я сегодня добавлю возможность редактирования самих значений, и пересмотрю всю терминологию как в самой обработке, так и в описаниях и названии. Хотелось бы, чтобы с одной стороны название отражало основной функционал обработки, с другой стороны было доступно для осознания простым пользователям, не знакомым с механизмом хранения значений 1с. Поэтому просто "редактор 1cv7.cfg" не подойдет - многие просто не поймут для чего его нужно редактировать.
18. VasilyKushnir (vasilykushnir) 14.10.08 15:56
(17) Давай рассуждать лигически (я ж никогда не пьянею :-)): Если не поймут для его нужно редактировать, то и нафиг им этот иструмент? Это же как обезъяна с гранатой: фиг угадаешь где уронит...
19. Аркадий Кучер (Abadonna) 14.10.08 15:58
(17) А зачем: как раз перенеси в описание сво
20. Аркадий Кучер (Abadonna) 14.10.08 16:00
+(19) блин, нажал что-то...
свой пост (9)
21. VasilyKushnir (vasilykushnir) 14.10.08 16:01
(17) А ведь Абадонна дело говорит. Пост (9) действительно многое проясняет.
22. Аркадий Кучер (Abadonna) 14.10.08 16:03
+(19) А что сейчас наваял в описании переноси в readme - ему там самое место ;)
23. Сhe Burashka (CheBurator) 14.10.08 16:33
ООО!! зачетная вещь, давно такую хотел - просто чтобы была! и сделано аккуратно!
зачет несомненный!
24. i (ibm2007) 14.10.08 16:52
Сделано профессионально !!!
25. Оракул Айметдинов (jhfrek) 15.10.08 00:21
Молодец! Вещь!
Я как раз об этом думал, на днях поискать подобную программулину если она вообще есть.
Как раз вовремя сделал.
Надо будет почистить свою базу после моих экспериментов по сохранению значений.
И естественно плюс за это.
26. Владимир (svsrus) 15.10.08 09:50
Просто здорово. Причем полезность обработки, лично для меня, является сомнительной, а вот способ реализации мммм... +
27. Епрст (Ёпрст) 15.10.08 09:57
(25) Падобные обработки были, просто никто не доводил их до ума, как автор этой...
28. VasilyKushnir (vasilykushnir) 15.10.08 10:05
(26) Вот Именно! - способ реализации. Добротно сработано и прав (27) - пример того, как надо имено "доводить до ума", а не полуфабрикат выкладывать.
А не захвалим ли мы автора (хоть и есть за что)? Надеюсь звездной болезнью он не болеет... А всеръез: действительно очень качественная работа.
29. Maljaev (maljaev) 15.10.08 10:46
(28) звездной болезнью я уже переболел, пока тусовался на проклабе, так что это мне точно не грозит. А так по жизни я вообще много времени уделяю интерфейсу и юзабилити. Возможно в этом моя ошибка - очень много времени уходит на вылизывание работ. Вот жена моя сильно не заморачивается - ляпает как на конвейере, на интерфейс вообще кладет, о юзабилити наверно и не слышала. В результате пока я 1 клиенту конфетку мастрячу, она 5 обслужить успеет, если правда сам алгоритм не сложный. Продуктивность жены выше, а оценить красоту решения не каждый клиент может, тем более качественная реализация получается дороже. Это хорошо, когда обработка бесплатная, а когда за аналогичные решения с вас попросят 2000 и 5000 - вы какое выберете? Но по-другому я писать не могу...
ManBot; vasilykushnir; Abadonna; +3 Ответить 1
30. Александр Шишкин (Шёпот теней) 15.10.08 10:58
МАСТЕР!!!

семь футов под килем - 10 плюсов за разработку

воооОооот моё мнение...
31. Аркадий Кучер (Abadonna) 15.10.08 11:24
(29)>я вообще много времени уделяю интерфейсу и юзабилити
Полный одобрямс ;)
32. Константин (cabat) 15.10.08 13:44
пока не смотрел, но так как видел, откуда выросло :), уверен, что вещь качественная!
33. NoMAx (NoMax) 15.10.08 16:09
Потребовалось для работоспособности установить scriptru и scriptru_5.7_sp3_rereg.
34. Maljaev (maljaev) 15.10.08 17:12
(33) Винда 98 что ли? Необходим Windows Script Host 5.6, он даже для работы машиночитаемых форм необходим. Обычно на WinXP и Win2000 уже стоит. Если вдруг по каким-то причинам не стоит, то надо скачать и поставить, это как бы из разряда musthave. Например с сайта ГНИВЦа (http://www.gnivc.ru/Document.aspx?id=1017) - файл по ссылке "Доп_системные_средства_MS98-2000_Печать_НД_с_PDF417". Или ищите на сайте мелкософта или в нете файлы "WindowsXP-Windows2000-Script56-KB917344-x86-rus.exe" или "WindowsServer2003-Script56-KB917344-x86-rus.exe" или "Windows9x-Script56-KB917344-x86-rus.exe". Но повторяю, это если еще не стоит, мелкософт сейчас во все дистрибутивы виндов по умолчанию эти библиотеки засовывает, так что 99% что у вас это уже есть. Возможно, в какие-то пиратские сборки виндов не включают для экономии...
35. Maljaev (maljaev) 15.10.08 17:14
(34) Из ссылки скобки уберите.
36. Maljaev (maljaev) 16.10.08 17:09
Только что почитил конфиги клиента на типовой БУ, размеры этих файлов были от 2.5мб до 4.5мб. То-то думаю, че это бухгалтерия на двухпроцессорном ксеоне так тормозит... За недостатком времени очистил только от параметров "РеглОтчетНастройка*", тем не менее размеры конфигов сократились в 20 раз - база залетала.
37. Аркадий Кучер (Abadonna) 16.10.08 18:01
Я со всех отчетов убираю панель инструментов, фиг они у меня насохраняют особо ;)
Только то, что я посчитаю нужным
38. Maljaev (maljaev) 16.10.08 22:58
(37) А это неважно. Настройки списков регламент.отч. 1с сохраняет автоматически, независимо от того хочешь ты этого или нет, и именно эти настройки в основном грузят бухгалтерию.
39. Аркадий Кучер (Abadonna) 17.10.08 05:44
(0) Сань, цени: завел под твои разработку папку "Маляев" ;)
До этого были только "АЛьФ" и "Abadonna" :)))))))))))))
40. Maljaev (maljaev) 17.10.08 06:53
(39) Круто. И сколько их в моей папке? Или ты с расчетом на будущее? Надо изучать восьмерку, чувствую себя динозавром... :(
41. Аркадий Кучер (Abadonna) 17.10.08 07:04
(40) Конечно, с расчетом! Щас пока только эта замечательная штука там ;)
42. Оракул Айметдинов (jhfrek) 18.10.08 11:35
Хм... Надо будет тоже папку завести...
43. Михаил Семенов (Shaman100M) 18.10.08 15:51
(36) Вот вот, и я о том же. Пора усовершенствовать выполнение для нескольких выбранных баз (как в этом примере, - десятка-два типовых бухий)
Я попробовал, - прога настолько сделана удобна, что добавления кода для этой фишки минимальны. Зато, насколько быстрее, - одним махом все типовые...
(6) не для присваивания, а для обычной очистки параметров содержание ссылочных значений не критично, и для нескольких баз, думаю потянет.

Изменения передал автору, как он решит, имхо.
44. Maljaev (maljaev) 18.10.08 16:32
(43) не, если тока для очистки то можно.
45. Maljaev (maljaev) 30.10.08 10:43
Обновил версию. Основные изменения:

1. Исправлен баг, приводящий к вылетам 1С, если размер одного параметра превышал 500 килобайт (мне на тестирование присылали файл, в котором один параметр был размером 7 мегабайт).
2. Теперь можно обрабатывать несколько баз одновременно (хоть все имеющиеся - скорость приемлемая).
3. Сделал мини-редактор файлов выражений фильтрации со специальным удобным функционалом.
46. Михаил Семенов (Shaman100M) 30.10.08 11:02
47. IP43 (IP43) 02.12.08 23:24
Круто. Но не хватает кнопки "Удалить архивы" т.е. все файлы 1cv7.cfg_ или я ее не вижу... И желательно для выбранных баз.
48. Сергей Наркелюн (snarkelun) 15.12.08 21:28
Буквально вчера нужна была обработка. У клиента файл здоровенный а компьютеры слабенькие. Плюсую.
49. Роман (ManBot) 18.01.09 21:48
Скажу за себя (адинистртора) и за нашего 1С разработчика (за вложения один в один + дллка, тобиш за сорцы)
+1
50. Олег Веселов (sml) 29.01.09 15:25
то (10) - мне интересно, ща как раз стоит задача при подключении через ОЛю к нескольким базам прописывать сохраняемый параметр "НеЗапрашиватьПодтверждениеПриВыходе". Попытался, было, тупо заставить ОЛю выполнить бач: СохранитьЗначение(), но эта коза не хотит ничего писать. Вот теперя ищу возможность редактировать cfg - файлу
51. Олег Веселов (sml) 29.01.09 17:57
кстати, классно ты список баз читаешь - я только додумался через текстовый файл получать - до объектов не дозрел. Еслиб было можно, еще б плюсов понаставил ;)))
52. Svetlana E (Svetlana_E) 15.12.09 09:56
Раньше просто удаляла этот файл, бухи ворчали, но... А теперь - красота!
53. Александр Курашов (KurashovAlex) 18.12.09 10:21
1. А можно как-то скопировать в буфер обмена наименование сохраненного значения? Да и имя пользователя не помешало бы. (Может выводить их в таком же окне, как и само значение?)
2. При нажатии кнопки "Записать" обновляются файлы 1cv7.cfg и 1cv7.cfg_ даже если изменений не было. ИМХО, это не хорошо. Во-первых время на запись тратится, во-вторых даты файлов меняются. Мне, например, по файлу 1cv7.cfg удобно определять дату последнего входа пользователя в базу.
54. Алексей (aldan) 03.06.10 14:36
Спасибо за обработку.
Работа 1С существенно ускорилась, а полезные данные не потерялись.
55. Franchiser (Franchiser) 08.04.11 15:13
Не хватает очень хоть какого-нибудь просмотра значений, или я не вижу?
56. Serg Serega (Crazy1CC) 21.12.11 10:57
57. Delf (Delf) 11.01.12 23:09
Спасибо за разработку, давно уже плюс ставил и использую. Но вот понадобилась возможность копировать сохраненные значения от одного пользователя к другому и добавлять значения хотя бы примитивных типов. Может Вы сможете добавить такую возможность? С уважением ...
58. Александр Маляев (maljaev) 12.01.12 00:16
Сделать можно всё, но извини Delf, сейчас загружен несколькими проектами одновременно, времени нет. И объясни зачем добавлять значения, когда это можно легко сделать командой "СохранитьЗначение()". Это удалять нелегко, а добавить как раз просто.
59. Сергей Высоцкий (serega3914) 18.01.12 14:01
Спасибо отличная разработка!
60. Виталий Игнатьев (nike2fate) 27.03.12 01:08
Спасибо! То что нужно! +1!
61. Andre (vitn) 27.03.12 01:40
Да, разработка реально помогла.
62. Dmitry Bas (b-dm) 05.11.14 12:48
Хорошая обработка, надеюсь ещё многим поможет...Совет - все же описать подробнее какой из выложенных файлов что означает...
63. Борис Белов (BorisBelov) 04.01.15 09:06
Спасибо за полезную обработку. +1
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа