Имя: Пароль:
1C
1С v8
Как получить дату с компьютера в сети на котором стоит база 1С?
0 Rajva2
 
06.03.17
05:44
Есть одноранговая сеть.
Есть комп бухгалтера и 3 компа менеджеров.
Есть база на компе бухгалтера к которой менеджеры цепляются по сети.
Менеджерам запрещено править вчерашние документу.
Как в 1с получить время с компа бухгалтера?
Есть такая функция с галками "Сервер" и "Вызов сервера".

Функция ВремяСервера() Экспорт
    Возврат(ТекущаяДата());
КонецФункции

В процедуре проверяем дату, но Функция ВремяСервера() возвращает дату с текущего компа. Что то здесь неправильно.

Процедура ПередЗаписьюДокументовПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

    Если ПараметрыСеанса.ТекущийПользователь.Наименование<>"" тогда
        Если НачалоДня(времясервера())>Источник.Дата тогда
            Отказ=Истина;
        КонецЕсли;
    КонецЕсли;
1 mehfk
 
06.03.17
06:11
А че ты хотел в файловой базе?
2 1dvd
 
06.03.17
06:12
net time \\GlavBuh
3 Dmitry1c
 
06.03.17
07:40
Понапускают манагеров в базу БП3...
4 Ufo_Attack
 
06.03.17
07:53
(0) У тебя же файловая база? Тогда и сервера у тебя нет.
Настрой на всех компах синхронизацию времени по NTP.
5 Rajva2
 
06.03.17
07:54
(2) то что надо, только почему то времясервера=0. Хотя в командной строке нормально время.

Процедура ПередЗаписьюДокументовПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    времясервера="";
    ЗапуститьПриложение("net time \\111",,истина,времясервера);
    Сообщить("т="+времясервера+"!");



(3) Это дописанная БП. Специально под манагеров.
6 Serg_1960
 
06.03.17
07:54
А синхронизировать время компов сети не предлагать? ;)
7 Неверный Параметр И
 
06.03.17
07:57
(5) И правда, "почему-то". Для чтения синтакс-помощника ты слишком крут, да
8 Rajva2
 
06.03.17
07:58
(4) (6)  В сеть и компы не лезу там есть свой "специалист". 4 компа: Вин7, Вин8, Вин8.1 и Вин10. У пары нет прав администратора и пароли не знают.
9 Rajva2
 
06.03.17
07:59
(7) Вроде читал, щас еще раз проштудирую.
10 Ufo_Attack
 
06.03.17
08:03
(8) Чтобы сделать по нормальному - советую пригласить "специалиста".
13 Провинциальный 1сник
 
06.03.17
08:14
База файловая? Если БП3, то публикуйте через веб-сервер. Там сервер - это сервер. А если в файл-серверном режиме работаете, то клиент и сервер это одно и то же.
14 Провинциальный 1сник
 
06.03.17
08:51
(5) А с чего ты взял, что код возврата запускаемой программы - это время? Делай перенаправление вывода во временный файл, открывай его и анализируй.
15 Rajva2
 
09.03.17
18:14
Перечитал синтаксис-помощник и понял что читать надо внимательнее.
(14) А как сделать перенаправление вывода во временный файл? Я тоже еще тот "специалист"...
16 Gary417
 
09.03.17
18:24
(15) net time \\big_server > временныйфайл.txt
17 pessimist
 
09.03.17
19:09
(16) чтобы эта команда работала на big_server должен быть запущен сервер NTP.
18 Rajva2
 
09.03.17
19:54
(16) строка выполняется
    ЗапуститьПриложение("net time \\111>C:\123\temp.txt",,истина,времясервера);
но файла нет. Хотя когда из командной запускаешь "net time \\111>C:\123\temp.txt" файл появляется.
Может 1С его удаляет сразу же?
19 Gary417
 
09.03.17
20:07
напишите батничек и его запускайте
20 1dvd
 
10.03.17
08:11
(18) нет ли русских букв там?
21 Garykom
 
гуру
10.03.17
08:20
А потом после смены/переименования компа где база все перестало работать и кто то кого то покроет чем то.

ЗЫ Ну не решаются административные проблемы программно.
22 Garykom
 
гуру
10.03.17
08:23
Лучше добавь константу (или нечто другое можно в доп. реквизит писать к чему то) в базу, куда при запуске/выходе пиши текущие дату/время.

Затем анализируй что там написано и если меньше на какой то интервал (в пределах погрешности +- часов) чем текущее то запрет редактирования - считаем что системные дату/время на данном компе отмотали.
И в этом случае кривые дату/время "в константу" не пишем, пишем в лог для выводов.
23 ixijixi
 
10.03.17
08:58
(18) Попробуй cmd /c net time \\111
Основная теорема систематики: Новые системы плодят новые проблемы.