Страница 1 из 1
Запрет на удаление ордеров и накладных
Добавлено: 29 апр 2005, 13:27
hope
Добрый день!
Подскажите, пожалуйста, как настроить запрет на удаление накладных и ордеров?
Настроила в правах пользователя на таблицы KatSopr, SpSopr, SklOrder, SpOrder доступ только на чтение, добавление, модификация.
Но при этом в накладной можно на поле "Дата списания" нажать Delete. Галактика напишет, что удалить нельзя. Но при этом "дату списания" очистит, и в списке накладных покажет, что накладная с "-", т.е. без ордеров (хотя реально ордера есть). Далее, у пользователя со всеми правами, удаляем накладную, Галактика удаляет только накладную, а ордер остается подвисший.
Как еще возможно настроить доступ на запрет удаления ордеров и накладных?
Спасибо!
Добавлено: 29 апр 2005, 14:30
oiko
Поработай с доступом по полям
не давай доступ на модификацию dopr.
Если платформа не первазив можно написать триггер.
Добавлено: 29 апр 2005, 16:24
Max_Fin
тут еще не все указано
нужно и про SpDocNal не забыть
да и еще несколько таблиц, используемых для различных видов накладных
Добавлено: 02 май 2005, 11:42
Savich
Можно конфигуратором в окне "Редактирование накладной" в поле "Дата списания" установить свойство Skip. После этого Галка не дает удалить ордера.
Добавлено: 04 май 2005, 08:40
kovail
А саппортом наложить фильтр?
Добавлено: 04 май 2005, 08:44
hope
Чем дальше в лес, тем больше дров.
Поле "дата списания" я могу закрыть от редактирования конфигуратором. Но еще остается вариант просто кнопка "списать" / "оприходовать". По которой ордера, если есть, то они удаляются, и создаются.
При моей настройке ордера не удаляются, но при этом создаются еще раз. Так накладную можно править и сколько хочешь ордеров создавать. Бардак.
С триггерами я еще ни разу не работала. Но народ говорит, что и там такая же ерунда может получиться. Галактике самой все равно: есть доступ на удаление, нет доступа - она это не анализирует, шлепает себе дальше....
Если закрыть доступ на модификацию поля dopr в накладной - тогда ведь нельзя будет сделать ордер (ведь изначально это поле пустое и только после оприходования/списания заполняется).
Должно же быть какое-то рабочее решение...???
Попробою настроить доступ с анализом поля DOpr - если оно не пусто, тои модифицировать накладкную не давать.....????
Добавлено: 04 май 2005, 09:35
sim
Установи настройку "Разрешать редактирование сопроводительных документов" - "нет"
Добавлено: 04 май 2005, 09:40
oiko
... Но народ говорит, что и там такая же ерунда может получиться. Галактике самой все равно: есть доступ на удаление, нет доступа - она это не анализирует, шлепает себе дальше....
А менеджеру базы данных наплевать что думает Галактика,
если триггер настроен правильно то он не даст ни удалить не модифицировать запись
Добавлено: 04 май 2005, 12:26
hope
>> Установи настройку "Разрешать редактирование сопроводительных документов" - "нет"
- это хорошо: через ДО делать накладные, потом пакетно их списывать - работает, удалить не удастся.
Но! Тогда операторы не смогут вводить накладные на внутреннее перемещение.
Добавлено: 04 май 2005, 12:30
hope
oiko!
можешь подробнее рассказать?
Добавлено: 04 май 2005, 14:46
oiko
Простенький пример для Oracle
Если накладная оприходована то ее не удалить и не модифицировать поле dopr.
CREATE OR REPLACE TRIGGER "GAL"."AAA" BEFORE
UPDATE
OR DELETE OF "FDOPR" ON "GAL"."KATSOPR" FOR EACH ROW BEGIN
IF :OLD.Fdopr>0 THEN
RAISE_APPLICATION_ERROR( -20001 , 'Record Locked');
ELSE NULL;
END IF;
END;
Добавлено: 05 май 2005, 07:58
hope
Спасибо!
В правах доступа ведь тоже можно настроить права по условиям. Также анализировать dopr. Или тут есть в чем-то существенная разница?
И еще, сейчас переходим на 7.12 - там уже все попроще: поле "дата списания" уже не доступно для редактирования и добавилась кнопка "отменить списание". Наверное, достаточно будет конфигуратором убрать кнопку "отменить списание".
Добавлено: 05 май 2005, 09:19
oiko
Разница существенная на задание прав по условиям есть ограничения.
В триггере я могу настроить сколь угодно запутанное условие например запретить удалять накладную если складские ордера созданые по ней админом.