Скрипт для отключения пользователей из файловых баз 1с-Предприятия

22.04.10

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

Скрипт для отключения пользователей из файловых баз 1с-Предприятия. Убивает процессы на локальной машине и сетевые подключения к заданному каталогу. Неважно, какая платформа, 77 или 8Х, да и для других программ тоже можно применять.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Zakryt1c.zip
.zip 3,09Kb
694
694 Скачать (1 SM) Купить за 1 850 руб.

Для чего нужно? Если вы на ночь запланировали кучу обработок, а какая-то с$#а периодически оставляет базу открытой, можно, конечно, понадеяться на ОбработкаОжидания() и ЗавершитьРаботуСистемы().

Вот только если в нужный момент 1с-Предприятие будет обрабатывать длинный отчет, или просто зависнет, или приложение закроется, а процесс останется, то будет облом. Тут нужно рубить шашкой! А шашка - вот она.

Разработка не моя, вот ссылка на первоисточник (c)Александр Кочуров http://v7backup.narod.ru/

Я только выцарапал нужные скрипты из большого и в остальном не нужного мне проекта.

Автор разрешил мне публиковать этот кусок со ссылкой на первоисточник.

Работает с версиями системы  Win2000 prof и старше.

Здесь искал, не нашел разработок для файлового варианта, только для sql. Может, плохо искал? :)

 

Замеченные мною (bulpi) баги:

Процессы, запущенные в терминальном режиме, закрываются, если только

1)пользователь, запускающий скрипт - Администратор

или

2)пользователь, запускающий скрипт, и пользователи терминалов входили под одним логином

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7770    55    22    

66

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8843    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10428    36    24    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187984    1138    0    

912

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

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

14400 руб.

29.04.2020    32669    106    152    

73

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

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

4200 руб.

10.11.2015    62815    94    59    

79

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72788    625    45    

84

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    9832    7    4    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3968 23.04.10 06:58 Сейчас в теме
(0)
Здесь искал, не нашел разработок для файлового варианта, только для sql.

Это что за шутки? Убивается процесс , при чем тут какой вариант базы?
Может, плохо искал?

Именно, вот только моих (а и другие наверняка есть)
http://infostart.ru/public/66153/
http://infostart.ru/public/16662/
http://infostart.ru/public/14758/
http://infostart.ru/public/14569/
http://infostart.ru/public/59436/
да и вообще есть taskkill родной виндососовский
2. bulpi 217 23.04.10 08:12 Сейчас в теме
(1)
Спасибо. А все эти замечательные разработки отключают подключение к каталогу базы ПО СЕТИ (что абсолютно необходимо при использовании файл-сервера) ?
3. bulpi 217 23.04.10 13:35 Сейчас в теме
(1)
Ну так как? Или дальше - тишина (с) Шекспир ? :)
Оно конечно, можно поплеваться ссылками и забыть. Добрее надо быть к людям. Не все ж такие умные, как Вы. :D
9. Abadonna 3968 24.04.10 20:11 Сейчас в теме
А теперь могу и разжевать:
http://infostart.ru/public/14758/ и
http://infostart.ru/public/16662/
- отрубят всех при работе в терминальном режиме
http://infostart.ru/public/19242/ - закроет все сетевые файлы, когда движок у каждого юзверя, а база - на файловом сервере (т.е как раз и отрубит их по сети)
А, кроме того, в (1) я писал про taskkill, так что смотри и (8)
P.S. И не раздражай модератора :D Шучу
4. jmw 61 24.04.10 07:55 Сейчас в теме
У меня почему-то на 147 строчку ругается:
Const ForReading = 1, ForWriting = 2, ForAppending = 8 ' константа для объекта Scripting.FileSystemObject

Да и зачем изобретать такой сложный велосипед, если достаточно одной команды:
TASKKILL /F /IM 1c* /T
5. bulpi 217 24.04.10 16:23 Сейчас в теме
(4)
Насчет taskkill , пожалуй, согласен. Но та часть, которая реализует отключение по сети , с помощью taskkill никак не сделается. А насчет ошибки - ???? без комментариев. Никогда не было. Какая система?
6. Abadonna 3968 24.04.10 16:37 Сейчас в теме
(4)
Ну так как? Или дальше - тишина (с) Шекспир ?

Если ты считаешь, что мое драгоценной внимание, будет целиком посвящено данной разработке, то ты сильно ошибаешься ;) :D
7. bulpi 217 24.04.10 17:49 Сейчас в теме
(6) Кто сказал "А", должен говорить и "Б". Так как насчет отключения процессов по сети? Времени много не надо, просто ДА или НЕТ.
8. Abadonna 3968 24.04.10 20:03 Сейчас в теме
Кто сказал "А", должен говорить и "Б"

Для начала: Б. Доволен?

taskkill [/s компьютер] [/u домен\пользователь [/p пароль]]] [/fi имя_фильтра] [/pid код_процесса]|[/im имя_образа] [/f][/t]

Параметры
/s компьютер
Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.
/u домен\
пользователь
Выполнение команды с разрешениями учетной записи пользователя, который указан как пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.
/p пароль
Определяет пароль учетной записи пользователя, заданной параметром /u.
/fi имя_фильтра
Показать

Обычно [/s компьютер] даже очень достаточно, чтобы отрубить процесс по сети
10. bulpi 217 24.04.10 23:21 Сейчас в теме
(8),(9)
Спасибо.
Но я буду нудным. taskkill - замечательная вещь для закрытия процессов на самой машине. Но для закрытия процессов, обращающихся к сетевой папке, он не годится. Ключ /S не поможет, т.к. заранее неизвестно имя или адрес компа, где зарывать. Вот разработка из п.9 (http://infostart.ru/public/19242/)
это вроде бы то, что надо. Но и тут засада! Где режим командной строки ? Задача состоит в том, чтобы ночью, когда нет никого, запустить программку, а потом уже что кому надо, кому бэкап, кому переиндексацию и др. Если нет режима командной строки в замечательной Вашей программке CloseNetFiles, то где возьмется НОЧЬЮ оператор, который нажмет нужные кнопки?
11. bulpi 217 26.04.10 21:44 Сейчас в теме
Мне кажется, пора подвести итоги и закрыть дискуссию :) На сайте много подобных разработок, я действительно плохо искал. Однако разработки, полностью перекрывающей возможности обсуждаемой, пока не нашлось (может , она и есть, сайт большой). Таким образом, имеем слабые элементы новизны :) и позволяем публикации жить. Кому-нибудь, может быть, пригодится.
12. Enya_06 28.04.10 09:05 Сейчас в теме
Разработочка вполне не плохая...очень часто нужна бывает))) вот только когда будет универсальная... :(
Oleg_nsk; +1 Ответить
13. bulpi 217 28.04.10 12:24 Сейчас в теме
(12)Универсальная в каком смысле?
14. Enya_06 28.04.10 20:08 Сейчас в теме
(13)Да у каждой обработки свои баги...но видимо пока идеала никто еще не накодил! Да просто очень полезная вещь, от юзеров которые по каким то либо причинам 1с ку не вырубают в офисах)) Экономит время и нервы)
15. Sykoku 101 29.04.10 11:57 Сейчас в теме
Судя по коду, вся "сложность" данной обработки на Басике - получение списка пользователей и скармливание оного все тому же горячо нелюбимому TaskKill'у.
Это делается проще и быстрее. да еще и штатными средствами.

query session > c:\term.txt
for /F "eol=; tokens=3 skip=3" %i in (c:\term.txt) do tsdiscon %i

При этом хотелось бы напомнить, что оное действие аналогично нажатию кнопки "Reset".

Нормальные люди используют
echo y | logoff rdp-tcp // (или указывают свой протокол.)

Это штатная команда для logoff'а всех сеансов на некотором протоколе, т.е. на TCP/IP (имена соединений перечисляются в Terminal Server Configuration; если есть еще Citrix, то могут быть еще ica-tcp, ica-ipx)

При запуске "logoff rdp-tcp" эта прога спрашивает "If you reset this session, all users using this protocol will be logged off. Continue (y/n)?". "echo y" заставляет ответить этой команде "y"

