Имя: Пароль:
1C
1С v8
Бух 3.0, как сделать узел "только просмотр"
0 vde69
 
08.05.13
09:04
сделал отдельную роль "только чтение", но требуется дополнительный порог защищенности.

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

кто делал? подскажите куда тыкать...
1 Ranger_83
 
08.05.13
09:13
(0) В рамках РБД?
Делал в рамках обычного плана обмена таким образом значит: в настройках обмена такого узла использовал пустые правила обмена.
2 МегаДятел
 
08.05.13
09:15
я пробовал - просто никак не получилось - типа только передавать в узел, не принимая - нельзяпередавать
3 МегаДятел
 
08.05.13
09:17
пришлось обойти - в том узле у всех тока на чтение у всех кроме 1 юзера - обмен.

буду рад если просветите как тока передавать в узел, не принимая
4 Ranger_83
 
08.05.13
09:24
По-моему фишка такая с регистрацией для объектов,участвующих в обмене,что настройки применяются для всех узлов в рамках плана.Если снять объекты с авторегистрации,то и выгружаться в подчиненный узел ничего не будет.Нужно будет либо заморачиваться программно их регистрировать или же наоборот снимать с регистрации
5 vde69
 
08.05.13
09:33
(1) с пустыми правилами - сам делал, но мне немного не нравится этот подход, по тому что правильным было-бы не регистрировать...

в настройках узла есть галочка "регистрировать изменения", но что она значит не понятно...
6 МегаДятел
 
08.05.13
09:34
(5)есть подозрение сильное что надо курочить правила регистрации объектов. Причем не слабо.
Что неохота
7 Ranger_83
 
08.05.13
09:35
(5) а руки не чешутся эту галочку снять и попробовать что будет?
8 el-gamberro
 
08.05.13
09:40
ПланОбменаОбъект.<Имя плана обмена> (ExchangePlanObject.<Имя плана обмена>)
ПриОтправкеДанныхГлавному (OnSendDataToMaster)
Синтаксис:

ПриОтправкеДанныхГлавному(<ЭлементДанных>, <ОтправкаЭлемента>)
Параметры:

<ЭлементДанных>

При вызове обработчика события данный параметр содержит элемент данных, изменение которого зарегистрировано и который должен быть помещен в сообщение обмена данными. Элементами данных могут быть КонстантаМенеджерЗначения.<Имя константы>, объекты базы данных, наборы записей регистров, последовательностей или перерасчетов.
<ОтправкаЭлемента>

Тип: ОтправкаЭлементаДанных.
При вызове события данный параметр содержит значение Авто, что означает, что элемент данных будет помещен в сообщение. В обработчике события можно присвоить параметру другое значение.
Значение Удалить означает, что в сообщение будет помещено значение, предназначенное для удаления соответствующего элемента данных в той информационной базе, которой адресовано сообщение. В случае объекта базы данных в сообщение будет помещен объект типа УдалениеОбъекта, содержащий ссылку на объект базы данных. В случае набора записей будет помещен пустой набор записей. Однако, в случае элемента данных КонстантаМенеджерЗначения.<Имя константы> действие, производимое значением Удалить, не отличается от Авто.
Значение Игнорировать означает, что в сообщение не будет помещено ничего, связанного с элементом данных.
Значение по умолчанию: Авто
Описание:

Обмен изменениями данных и конфигурации в распределенной информационной базы производится с помощью сообщений обмена данными. Различаются сообщения, с помощью которых производится передача изменений от главного узла подчиненному и от подчиненного главному. Обработчик данного события вызывается перед помещением образа элемента данных в сообщение обмена данными, отправляемого подчиненным узлом главному. Обработчик вызывается для каждого элемента данных, помещаемого в сообщение.
9 el-gamberro
 
08.05.13
09:43
Хотя использование плана обмена для решения задачи (0) неверно.
Правильнее использовать репликации скуля скриншотами
10 vde69
 
08.05.13
09:52
(9)хм... идея мне нравится

правда есть 2 момента
1. это разные сервера и даже разные города (боюсь трафик будет больй)
2. часть данных нужно изменять "там" без передачи в главный, например пароли пользователей, или настройки печати...
3. есть вероятность что "там" все-же будет что-то типа лога который потребуется нести "в центр"
11 Ranger_83
 
08.05.13
10:01
(10) загони их в терминал
12 Живой Ископаемый
 
08.05.13
10:02
2(10) очищаем регистрации в перифирии перед отправкой сообщения главному
13 MaxS
 
08.05.13
10:23
По моему в БП 3 есть возможность загрузить свои правила _регистрации_ объектов. Вот в них и поправить что нужно.

Делал так для УНФ - БП 2.0. в УНФ это есть.
14 laeg
 
08.05.13
10:34
А через web в базу удаленщиков с ролью "только чтение" запустить не вариант что ли ? Тем более что БП 3.0, ничего придумывать не нужно.
15 МегаДятел
 
08.05.13
10:35
(13) э НЕТ!
Для Бух 2.0 есть обмен по своим правилам. А в Бух 3.0 этого нет! Иначе бы вопросов не было бы!
16 МегаДятел
 
08.05.13
10:36
(14) не надо путать - web это web! а распределенка это распределенка.
На web есть масса ограничений и есть неудобства - например постоянный канал связи и проч. Плюс безопасность и т.д.
17 laeg
 
08.05.13
10:43
(14) В наше время нету проблем с постоянным инетом даже в РКС, с базой работают в полном режиме и реад-онли от Красноярска до Москвы. Никаких неудобств, никаких проблем с обменом после обновлений. Безопасность вопрос решаемый кучей способов, было бы желание.
18 mistеr
 
08.05.13
10:51
В файлах сообщений есть такое

               <v8de:Node>
                   <v8de:DeletionMark>false</v8de:DeletionMark>
                   <v8de:Code>ОСН</v8de:Code>
                   <v8de:Description>Основная база</v8de:Description>
                   <v8de:УдалитьПрефиксУзла/>
                   <v8de:ОтправлятьТолькоКвитанции>false</v8de:ОтправлятьТолькоКвитанции>
               </v8de:Node>

Наверное это неспроста. Но СП молчит...
19 vde69
 
08.05.13
15:34
сделал, пишу как (всего одно небольшое изменение)

1. --------------------------------------------------
модуль ОбменДаннымиСобытия, процедура МеханизмРегистрацииОбъектов, показываю "хвост"

       //----------------------------------------------------------------------------
       // vde69 - вставка запрета именения обьекта для подчиненного узла с признаком "только просмотр"
       Если  (ПланыОбмена.ГлавныйУзел() <> Неопределено) Тогда
       //    И (ПланыОбмена.Полный.ЭтотУзел().РегистрироватьИзменения = Ложь) Тогда

           Если не Мув_ПоддержкаКонвектацииИОбработок.РазрешеноИзменениеОбьекта(Объект, ОбъектМетаданных.ПолноеИмя()) Тогда
               Отказ = Истина;
               Возврат;
           КонецЕсли;
       КонецЕсли;
       
       // vde69 - конец вставки
       //----------------------------------------------------------------------------
       
       Если Не ОбменДаннымиПовтИсп.АвтоРегистрацияРазрешена(ИмяПланаОбмена, ОбъектМетаданных.ПолноеИмя()) Тогда
           
           ПроверятьСсылку = ?(ЭтоРегистр ИЛИ ЭтоКонстанта, Ложь, Не Объект.ЭтоНовый() И Не ЭтоУдалениеОбъекта);
           
           МассивУзловРезультат = Новый Массив;
           
           ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена(МассивУзловРезультат, Объект, ИмяПланаОбмена,
               ОбъектМетаданных, ПроверятьСсылку, ЭтоРегистр, ЭтоУдалениеОбъекта, Замещение, РежимЗаписи
           );
           
           // обработчик "После определения получателей"
           ОбменДаннымиСервер.ПослеОпределенияПолучателей(Объект, МассивУзловРезультат, ИмяПланаОбмена);
           
           ДополнитьПолучателей(Объект, МассивУзловРезультат);
           
       КонецЕсли;
       
   Исключение
       ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными.Правила регистрации объектов'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
           УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
       );
       Отказ = Истина;
   КонецПопытки;
   
КонецПроцедуры


2. ---------------------------------------------------
процедура РазрешеноИзменениеОбьекта


// функция для определения обьектов которые можно изменять
// в и передовать в головную базу
Функция РазрешеноИзменениеОбьекта (Объект, ИмяОбъектаМетаданных) Экспорт
   Результат = Ложь;
   Если ИмяОбъектаМетаданных = "Справочник.Пользователи" Тогда // обязательно, без этого не возможно рулить пользователями
       Результат = Истина;
   КонецЕсли;
   Возврат Результат;
КонецФункции
20 vde69
 
08.05.13
15:35
(19) правда я не запретил регистрацию а запретил изменение обьектов которые есть в плане обмена, но по моему - жэто правильно
21 acsent
 
08.05.13
15:38
там же по правилам регистрации все идет. сделай пустые правила
22 vde69
 
08.05.13
15:39
(21)УРБД - по другому чуток, другие механизмы и все другое....
23 acsent
 
08.05.13
15:40
правила регистрации и для урбд работают
24 vde69
 
08.05.13
15:42
(23) мне кажется, что запрет редактирования обьектов которые мигрируют более верно отражает то чего я хотел сделать по своей сути.