Страница 1 из 1

Как запретить ручное создание, удаление проводок?

Добавлено: 12 май 2009, 16:16
Иван
При этом оставить доступ на групповую модификацию аналитики

Добавлено: 12 май 2009, 18:55
Ged
Настройки Галактики \ Бухгалтерский контур \ Обработка документов \ Хозяйственные операции и бухгалтерские проводки
Запрещать ручное редактирование бухгалтерских проводок
Запрещать редактирование полей в проводках
Последняя должна помоч

Добавлено: 13 май 2009, 19:57
Иван
так а добавление проводок как убрать доступ?

Добавлено: 14 май 2009, 01:33
Ged
угу, после того как написал - проверил. удаление и добавление работает.
если есть компилятор интерфейсоф подкину идейку, если нет то ... :(

Добавлено: 14 май 2009, 17:13
Иван
ну да есть, только исходников то у меня нету

Добавлено: 14 май 2009, 18:48
Ged
А исходники и не нужны. Просто необходимо знать события системы.
Код то что ниже: Если установленна вышеописанная настройка в положение ДА, то при открытии списка бух проводок как в бровсе так и в режиме редактирования блокируем команды вставки и удаления.
осталость тока блокирнуть Ctrl+2 и Ctrl+3 (копи/пасте) cmSaveDoc и cmRestoreDoc соответственно.

Код: Выделить всё

#Component "F_Oborot"
Alter interface Oborot ( '');
Var boID :  boolean;

Window wiKatEdit01 '' EscClose;
HandleEvent
cmInit:
{
  if(inherited :: HandleEvent (cmInit)=heOk)
  {
    if(boID)
    {
      DisableCommand(cmInsert);
      DisableCommand(cmDelete);
    }
  }
}
  end; // HandleEvent window wiKatEdit01
end; // window

//***********************************************
Handleevent  //Interface
cmInit:
{
  if(inherited :: HandleEvent (cmInit)=heOk)
    boID := boGetTune('FIN.USER.NOEDITPROV');
  if(boID)
  {
    DisableCommand(cmInsert);
    DisableCommand(cmDelete);
  }
}
end;
end.

Добавлено: 14 май 2009, 19:38
Иван
Компилятор написал: компонент F_OBOROT не имеет ни одной таблицы в словаре, возможно задано ошибочно имя компонента

Вообще я должен скомпилить этот файл в ресурсный файл и подключить через консоль управления?

Добавлено: 14 май 2009, 19:45
Ged
Компилятор написал: компонент F_OBOROT
Где то на форуме было по этому поводу. Поищите.
скомпилить этот файл в ресурсный файл и подключить через консоль управления
все верно

Добавлено: 15 май 2009, 19:01
Иван
прикольно, работает
теперь нужно где-то взять код для копирования вставки проводок :grin:

Добавлено: 15 май 2009, 20:18
Ged
По образу и подобию с cmInsert и cmDelete

Добавлено: 19 май 2009, 17:25
Иван
По образу и подобию я наверное не смогу, т.к. вообще не знаком с этим кодом. Можете скинуть готовое?

Добавлено: 19 май 2009, 17:55
Den
Ged писал(а):...осталость тока блокирнуть Ctrl+2 и Ctrl+3 (копи/пасте) cmSaveDoc и cmRestoreDoc соответственно. ...


....По образу и подобию с cmInsert и cmDelete....

Добавлено: 19 май 2009, 18:36
Иван
я вот так добавил в двух местах по две строки:

Код: Выделить всё

#Component "F_Oborot" 
Alter interface Oborot ( ''); 
Var boID :  boolean; 

Window wiKatEdit01 '' EscClose; 
HandleEvent 
cmInit: 
{ 
  if(inherited :: HandleEvent (cmInit)=heOk) 
  { 
    if(boID) 
    { 
      DisableCommand(cmInsert); 
      DisableCommand(cmDelete); 
      DisableCommand(cmSaveDoc); 
      DisableCommand(cmRestoreDoc); 
    } 
  } 
} 
  end; // HandleEvent window wiKatEdit01 
end; // window 

//*********************************************** 
Handleevent  //Interface 
cmInit: 
{ 
  if(inherited :: HandleEvent (cmInit)=heOk) 
    boID := boGetTune('FIN.USER.PROTECTBSALDO'); 
  if(boID) 
  { 
    DisableCommand(cmInsert); 
    DisableCommand(cmDelete); 
    DisableCommand(cmSaveDoc); 
    DisableCommand(cmRestoreDoc);
  } 
} 
end; 
end. 
вроде правильно и перестало вставляться

Добавлено: 19 май 2009, 22:36
Ged
я наверное не смогу
Нет такого слова "не могу" есть "не хочу" :)
Главное попробовать...

PS: Можно и

Код: Выделить всё

Window wiKatEdit01 '' EscClose; 
HandleEvent 
cmInit: 
{ 
  if(inherited :: HandleEvent (cmInit)=heOk) 
  { 
    if(boID) 
    { 
      DisableCommand(cmInsert); 
      DisableCommand(cmDelete); 
    } 
  } 
} 
  end; // HandleEvent window wiKatEdit01 
end; // window
В режиме редактирования нет этих событий.
Можете убедиться - по правой кнопке..