Для удаления всех соединений, кроме себя (текущего):
код
FOR /F "eol=> skip=1 tokens=1,2,3" %%i IN ('quser') DO RESET SESSION %%k

(можно просто tokens=3 и использовать reset session %%i; в моем варианте с tokens=1,2,3 в %%i будет имя пользователя, которое можно передавать в скрипт, выполняющийся в DO, а в %%k - session id). Символом ">" помечается текущее соединение (%%i включает в себя этот символ), поэтому eol=> эту строку "комментируем" и не учитываем при убивании сеансов.

А вот если задача стоит завершить сеанс корректно, то тогда придется в глобальном модуле вставить

ОбработкаОжидания("ЗавершениеРаботы1С",300);

И вставить процедуру

Процедура ЗавершениеРаботы1С()
ТекВр=ТекущееВремя();
Если (ТекВр>"23:00:00") Тогда
ЗавершитьРаботуСистемы(0);
КонецЕсли;
КонецПроцедуры
19. bulpi 217 29.04.10 17:16 Сейчас в теме
(15)
Хм.. сколько оказывается всего умного придумали разные умные люди! :D Но все таки по сети так не отключиться, ИМХО, только на этом копьютере. Вариант с ОбработкойОжидания() в 1с точно не годится, даже не надо его вспоминать по вышеизложенным причинам.
20. Sykoku 101 29.04.10 19:18 Сейчас в теме
(19)
А кто сначала мешает попытаться сначала "по хорошему" выгнать, а затем - по плохому?
Сложность в проверке условий? - Разнести в Scheduled с интервалом в 5-10 минут. И выполнять от имени Админа.
21. bulpi 217 30.04.10 11:29 Сейчас в теме
(20)
Согласен. Но меня и со скриптом заклевали по поводу отсутствия новизны. А если бы я еще написАл про тривиальную ОбработкаОжидания... Вобще бы линчевали морально ;)
16. Sykoku 101 29.04.10 12:07 Сейчас в теме
Здесь искал, не нашел разработок для файлового варианта, только для sql. Может, плохо искал? :)


Плохо читал свой-же код.
cscript Kill1c.vbs //x //Nologo //t:60 "C:\Program Files\1Cv77sql\BIN\1cv7s.exe" "C:\1C\temp" "C:\temp\log.log"

1Cv77sql - это типа файл-серверный вариант?
18. bulpi 217 29.04.10 17:13 Сейчас в теме
(16)
Нет, sql здесь ни при чем. Просто файл 1cv7s открывает и sql базы, и файловые. У меня были файловые базы, а sql-версию использовал просто для удобства - патч Саурона только для sql.
17. Sykoku 101 29.04.10 12:08 Сейчас в теме
Можно еще правами на сервере поиграться. Например.

Закладка Sessions позволяет установить ограничения сеанса.

Вы можете установить период неактивности, по истечении которого производится автоматическая разрегистрация. Это особенно полезно в модемных соединениях; освободившееся соединение может использовать другой пользователь. Особо умные пользователи могут "обманывать" неактивность, просто периодически перемещая мышь. Вот почему вы можете еще установить максимальное время активности сеанса. Это предотвращает "монополизирование" пользователем соединения. На закладке Sessions также можно указать, что делать при отключении пользователя - принудительно завершить сеанс или оставить его работать. Закрытие сеансов предотвращает сервер от "забивания" работающими приложениями. С другой стороны, если оставить сеанс работающим, то пользователь может позднее снова подключиться к нему и продолжить работу. Я рекомендую завершать сеансы при отключении, но оставлять работать сеансы администраторов и отдельных важных пользователей. Администраторы часто запускают процессы, требующих много времени для свой работы. Если разрешить пользователю отключаться без закрытия саенсов, то пользователь может подключиться, запустить приложение, отключиться, пойти пообедать, потом снова вернуться, подключиться и закончить работу.
:D
22. erudite 22.02.11 12:13 Сейчас в теме
Автору - зачет (в т.ч. за грамотные ответы). Поставил +
Оставьте свое сообщение