Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 07:45

Вопрос по обмену

Автор sergeevds, 26 авг 2011, 16:21

0 Пользователей и 1 гость просматривают эту тему.

sergeevds

В некоторых базах 1С на торговых точках не запускается автообмен. Приходится заходить к ним на сервер и запускать его вручную. Это касается тех точек, которые выключают сервера на ночь.
В конце рабочего дня иногда информация о закрытии смены не попадает в базу офиса (не успевает пройти обмен с момента закрытия смены и до выключения сервера). Поэтому хотелось бы, чтоб у последнего пользователя, который выключает 1С, запускался обмен и программа не закрывалась пока он не пройдет.
Замечу, что первый и второй случай отличаются друг от друга. В первом случае обмен запускается в фоне, во втором - пользователь видит окно обмена.

Понимаю, что можно, например, сделать булевную константу "ВыполнятьАвтообмен", если истина тогда выполнять обмен - это чтобы из баз, где сервер работает нормально не заставлять их объединятся и при этом сохранить нормальный ход процесса объединения, чтобы не надо было каждый раз убирать галку.

Итак собственно вопрос: как определить, что текущий пользователь - первый кто вошел в систему за сегодня, и как лучше организовать определение контрольного юзверя в конце дня?

Dethmontt

при входе пользователя Подцепляться к кластеру серверов к нужной базе и смотреть сколько там человек (сеансов) уже сидит, если Ноль тогда это первый пользователь и перед закрытием тоже самое если 1 тогда это последний (и не забывай проверять на наличие всяких там планировщиков и фоновых сеансов)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sergeevds

А как это реализовать практически? Про какие команды-то хоть читать?

Klyacksa

По поводу не запуска регламента...
Есть такая грабля. Если после перезагрузки сервера зайти и "перепоставить" галку использования у регламента (например, через "КонсольЗаданий"), то регламент снова будет запускаться.

Но это так, лирическое отступление...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

sergeevds

Цитата: Dethmontt от 27 авг 2011, 00:34
при входе пользователя Подцепляться к кластеру серверов к нужной базе и смотреть сколько там человек (сеансов) уже сидит, если Ноль тогда это первый пользователь и перед закрытием тоже самое если 1 тогда это последний (и не забывай проверять на наличие всяких там планировщиков и фоновых сеансов)
Ну только ноль не будет, минимум 1. Спасибо, Dethmontt!

sergeevds

Вот такая конструкция у меня вышла.
Соединение = ПолучитьСоединенияИнформационнойБазы();
   Если Соединение.Количество() = 1 И Константы.ВыполнятьАвтообмен.Получить() = Истина Тогда
      Состояние("Выполняется автоматический обмен данными.");
      Выборка = Справочники.НастройкиОбменаДанными.Выбрать();
      Пока Выборка.Следующий() Цикл
         ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке(Выборка.Ссылка, , глЗначениеПеременной("глОбработкаАвтоОбменДанными"));   
      КонецЦикла;
   КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск