Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связь между ЦБ и Периферийной
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Sergio
Здравствуйте, форумчане. У меня самописная конфигурация 1С 8.2 управляемое приложение. Обмен данными между центральной и периферийными базами осуществляется файлами (выгрузки). Как можно решить следующую задачу:
хочу, что бы периферийная база с определенной периодичностью обращалась к центральной (через интернет) и подтверждала свою подлинность. Хоть в каком направлении копать ? Заранее спасибо.
pumbaE
Подлинность чего? Переферийка файловая?
Sergio
Цитата(pumbaE @ 02.10.12, 12:31) необходимо зарегистрироваться для просмотра ссылки
Подлинность чего? Переферийка файловая?


Не точно выразился. Просто Периферийная не должна работать если не получила подтверждение от Центральной


 ! 

Правила, п.13
 


хочу, что бы периферийная база с определенной периодичностью обращалась к центральной (через интернет) и получала разрешение на запуск

Может через внешние источники данных ?
MATEVI
Цитата(Sergio @ 02.10.12, 13:04) необходимо зарегистрироваться для просмотра ссылки
Может через внешние источники данных ?

Может через номера сообщений. Может по наличию файла гдето в каталоге. Создать файл после обмена на переферийке если файл есть пускать нет не пускать.
alex040269
предлагаю создать константу или регистр сведений (если нужна история) и перед началом обмена ЦБ изменяет данный объект, а перефирийка после обмена проверяет и "принимает решение"...
Ardi
Краденые базы сообщения не принимают. Я думаю что некая защита от кражи имеется в виду.
Sergio
Да,совершенно верно: я хочу сделать что то вроде защиты. Предложенные вами способы не защищают от следующего: на периферийной базе, не принимая выгрузок из ЦБ можно полноценно работать обладая всем функционалом. Я хочу что бы периферийная база обращалась бы к компьютеру,на котором находится ЦБ (может быть к конкретному файлу на ПК, в котором приписано разрешение в виде 1 или 0) и получала или не получала бы разрешение на запуск системы.

Просто не хочется переходить на клиент-серверный вариант работы
Ardi
Добавляем новую константу. тип дата.
При запуске на центральном узле пишем в эту дату
знКонстанты = макс(знКонстанты,ТекущаяДата());

При обмене значение константы автоматом рассылается во все узлы.

При запуске переферийной базы проверяем сколько дней разницы между константой и тек. днем.
Если много дней то в каждую папку на компьютере записываем файл "Пипец.txt".

И если при старте переферийки в какой-то папке обнаружен файл Пипец или просто дата старая - то запускаем без конца эксплорер и гнобим компьютер.

---
Потом пользователь меняет на компе дату, восстанавливает из архива базу - база снова находит файл "пипец" и опять детектирует взлом.
Sergio
Цитата(Ardi @ 03.10.12, 16:55) необходимо зарегистрироваться для просмотра ссылки
Добавляем новую константу. тип дата.
При запуске на центральном узле пишем в эту дату
знКонстанты = макс(знКонстанты,ТекущаяДата());

При обмене значение константы автоматом рассылается во все узлы.

При запуске переферийной базы проверяем сколько дней разницы между константой и тек. днем.
Если много дней то в каждую папку на компьютере записываем файл "Пипец.txt".

И если при старте переферийки в какой-то папке обнаружен файл Пипец или просто дата старая - то запускаем без конца эксплорер и гнобим компьютер.

---
Потом пользователь меняет на компе дату, восстанавливает из архива базу - база снова находит файл "пипец" и опять детектирует взлом.


Спасибо, Ardi. Неплохая задумка. Попробую.
Sergio
Цитата(Sergio @ 03.10.12, 20:39) необходимо зарегистрироваться для просмотра ссылки
Спасибо, Ardi. Неплохая задумка. Попробую.


Да, вот только писать все это надо в Модуле управляемого приложения конфигурации. А значит пользователь на ПБ сможет войти и прочитать какой файл я создаю ("Пипец.txt") и куда его сохраняю.
mister-x
Цитата(Sergio @ 03.10.12, 23:09) необходимо зарегистрироваться для просмотра ссылки
А значит пользователь на ПБ сможет войти

а права йому обмежити на конфіг ніяк?
Sergio
Цитата(mister-x @ 03.10.12, 23:11) необходимо зарегистрироваться для просмотра ссылки
а права йому обмежити на конфіг ніяк?


