1С – пастырь

25.09.12

Администрирование - Информационная безопасность

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

При отсутствии отклика от 1С компьютера в течение 20 минут должно формироваться почтовое извещение.

Повторно такое извещение должно отправляться только через час.

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

В начале дня не должно быть ложных тревог, должен быть некоторый задел.

Если компьютер начал работу после извещения, об этом должно тоже приходить извещение.

Реализация

Для семафоров работы 1с у сотрудников я выделил в локальной сети общедоступный каталог. Флажки сделал в виде файлов, имя которых состояло из названия компьютеров:

 

 

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

 

На компьютерах сотрудников периодически, раз в 3 минуты, выполнялся код вида:

ИмяФайла = "\\192.168.5.210\1c_obmen\here\" + СокрЛП(ИмяКомпьютера()) + ".xml";

Ф = Новый ТекстовыйДокумент();

Ф.Записать(ИмяФайла);

 

В центре периодически выполнялся код вида:

//Пути, настройки

ИмяКаталогаПроверок = "c:\1c_obmen\here\";

ФайлСохраненияНастроек = ФРАНЧ.ПолучитьКаталогБазы() + "\check-settings.txt";

КоличествоМинутДляИзвещения = 20;

КоличествоМинутДляПовторногоИзвещения = 60;

КоличествоМинутЗащитыОтСтартаКомпа = 45; //45 минут с момента старта компа ждем, не работаем

ИсхПолучатели = "boss@office.ru, support@office.ru, security@office.ru";

 

//Восстанавливаем из файла список последних оповещений

Попытка

       Т = Новый ТекстовыйДокумент();

       Т.Прочитать(ФайлСохраненияНастроек);

       СтруктураНастроек = ЗначениеИзСтрокиВнутр(Т.ПолучитьТекст());

Исключение

       СтруктураНастроек = Новый Структура("Компы", Новый ТаблицаЗначений());

       СтруктураНастроек.Компы.Колонки.Добавить("Комп");

       СтруктураНастроек.Компы.Колонки.Добавить("ДатаПоследнегоИзвещения");

       СтруктураНастроек.Вставить("ДатаПоследнейПроверки", '00010101');

КонецПопытки;

 

//Получаем список компов, от которых есть отзывы на сервере

ТекЗадача = Справочники._ЗадачиПоРасписанию.НайтиПоКоду("ПЭПР1СРАБ");

З = Новый Запрос(

"ВЫБРАТЬ

|      _ЗадачиПоРасписаниюМеста.Комп.Ссылка КАК Ссылка,

|      _ЗадачиПоРасписаниюМеста.Комп.Код КАК Код

|ИЗ

|      Справочник._ЗадачиПоРасписанию.Места КАК _ЗадачиПоРасписаниюМеста ГДЕ Ссылка = &ТекЗадача");

З.УстановитьПараметр("ТекЗадача", ТекЗадача);

Сообщить(ТекЗадача);

ТЗ = З.Выполнить().Выгрузить();

 

//Перебираем компы

Для Каждого Строка ИЗ ТЗ Цикл

       ТекКомп = Строка.Ссылка;

       //Проверяем, что текущее время подпадает под график работы сотрудника на компе

       СтруктураДанныхКомпа = _УчетРабочегоВремени.ПолучитьДанныеПоУчетуРабочегоВремениНаДату(ТекущаяДата(), ТекКомп);

       ВремяНачалаРаботыКомпа = СтруктураДанныхКомп.ВремяНачалаРаботы;

       ВремяОкончанияРаботыКомпа = СтруктураДанныхКомпа.ВремяОкончанияРаботы;

       Если НЕ ЗначениеЗаполнено(ВремяНачалаРаботыКомпа) ИЛИ НЕ ЗначениеЗаполнено(ВремяОкончанияРаботыКомпа) Тогда

             Продолжить;

       КонецЕсли;

      

       Сейчас = ТекущаяДата();

       ВремяСейчас = Дата(1, 1, 1, Час(Сейчас), Минута(Сейчас), Секунда(Сейчас));

      

       //Если комп еще не работает, не извещать (оставляем небольшой задел при старте компа)...

       Если ВремяСейчас < (ВремяНачалаРаботыКомпа + КоличествоМинутЗащитыОтСтартаКомпа * 60) ИЛИ ВремяСейчас > ВремяОкончанияРаботыКомпа Тогда

             Продолжить;

       КонецЕсли;

      

       //Проверяем извещения

       ТекКод = СокрЛП(Строка.Код);

       Ф = Новый Файл(ИмяКаталогаПроверок + "\" + ТекКод + ".xml");

       Если НЕ Ф.Существует() Тогда

             ДатаПроверки = '00010101';

       Иначе

             ДатаПроверки = Ф.ПолучитьВремяИзменения();

       КонецЕсли;

       //Сообщить("" + Строка.Ссылка + ": " + ДатаПроверки );

      

       Получатели = ИсхПолучатели;

       //Получатели = Получатели + "," + ТекКомп.ЭлектроннаяПочта;

       Получатели = Получатели + "," + ФРАНЧ.ПолучитьПочтовыеАдресаРуководителейСотрудников(ТекКомп);

       Получатели = ФРАНЧ.ДатьУникальныеПочтовыеАдреса(Получатели);

 

      

       ОтправлятьПисьмо = ложь;

      

      

       //Получаем строку с информацией о компе

       ИскСтрока = СтруктураНастроек.Компы.Найти(Строка.Ссылка, "Комп");

       ДатаПоследнегоИзвещения = '00010101';

       Если ИскСтрока = Неопределено Тогда

             ИскСтрока = СтруктураНастроек.Компы.Добавить();

             ИскСтрока.Комп = Строка.Ссылка;

             ИскСтрока.ДатаПоследнегоИзвещения = '00010101';

       КонецЕсли;

      

       //Получаем дату последнего извещения. Если это не сегодняшняя дата, сбрасываем ее...

       Если НачалоДня(ИскСтрока.ДатаПоследнегоИзвещения) <> НачалоДня(ТекущаяДата()) Тогда

             ИскСтрока.ДатаПоследнегоИзвещения = '00010101';

       КонецЕсли;

       ДатаПоследнегоИзвещения = ИскСтрока.ДатаПоследнегоИзвещения;

 

      

       //Если проверка не пройдена, т.е. комп не доложился...

       Если ТекущаяДата() - ДатаПроверки  > КоличествоМинутДляИзвещения * 60 Тогда

             //Нужно ли извещать

             //Если ранее не извещали или прошло нужное количество минут

             Извещать = НЕ ЗначениеЗаполнено(ДатаПоследнегоИзвещения) ИЛИ ТекущаяДата() - ДатаПоследнегоИзвещения > КоличествоМинутДляПовторногоИзвещения * 60;           

             Если Извещать Тогда

                    //Извещаем

                    ИскСтрока.ДатаПоследнегоИзвещения = ТекущаяДата();

                   

                    //Формируем письмо

                    Тема = "Не запущена база 1с на компе: " + Строка.Ссылка + " Нет подтверждения " + ?(НЕ ЗначениеЗаполнено(ДатаПроверки), "совсем", "" + Цел((ТекущаяДата() - ДатаПроверки) / 60) + " минут") + ".";

                    Тело = Тема;

                    Если ЗначениеЗаполнено(ДатаПоследнегоИзвещения) Тогда

                           Тело = Тело + Символы.ПС + "Дата последней активности компа: " + ?(НЕ ЗначениеЗаполнено(ДатаПроверки), " не указана", ДатаПроверки);

                           Тело = Тело + Символы.ПС + "Дата последнего извещения: " + ДатаПоследнегоИзвещения;

                    КонецЕсли;

                    //Нужно отправлять письмо

                    ОтправлятьПисьмо = истина;

             КонецЕсли;

            

       Иначе//Если проверка пройдена, т.е. комп доложился нормально

             //Если извещение было

             Если ЗначениеЗаполнено(ДатаПоследнегоИзвещения) Тогда

                    Если  ТекущаяДата() - ДатаПоследнегоИзвещения < КоличествоМинутДляПовторногоИзвещения * 60 Тогда

                           Тема = "База 1с опять заработала после не пройденной проверки на компе:  " + Строка.Ссылка + " Спустя " + Цел((ТекущаяДата() - ДатаПоследнегоИзвещения) / 60) + " минут после последнего извещения.";

                           Тело = Тема;

                           Если ЗначениеЗаполнено(ДатаПоследнегоИзвещения) Тогда

                                  Тело = Тело + Символы.ПС + "Дата последней активности компа: " + ?(НЕ ЗначениеЗаполнено(ДатаПроверки), " не указана", ДатаПроверки);

                                  Тело = Тело + Символы.ПС + "Дата последнего извещения: " + ДатаПоследнегоИзвещения;

                           КонецЕсли;

                           //Нужно отправлять письмо

                           ОтправлятьПисьмо = истина;

                           ИскСтрока.ДатаПоследнегоИзвещения = '00010101'; //Сбрасываем дату последнего извещения

                    КонецЕсли;

             КонецЕсли;

       КонецЕсли;

      

       //Отправляем письмо

       Если ОтправлятьПисьмо Тогда

             Сообщить(Тема);

             Сообщить(Тело);

             Тело = Тело + Символы.ПС + "Отправлено в: " + ТекущаяДата();

             ФРАНЧ.ОтправитьПисьмо(, Получатели, Тема, Тело);

       КонецЕсли;

      

КонецЦикла;

 

 

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

Т = Новый ТекстовыйДокумент();

Т.УстановитьТекст(ЗначениеВСтрокуВнутр(СтруктураНастроек));

Т.Вывод = ИспользованиеВывода.Разрешить;

Т.Записать(ФайлСохраненияНастроек);

Сообщить(ФайлСохраненияНастроек);

Недостатки решения и резюме

  1. Можно эмулировать работу 1С, создавая вручную файл. Можно обойти подписью файла хэшем. Но решено, что и так надежно. Аналогично, можно удалять чужие файлы из вредности, но аналогично, не принципиально.
  2. При отсутствии связи с компьютером возникает ложная тревога. Но это даже полезно, т.к. своевременно выявляются обрывы связи.

 

Таким образом достаточно просто была решена поставленная заказчиком задача.

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14373    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    2392    PROSTO-1C    9    

29

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1570    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

5 стартмани

24.04.2023    5396    14    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    5928    32    Silenser    12    

23

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

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9174    Tavalik    46    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DimaP 63 25.09.12 18:48 Сейчас в теме
3. fixin 4252 25.09.12 22:52 Сейчас в теме
(1) Да я люблю такие задачи, где простым эффектом решаютс сурьезные весчы.
(2) вы про какие файлы? про файл хранения настроек или файл семафоров. Файл семафоров часто меняется, незачем дергать базу. Кроме того, их можно и на FTP размещать, Если чо.
7. AlexO 135 26.09.12 09:18 Сейчас в теме
(3)
Сергей, есть вполне себе надежные и ппростые средства системного администрирования и логгирования запуска и работы приложений.
Но жду от вас 1С:Управление межланетными полетами. С обязательным заделом под посещение Марса и Венеры :)
14. fixin 4252 26.09.12 11:18 Сейчас в теме
(7) бесплатные, гибкие? Гибче, чем 1С? Дайде два.
15. babys 90 26.09.12 11:55 Сейчас в теме
(14) курите RTFM по винде, и будет вам щасте :)
Приходилось решать подобную проблему, решили виндовым скриптом, это в доменах.

2 fixin, а как быть с компами в НТТ? Куда, и главное когда, они будут выкладывать свои файлики ;)
19. fixin 4252 26.09.12 12:10 Сейчас в теме
(15) бла-бла. Если знаете, пишите статью. А так больше на разборки времени потратится. Можно конечно аудит на запуск назначить. но потом этот аудит надо в центр передавать как-то, тем более компы не в домене. Да ну нафиг, в виндовом гуане копаться. Тут все под рукой и делается быстро.
(18) базы файловые. К тому же если бы базы были и серверные, они бы хранились на разных серверах. VPN - медленная, 1с через нее не взлетит.
23. AzzZ 26.09.12 13:42 Сейчас в теме
Жесть какая ))) Согласен с (7) AlexO, есть другие способы решения данной проблемы, куда более мм... как бы это сказать, достойные что ль. Достаточно одного грамотного сис. админа.
Это как сделать 25 печатных форм по каждой организации "забыв" что есть такая вещь как параметры в макете, а информацию можно взять из справочника.
24. fixin 4252 26.09.12 14:53 Сейчас в теме
(23) бла, бла, бла. Способы в студию!
2. LelikOFF 25.09.12 20:22 Сейчас в теме
Я бы отказался (что и сделал в аналогичной задаче) от такого списка файлов, и делал бы записи в регистр сведений
AlexO; RomaLut; +2 Ответить
4. Bacemo 25.09.12 23:11 Сейчас в теме
Идея нормальная. Пригодится для своих задач.
6. AlexO 135 26.09.12 09:14 Сейчас в теме
(4) Bacemo,
да вам все пригодится - какую обработку не возьми из последних :)
Что за задачи у вас такие?
8. ander_ 26.09.12 09:25 Сейчас в теме
(6) AlexO, видимо задача побольше сообщений набить :)
16. tango 506 26.09.12 11:56 Сейчас в теме
(6) AlexO, у товарища задача простая - маней на скачку наскрести
5. stepan_shock 112 26.09.12 09:10 Сейчас в теме
Ну запустил, клиент 1С, свернул и ушел пить кофе...
11. free-lancer-2018 172 26.09.12 10:50 Сейчас в теме
(5) stepan_shock, дальше создается зондекоманда, которая врывается к клиенту и ложит его лицом в пол :)
12. stepan_shock 112 26.09.12 11:07 Сейчас в теме
(11) adminfo2002, я бы сказал прямо в кофе:)
49. Abadonna 3958 28.09.12 02:10 Сейчас в теме
(5)
Ну запустил, клиент 1С, свернул и ушел пить кофе...

Специально для таких сволочей метод УстановитьКонтрольАктивности() вот отсюда ;) MiracleNative
(37)
В случае терминального доступа ИмяКомпьютера() вернет сервер ДЛЯ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ

Отправляю туда же, свойство ИмяКлиентаТерминала - реальный комп, с которого зашли в терминал.
9. KapasMordorov 428 26.09.12 10:18 Сейчас в теме
1С: Назойливое очко Саурона.

Если всё выполняется в 1С же, почему бы список активных пользователей не использовать?
andron79; free-lancer-2018; ryst; +3 Ответить
13. fixin 4252 26.09.12 11:17 Сейчас в теме
(9)(10) перечитайте пожалуйста условие задачи. Может быть я конечно не внятно объяснил, но о каком списке активных пользователей может идти речь, если речь идет о различных базах 1с в територриально удаленных подразделениях, пусть и связанных в VPN, замените для просветления VPN на FTP, может быть так проще будет понятно.
Речь вообще то о контроле за работой в РИБ базах.
18. KapasMordorov 428 26.09.12 12:08 Сейчас в теме
(13)
если базы на сервере, то еще и информация на сервере 1С есть
10. ryst 26.09.12 10:36 Сейчас в теме
Объясните пож., зачем городить огород с файлами когда можно сделать тоже самое на активных пользователях и регистре сведений? Плюс безопасность (например чтобы никто удалить/поменять немог) можно было бы реализовать средствами 1С.
free-lancer-2018; +1 Ответить
17. wunderland 201 26.09.12 12:01 Сейчас в теме
чтобы никто не лазил по файлам руками можно либо на FTP хранить либо на SMB и сделать как с сусликом, который есть, но его никто не видит - запретить ls
З.Ы. - картинка очень понравилась :)
20. wowkai 4 26.09.12 12:39 Сейчас в теме
а можно опубликовать текст скрипта, интересно опробовать у себя.
21. comol 5046 26.09.12 13:04 Сейчас в теме
Что-то по-моему перемудрили... Костыль какой-то получился. Типичная задача так называемого эхо-сервера. Создаётся база "Прослушиватель", а в остальных просто раз в период отсылаются пакеты. Для прослушивателя понадобится ВК. Таких куча. Как пример http://infostart.ru/public/69992/ Отсылку можно сделать и без ВК... через WinSock. Хотя если делать правильно то на клиенте нужна ВК key hook-ера, чтобы обрабатывать нажатия клавиш пользователей в 1С :)
22. fixin 4252 26.09.12 13:11 Сейчас в теме
(21) и это вы называете перемудрили? ;-)
имхо с пакетами как раз сложнее. ;-)
39. comol 5046 27.09.12 14:50 Сейчас в теме
(21) comol, 3 строчки кода отсылка пакета... 10 строчек обработка отсылки... ну и 3 строчки на подключение ВК... решение задачи средствами для неё предназначенными...
41. fixin 4252 27.09.12 15:48 Сейчас в теме
(39) ну раз все так просто - в студию!
не забудьте проверить, что фаервол не будет резать ваши пакеты.
42. comol 5046 27.09.12 16:00 Сейчас в теме
(41) Вообще кто-то про VPN писал... надо сказать "мини эхо-сервер" гораздо более надежный и простой в плане администрирования механизм чем ftp сервер :)...
43. AlexO 135 27.09.12 16:18 Сейчас в теме
(42) comol,
да у него файервол и внутри канала работает... в противном случае Сергей всегда скажет - "а я че - я ни че, делов не знаю, я по 1с только.." :)
44. fixin 4252 27.09.12 16:50 Сейчас в теме
(42) даже проще чем каталог с общим доступом? ;-)

строчки - в студию. покажи, как это просто. а я протестирую. гыгыгы
47. comol 5046 27.09.12 23:14 Сейчас в теме
(44) Ну зачем же я баяны буду разводить... люди уже не раз всё писали: http://infostart.ru/public/119982/ http://infostart.ru/public/92596/ http://infostart.ru/public/69992/

Количество строчек кода думаю оцените :).
55. fixin 4252 01.10.12 11:31 Сейчас в теме
(47) это инструменты. напишите на них скрипт, бояном не будет. Это вам не бла-бла. ;-)
(49) у нас собственная система контроля активности, которую не обманешь.
(52) это все понятно, но это из пушки да по воробьям. ;-)
68. alexqc 150 03.10.12 12:01 Сейчас в теме
(55) ну я б не сказал что пушка... WS с апачем подымаются с пол-пинка (это вам не ИИС). Раз установленный никаких телодвижений более не требует - все остальное рулится 1Ской. Плюс нативная поддержка WS - не надо заморачиваться с форматом файлов и т.п., легко расширить в случае чего (вот захочет завтра заказчик чтобы не только обмен был, но и сообщения эскам посылать - что тогда?) и для программиста более прозрачно.
69. fixin 4252 03.10.12 12:38 Сейчас в теме
(68) это вы мне рассказываете, что WS подымается с полпинка? Да тут на ИС целая инструкция как его ставить. Да еще и интернет-сервер надо подымать, если в конторе его нет, а если есть - согласовывать с его админами. Кучу телодвижений ради пшика. И потом, веб-сервисы от 1с требуют ключей доступа и лишних лицензий, оно мне надо? ЧТобы лицензии в офисе отжирались на количество пользователей на точках?
71. AlexO 135 03.10.12 12:56 Сейчас в теме
(69)
Так и напрашивается название "1С-пластырь".
Уж не взыщите :))
p1l1gr1m; +1 Ответить
73. abc2000 83 03.10.12 19:56 Сейчас в теме
(69)
WS разве требует лицензий от 1С на количество подключений?
74. fixin 4252 03.10.12 22:23 Сейчас в теме
(73) пардон, с тонким килиентом перепутал. ;-)
75. alexqc 150 09.10.12 17:02 Сейчас в теме
(69) да, именно Вам, именно апач, именно с пол-пинка. Разумеется, я говорю это имея опыт и с апачем и с ИИСом.
А то что на ИС есть "инструкции" - ничего не значит, ибо все эти инструкции обычно в 3х картинках, и выглядят так:
1. Запустить инсталятор апача - поставить апач
2. Запустить инсталятор 1С - установить компонент работы с веб-сервером (если не установлен)
3. Запустить конфигуратор - выполнить публикацию.

Это не сложнее чем поднять виндовый ВПН (а там может еще с логинами/правами пое... придется) и легче чем настроить ФТП (как вы предлагали в (3) ), о чем уже говорилось.
76. fixin 4252 09.10.12 18:27 Сейчас в теме
(75) вот оно надо, получать опыт секса с апачем, если задача решается родными средствами 1с?
а ведь апач еще потом и админить надо, это не зиро-админинг систем.
77. alexqc 150 10.10.12 11:24 Сейчас в теме
(76) хм, вроде выразился понятно... Ну ладно, повторюсь - секс это как раз с ВПН: это там может потребуется настройка прав и раздача логинов; а апач в базовой/минимальной установке и есть "зеро-аминингс". Т.к. апач базово настроен на только отдачу каталога-сайта, практически все модули выключены, и ничего больше он сделать не может. Тем и хорош - с одной стороны, безопасен (все отключено), с другой - функцонал достаточен (при публикации конфигуратор сам пропишет загрузку модуля и пути к каталогу), с третьей - администрирование можно возложить на плечи 1С.

ЗЫ. Вы вообще со связкой 1С8+веб работали? По вашей категоричности виден явно негативный опыт, или некая предубежденность. Если я прав, предлагаю всеж еще поэкспериментировать - уверен, В/С вам понравятся.
78. fixin 4252 10.10.12 11:47 Сейчас в теме
(77) вы вообще осознаете, что вы пишите.
ВНП - это данная нам в ощущениях необходимость. Она и без 1с будет поднята.
А веб-сервис от 1с - это рюшечки, нафиг клиенту не нужные. Зачем ему доплачивать админу?

Со связкой 1с + веб-сервис я работал и апач поднимал. Там, где это нужно, это полезно, но не надо из пушки да по воробушкам...
25. AzzZ 26.09.12 15:23 Сейчас в теме
Эм, ну можете забить в поисковике строчку: "Учет программного обеспечения". Посмотреть на доступные варианты программ. Есть там и бесплатные по моему. По факту ничего против Вашего способа не имею, просто есть другие, вполне возможно проще и надежней.
27. fixin 4252 26.09.12 16:09 Сейчас в теме
(25)(26) все это неконкретика. я и сам посылать в Гугль умею. Пока не предложено других конкретных способов, буду юзать свой. ;-)

Конкретика - это озвучивание конкретного метода.
Например - назначить аудит на запуск и периодически скриптом скидывать журнал аудита в центр.
Тоже вариант, но надо узнавать, как ковырять журналы аудита программно. Это время.

Если будет конкретика - будем разговаривать. Если будут посылы в Гугл, отвечу симметрично.
dimaster; +1 Ответить
26. ПиН 26.09.12 15:49 Сейчас в теме
есть хорошая книжка Системное программирование, рекомендую...
28. alexware 26.09.12 20:43 Сейчас в теме
Считаю, что такое решение вполне имеет право на существование и представление здесь. Всё-таки не используется никакой другой инструментарий, кроме 1C. А это тоже плюс. Часто, на самом деле, для многих (меня в том числе) требуется больше времени на разработку при использовании другого инструментария (которым пользуешься редко). Замечу только, что в начале чтения сбивает с толку фраза "Для решения на компьютерах сотрудников я запускал скрипт, который создает файл в каталоге локальной VPN-сети". Лучше писать "код", а не "скрипт". Всё-таки под скриптом обычно подразумевается другое.
29. RustIG 1301 26.09.12 21:36 Сейчас в теме
Читать статью вечером после всего рабочего дня тяжело, особенно если в начале статьи не отвечается на вопрос "Зачем?" Зачем заказчику это нужно было? Где-то среди комментариев проскальзывает "Речь вообще-то о контроле за работой в РИБ базах." Но и этого мало для понимания. А хотелось бы понять. :)
30. RustIG 1301 26.09.12 21:46 Сейчас в теме
Поддерживаю автора в том, что (выражусь своими словами, возможно с которыми автор не согласится) "говорунов-критиканов" среди прокомментировавших публикацию через чур много, хотя покамест они сами не отличились в написании более-менее добротных статей. Что ж, приходится только мириться с этим.
И наверное, название статьи лучше поменять на "Пример реализации семафоров внешними файлами для РИБ". Сухо, ясно, конкретно.
А то от названия "1С -пастырь" ждет чего-то более увлекательного, от того наверное такая резкая критика: все завлекаются названием, а получают по мордасам не всем интересными (актуальными) семафорами. :)
31. KapasMordorov 428 27.09.12 07:40 Сейчас в теме
(30)
Да, название завлекательное. А дальше:
задача. По соображениям безопасности
...
Для семафоров работы 1с у сотрудников я выделил в локальной сети общедоступный каталог.
32. fixin 4252 27.09.12 07:51 Сейчас в теме
(31) как корабль назовете, так он и поплывет. Программирование - дело творческое. К названию тоже нужно подходить с огоньком. Чтобы и суть отражало и запоминалось и брэндировало.
33. AzzZ 27.09.12 08:59 Сейчас в теме
(30) Rustig, статьи на инфостарте добавляют ЧСВ, но по факту многим просто лень что-то выкладывать. На счет "пастыря" согласен, но тут уж хозяин барин.

(31) KapasMordorov, про папку и безопасность меня тоже порадовало. Не совсем понятно какое отношение безопасность имеет к нахождению пользователя за компом(о_О). Более того к нахождению пользователя в программе 1С. Т.е. если пользователя нет в 1С он нарушает какой-то регламент местной безопасности?

По поводу гугла и отсылок к аналогичному программному обеспечению, я увы не альтруист, и просто так что-либо объяснять или делать не буду. Нет желания учить что-то новое? - Пожалуйста, это Ваше дело.

"Чтобы запоминалось и брэндировало" - зачёт ;)
34. Psylocibine 27.09.12 09:06 Сейчас в теме
Идея нормальная. Пригодится для своих задач. (с)
35. kilokilo 18 27.09.12 09:43 Сейчас в теме
У нас другая задача решалась, но в результате можно так же отследить кто в базе и когда вошел.
Смысл: на все базы повешена процедура при входе, создающая COM соединение с одной центральной базой.
Получая список COM соединений - видим, кто там есть.
36. fixin 4252 27.09.12 11:18 Сейчас в теме
(35)и если сетка падает, никто не может зайти в базу.
как минимум, в вашей задаче требуется хранить очередь отложенных сообщений

(33) В данном случае в программе 1с реализован дополнительный контур безопасности, для которого требуется, чтобы 1с было запущено (типо подтверждения присутствия).
37. CheBurator 3119 27.09.12 13:02 Сейчас в теме
Кривое решение. В случае терминального доступа ИмяКомпьютера() вернет сервер ДЛЯ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ
38. fixin 4252 27.09.12 13:23 Сейчас в теме
(37) Чебуратор, не подходи буквально. На практике я использую не имя компьютера, а код РИБ-базы (из плана обмена). Так что все пучком. Упрощение сделано для наглядности. Кроме того, в данном случае же не используется терминал, а если бы использовался, я бы нашел, как обойти решение.
40. glek 119 27.09.12 14:51 Сейчас в теме
Хорошая идея. На карандаш
45. rommilk 3 27.09.12 16:55 Сейчас в теме
Можно все отслеживать по журналу регистрации, кто сколько отработал. Можно по com написать запрос к удаленным 1С-м.
46. fixin 4252 27.09.12 17:20 Сейчас в теме
(45) каталоги базы на удаленных точках закрыты из соображений безопасности, с COM обломитесь.
Анализ ЖР - это просто? бугога. К тому же это не оперативно.
48. comol 5046 27.09.12 23:18 Сейчас в теме
(46)
COM обломитесь
А вот с COM+.... было бы очень даже ничего http://infostart.ru/public/93643/
50. abc2000 83 28.09.12 03:20 Сейчас в теме
Я бы использовал бы VBscript на каждой рабочей станции в автозагрузке, что то типа этого:

set WshShell = WScript.CreateObject("WScript.Shell")
KL = true

do while KL
if WshShell.AppActivate("Microsoft Word") then
WriteWord()
KL = false
end if
WScript.Sleep 3000
loop

function WriteWord()
WshShell.SendKeys "HELLO WORLD!"
end function

Естественно "Microsoft Word", заменить на 1С8.exe А "function WriteWord()" передлать в "function SendMail()"
51. abc2000 83 28.09.12 03:32 Сейчас в теме
Письмо вообще не проблема организовать, ну таймер только вставить через сколько посылать :)

Sub MySendMail(recipient,msg,subject)
Dim objSession, oInbox, colMessages, oMessage, colRecipients

Set objSession = CreateObject("MAPI.Session")
objSession.Logon "A Valid User Profile"

Set oInbox = objSession.Inbox
Set colMessages = oInbox.Messages
Set oMessage = colMessages.Add()
Set colRecipients = oMessage.Recipients

colRecipients.Add recipient
colRecipients.Resolve

oMessage.Subject = subject
oMessage.Text = msg
oMessage.Send

objSession.Logoff
Set objSession = nothing

End Sub
52. alexqc 150 28.09.12 10:05 Сейчас в теме
Чтобы пользователи не мудрили с файлами - можно дать хитрые права на каталог, разрешив только создание но запретив запись. Чтобы не создавали файлы ручками - добавить механизм "подписи" файла - кидать туда время и сгенеренный по некому алгоритму хэш от остального содержимого (все упрется в то, моет ли пользователь узнать алгоритм генерации. но в конце концов есть шифрование модулей и вообще поставка без исходника).

Ну а лично я (если б встала задача получать пинги от удаленных 1Сок) такое бы делал через веб-сервисы - у нас же 1С8 а не 77 :) . Тогда бы отпали многие проблемы: с предоставлением файлового доступа; с удаленными, по HTTP работающими клиентами...
А поставить апач думаю автору/заказчику не будет проблемой.
53. comol 5046 28.09.12 10:32 Сейчас в теме
(52) alexqc, Да, Web сервисы правильнее всего были бы.
56. fixin 4252 01.10.12 11:34 Сейчас в теме
(53)(54) ага, куча лишнего инсталляций и администрирования ради банальной задачки. господа, соразмеряйте средства и цели. Одно дело, если веб-сервисы уже подняты, тогда да. А если не подняты, то и ну его.
57. comol 5046 01.10.12 13:26 Сейчас в теме
(56) Вообще web сервисы - нужен IIS и FTP сервер - нужен IIS (ну или apache и proftpd соответственно). Нужен только на сервере. ИХМО web сервер настроить проще чем ftp (не нужно квот, спец папок и т.п.). А более в чём разница не знаю...
58. fixin 4252 01.10.12 15:06 Сейчас в теме
(57) именно что ИМХО. в рамках VPN у клиента уже была расшаренная папка. Зачем добавлять гимора админу? Задачу нужно решать удобными клиенту средствами.
59. comol 5046 01.10.12 17:12 Сейчас в теме
(58) Ну не знаю... если таким образом рассуждать этак можно и остатки на справочниках хранить. "А зачем регистры, ведь в конфигурации уже есть справочники"... "Справочники клиенту более понятны"....
60. fixin 4252 01.10.12 18:11 Сейчас в теме
(59) демагогия detected. Справочники и регистры - это однородные элементы.
Существующая VPN и необходимость поднятия, конфигурирования и администрирования нового сервера - это как бы разные вещи.
Но если даже взять вашу аналогию, то если задача клиента решается на справочниках, причем будет работать и в случае масштабирования и разработка на справочниках стоит копейки, то нафига городить с регистрами?
70. AlexO 135 03.10.12 12:53 Сейчас в теме
(60)
Справочники и регистры - это однородные элементы.

чем это они вдруг стали однородны? Что оба объекта - в 1С?
ИМХО, если уж сравнивать - справочник ближе к документу по структуре хранения. Разница - в объеме используемых таблиц.
72. fixin 4252 03.10.12 12:58 Сейчас в теме
(70) избавьте меня от софистики. Если вы не различили граней, то буквоедствовать - не ко мне. ;-)
54. abc2000 83 28.09.12 13:41 Сейчас в теме
Не, с Веб сервисами, именно в его случае, не взлетит.
61. abc2000 83 01.10.12 20:45 Сейчас в теме
Хранить остатки? Это из серии - зачем нужна 1С, если есть MsSql сервер.
62. fixin 4252 01.10.12 21:42 Сейчас в теме
(61) еще один. Регистры остатков на справочниках сделать сложнее, чем изучить регистры. А использовать имеющийся шаред-каталог на порядок проще, чем заниматься веб-сервисом, который не установлен в конторе у килиента.

Подходить, господа студенты, надо не академически, а практически.
63. abc2000 83 01.10.12 22:48 Сейчас в теме
(62)
Я не про справочники vs регистры писал, я про то что нафига нужна 1С если есть отличные СУБД :-)
64. fixin 4252 02.10.12 01:00 Сейчас в теме
(63) 1С нужна потому, что несмотря на наличие отличных СУБД, нет отличных RAD. Все RAD по сравнению с 1С - отстой.
65. abc2000 83 02.10.12 03:17 Сейчас в теме
(64)
Я вообще то имел ввиду не "зачем нужна сама 1С как система", а то что, чтобы хранить остатки можно сделать табличку в БД и с помощью запросов к БД с ними работать.
66. Maldiv 02.10.12 08:28 Сейчас в теме
По-моему, не очень красиво работать с файликами. Если кто-то потрет файлики в шаред-каталоге? Конечно, я не знаю всех тонкостей, но база данных на сервере со временем входа/выхода в программу мне кажется предпочтительнее. Опять же, можно смотреть сведения за период.
67. fixin 4252 02.10.12 10:47 Сейчас в теме
(66) если заморачиваться, можно просто разрулить права.
79. p1l1gr1m 15.11.12 00:25 Сейчас в теме
Дико, извините за скабрезность, "угорел" от ответов комментаторов и автора)
Ну а по существу, как вам вариант с отправкой статусов по email? Все необходимые средства есть, пишется в пару строчек, плюс немного кода на центральной базе для чтения inbox от удаленных баз.
Оставьте свое сообщение