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

22.04.10

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

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

Файлы

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

Наименование Скачано Купить файл
Zakryt1c.zip
.zip 3,09Kb
694 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

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

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

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

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

 

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

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

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

или

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

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

См. также

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

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

24900 руб.

20.08.2024    68768    365    164    

315

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

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

17000 руб.

10.11.2023    25350    93    46    

102

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

24400 руб.

06.12.2023    22812    80    10    

113

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

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

14640 руб.

29.04.2020    50235    136    162    

92

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    1742    2    0    

20

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    46035    31    13    

49

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

Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"

23999 руб.

20.02.2026    1276    1    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3977 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 218 23.04.10 08:12 Сейчас в теме
(1)
Спасибо. А все эти замечательные разработки отключают подключение к каталогу базы ПО СЕТИ (что абсолютно необходимо при использовании файл-сервера) ?
3. bulpi 218 23.04.10 13:35 Сейчас в теме
(1)
Ну так как? Или дальше - тишина (с) Шекспир ? :)
Оно конечно, можно поплеваться ссылками и забыть. Добрее надо быть к людям. Не все ж такие умные, как Вы. :D
9. Abadonna 3977 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 218 24.04.10 16:23 Сейчас в теме
(4)
Насчет taskkill , пожалуй, согласен. Но та часть, которая реализует отключение по сети , с помощью taskkill никак не сделается. А насчет ошибки - ???? без комментариев. Никогда не было. Какая система?
6. Abadonna 3977 24.04.10 16:37 Сейчас в теме
(4)
Ну так как? Или дальше - тишина (с) Шекспир ?

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

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

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

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

Обычно [/s компьютер] даже очень достаточно, чтобы отрубить процесс по сети
10. bulpi 218 24.04.10 23:21 Сейчас в теме
(8),(9)
Спасибо.
Но я буду нудным. taskkill - замечательная вещь для закрытия процессов на самой машине. Но для закрытия процессов, обращающихся к сетевой папке, он не годится. Ключ /S не поможет, т.к. заранее неизвестно имя или адрес компа, где зарывать. Вот разработка из п.9 (http://infostart.ru/public/19242/)
это вроде бы то, что надо. Но и тут засада! Где режим командной строки ? Задача состоит в том, чтобы ночью, когда нет никого, запустить программку, а потом уже что кому надо, кому бэкап, кому переиндексацию и др. Если нет режима командной строки в замечательной Вашей программке CloseNetFiles, то где возьмется НОЧЬЮ оператор, который нажмет нужные кнопки?
11. bulpi 218 26.04.10 21:44 Сейчас в теме
Мне кажется, пора подвести итоги и закрыть дискуссию :) На сайте много подобных разработок, я действительно плохо искал. Однако разработки, полностью перекрывающей возможности обсуждаемой, пока не нашлось (может , она и есть, сайт большой). Таким образом, имеем слабые элементы новизны :) и позволяем публикации жить. Кому-нибудь, может быть, пригодится.
12. Enya_06 28.04.10 09:05 Сейчас в теме
Разработочка вполне не плохая...очень часто нужна бывает))) вот только когда будет универсальная... :(
Oleg_nsk; +1 Ответить
13. bulpi 218 28.04.10 12:24 Сейчас в теме
(12)Универсальная в каком смысле?
14. Enya_06 28.04.10 20:08 Сейчас в теме
(13)Да у каждой обработки свои баги...но видимо пока идеала никто еще не накодил! Да просто очень полезная вещь, от юзеров которые по каким то либо причинам 1с ку не вырубают в офисах)) Экономит время и нервы)
15. Sykoku 102 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 218 29.04.10 17:16 Сейчас в теме
(15)
Хм.. сколько оказывается всего умного придумали разные умные люди! :D Но все таки по сети так не отключиться, ИМХО, только на этом копьютере. Вариант с ОбработкойОжидания() в 1с точно не годится, даже не надо его вспоминать по вышеизложенным причинам.
20. Sykoku 102 29.04.10 19:18 Сейчас в теме
(19)
А кто сначала мешает попытаться сначала "по хорошему" выгнать, а затем - по плохому?
Сложность в проверке условий? - Разнести в Scheduled с интервалом в 5-10 минут. И выполнять от имени Админа.
21. bulpi 218 30.04.10 11:29 Сейчас в теме
(20)
Согласен. Но меня и со скриптом заклевали по поводу отсутствия новизны. А если бы я еще написАл про тривиальную ОбработкаОжидания... Вобще бы линчевали морально ;)
16. Sykoku 102 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 218 29.04.10 17:13 Сейчас в теме
(16)
Нет, sql здесь ни при чем. Просто файл 1cv7s открывает и sql базы, и файловые. У меня были файловые базы, а sql-версию использовал просто для удобства - патч Саурона только для sql.
17. Sykoku 102 29.04.10 12:08 Сейчас в теме
Можно еще правами на сервере поиграться. Например.

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

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