Ограничение прав на ПБ приведет к тому, что пользователь ПБ не сможет сохранить в Конфигураторе изменения при получении выгрузки с измененным Конфигуратором из ЦБ
alex040269
Цитата(Sergio @ 03.10.12, 23:09) необходимо зарегистрироваться для просмотра ссылки
Да, вот только писать все это надо в Модуле управляемого приложения конфигурации. А значит пользователь на ПБ сможет войти и прочитать какой файл я создаю ("Пипец.txt") и куда его сохраняю.

да не надо никаких файлов. Если дата старая (т.е. не обновилась из ЦБ) - то ....
Ardi
Цитата(alex040269 @ 04.10.12, 10:49) необходимо зарегистрироваться для просмотра ссылки
а не надо никаких файлов. Если дата старая (т.е. не обновилась из ЦБ) - то ....

Тогда пользователь меняет на компе дату на 1980 год, и заново загружает базу с флешки и работает.
А если есть файл - то на этом-же компе база тогда не запустится.

Это доп. уровень защиты.
Vofka
Цитата(Ardi @ 04.10.12, 12:21) необходимо зарегистрироваться для просмотра ссылки
Тогда пользователь меняет на компе дату на 1980 год, и заново загружает базу с флешки и работает.

Тогда не надо выдавать сообщения в духе: "База не запускается, потому что дата на компе не переведена. Переведите дату на 1980 год."
alex040269
Цитата(Ardi @ 04.10.12, 12:21) необходимо зарегистрироваться для просмотра ссылки
Тогда пользователь меняет на компе дату на 1980 год, и заново загружает базу с флешки и работает.
А если есть файл - то на этом-же компе база тогда не запустится.

Это доп. уровень защиты.

ну и пусть оформляет все доки 1980-ым годом smile.gif
Sergio
Цитата(alex040269 @ 04.10.12, 10:49) необходимо зарегистрироваться для просмотра ссылки
да не надо никаких файлов. Если дата старая (т.е. не обновилась из ЦБ) - то ....


Неплохая мысль: не нужно привязывать алгоритм к абсолютной (системной) дате. Можно при загрузке данных на ПБ определить дату загрузки данных (системную дату,причем не важно какую, хоть и 1980 год), потом вести отчет относительного времени, то есть от даты, которой загрузка прошла. И если, к примеру, прошло 10 дней от этой записанной даты (относительной), а следующая выгрузка так и не поступила, то отказать в работе. Вроде все складно. Вот как только не знаю получить системную дату, то есть дату загрузки архива на ПБ ? Может кто подскажет ?

Может в журнале регистрации можно взять эту инфу ?
alex040269
Пост № 5 Константа тип Дата. Устанавливается на ЦБ перед выгрузкой и проверяется на ПБ.
Sergio
Цитата(alex040269 @ 04.10.12, 15:39) необходимо зарегистрироваться для просмотра ссылки
Пост № 5 Константа тип Дата. Устанавливается на ЦБ перед выгрузкой и проверяется на ПБ.


Это я понял. Как отловить событие "перед выгрузкой", "после загрузки" ?

Как отловить: "перед началом обмена ЦБ изменяет данный объект, а перефирийка после обмена проверяет" ?
alex040269
На ЦБ перед
            // для РИБ изменения в информационной базе
            ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения, СтруктураНастроекОбменаДанными.ДанныеНастройки.КоличествоЭлементовВТранзакцииНаВ
ыгрузкуДанных);


а для РБ проверять можно ПередНачаломРаботыСистемы() И ПриПолученииДанныхОтГлавного
Sergio
Цитата(alex040269 @ 04.10.12, 16:29) необходимо зарегистрироваться для просмотра ссылки
На ЦБ перед
            // для РИБ изменения в информационной базе
            ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения, СтруктураНастроекОбменаДанными.ДанныеНастройки.КоличествоЭлементовВТранзакцииНаВ
ыгрузкуДанных);


а для РБ проверять можно ПередНачаломРаботыСистемы() И ПриПолученииДанныхОтГлавного


Этот вариант ближе к оптимальному. Спасибо, Алекс. Сделаю - отпишусь. Если не сделаю - тоже отпишусь :-)
Sergio
Спасибо большое всем за помощь. Алгоритм реализовал. Наиболее подходящим оказался вариант Алекса. Единственное, что я добавил, это: если на ПБ при загрузке системы текущая дата больше чем сохраненная в константе + 10 дней (то есть ПБ не получала 10 длней выгрузку), то не просто отказываем в загрузке предприятия, а в булевскую константу записываем значение ЛОЖЬ, проверяемое каждый раз при загрузке системы. Это на тот случай, если пользователь решит менять системную дату. После этого 1Cv81CD на ПБ уже не поднять.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.