Регистр сведений, удаление с параметрами
1C:Бухгалтерия
1С:Управление нашей фирмой 1.6
1С:Управление торговлей 10
1С:Управление торговлей 11
1С:Управление холдингом
Платформа 1С v8.3
8.3.14
Добрый день.
Регистр сведений периодический, без регистратора.
Модуль набора записей.
Как можно узнать, если идет удаление записи из документа при отмене проведения - разрешить, если удаление - вручную - запретить?
Регистр сведений периодический, без регистратора.
Модуль набора записей.
Процедура ПередЗаписью(Отказ, Замещение)
Если ЭтотОбъект.Количество() = 0 Тогда
//это пустой набор записей
док = ЭтотОбъект.Отбор.ДокументРегистратор.Значение;
Если док<>"" И док.Проведен Тогда
Отказ = Истина;
ВызватьИсключение("Удаление запрещено, необходимо распровести документ!");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьКак можно узнать, если идет удаление записи из документа при отмене проведения - разрешить, если удаление - вручную - запретить?
По теме из базы знаний
- Регистры сведений 1С. Как это устроено.
- Метод формирования движений в типовых регистрах нетиповыми регистраторами
- Версионирование справочников, документов и регистров сведений на SQL-сервере
- Удаление документов для любых баз на управляемых формах
- Обсудим планы обмена. Способы регистрации объектов к обмену
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Да, такой способ передачи параметра достаточно простой.
Но я все делал в списках, по мне так проще (списков не так много и условие простое), правда не проверку удаления, а историю регистра так делал. Да и данные еще не изменены и их не надо вытаскивать из базы запросом, если требуется дополнительная проверка и прочее.
Но я все делал в списках, по мне так проще (списков не так много и условие простое), правда не проверку удаления, а историю регистра так делал. Да и данные еще не изменены и их не надо вытаскивать из базы запросом, если требуется дополнительная проверка и прочее.
Я решал похожую задачу так (через "ж..у"):
1) Две роли - одной можно второй нет (удалять)
2) подписка на событие "Получение формы" в ней смотрел что это "Форма записи" и давал привилегированный режим
В форме отключал автоменю (для исключения команды - "Удалить")
В итоге пользователь мог изменять запись, но не мог её удалить
1) Две роли - одной можно второй нет (удалять)
2) подписка на событие "Получение формы" в ней смотрел что это "Форма записи" и давал привилегированный режим
Если ВидФормы = "ФормаЗаписи" Тогда
...
УстановитьПривилегированныйРежим(Истина);
...
УстановитьПривилегированныйРежим(ЛОЖЬ);
В форме отключал автоменю (для исключения команды - "Удалить")
В итоге пользователь мог изменять запись, но не мог её удалить
(5) А зачем обычным пользователям давать открывать внешние обработки, так удаление регистра сведений будет не самой большой проблемой. Можно например изменить цену и подельник купит товар условно по 1 рублю. Изменить кредиторку в пользу несуществующей компании и прочее. Так что внешние обработки зло по определению и их не рассматриваем :-)
(8) Она отвечает за интерактивное редактирование. А я говорю, что продвинутый пользователь, может открыть свою обработку и программно изменить данные в регистрах (если есть право на изменение). Визуально в документах будет все ок, а практически (в отчетах и прочее) другие данные. Убрать роль изменение нельзя, так как человек может проводить документы (но там например алгоритм прописан жестко и такого сделать не может) .
Поэтому, на рабочих базах у пользователя нет прав открывать внешние обработки, только подключенные.
Поэтому, на рабочих базах у пользователя нет прав открывать внешние обработки, только подключенные.
Возможно я не правильно выразился.
Если непосредственное удаление и Реквизит - ДокументРегистратор пустой удалить запись, если ДокументРегистратор - заполнен, не удалять...
Это отрабатывает условие.
НО при распроведении документа мне не дает удалить запись, т.к. ДокументРегистратор поле заполнено...
И как сказать ,что удаление при распроведении документа разрешено?
Если непосредственное удаление и Реквизит - ДокументРегистратор пустой удалить запись, если ДокументРегистратор - заполнен, не удалять...
Это отрабатывает условие.
НО при распроведении документа мне не дает удалить запись, т.к. ДокументРегистратор поле заполнено...
И как сказать ,что удаление при распроведении документа разрешено?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот