Это никуда пихать не надо - просто демонстрация убивания всех записей
Это никуда пихать не надо - просто демонстрация убивания всех записей
вы хотите сказать, что при выполнении туда не заходит программа?
Если привязать её к кнопке удаления, находящейся на панели, то удаление не выполняется. Другое дело, что существует замечательная кнопочка "Delete" на клавиатуре и если ей воспользоваться, то никакая процедура её не останавливает.
причем тут кнопка удаления на панели?<br>привязка к событию ПередУдалением табличного поля РегистрСведенийСписок. а там хоть как удаляй - не удалится.
Всё разобралась. Спасибо за помощь. Мозг в последнее время совсем работать отказывается, точно в отпуск пора.
"Вообще, получается так:<br>1. Вы правы, отказ в ПередЗаписью в модуле регистра приводит к невозможности редактирования.<br>2. Осталось сделать еще одни шаг - узнать о редактировании. Для этого потребуется глобальная переменная. Тут 2 пути:<br> 1) Добавить в модуль Приложения. Это приведет к изменению стандартной конфигурации и необходимости следить, за тем что обновляется.<br> 2) Добавить ПараметрСеанса и Роль с доступом к ней (к сожалению я не знаю процедуры или функции, которая была бы в общем модуле с полными правами и устанавливала бы параметр сеанса по имени). Тогда получим:<br>Добавленные элементы:<br>ПараметрСеанса - РедактированиеРегистра - Булево<br>Роль - НашаРоль (Права на чтение/запись ПараметраСеанса РедактированиеРегистра)<br>Код в форме Списка (Событие Списка ПередОкончаниемРедактирования):<br><br>Процедура РегистрСведенийСписокПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)<br> Если РольДоступна ("НашаРоль") ИЛИ РольДоступна ("ПолныеПрава") Тогда<br> ПараметрыСеанса.РедактированиеРегистра = Истина;<br> КонецЕсли;<br>КонецПроцедуры<br><br>Код в модуле набора записей:<br>Процедура ПередЗаписью(Отказ, Замещение)<br> лРедактирование = Ложь;<br> Если РольДоступна ("НашаРоль") ИЛИ РольДоступна ("ПолныеПрава") Тогда<br> лРедактирование = ПараметрыСеанса.РедактированиеРегистра;<br> ПараметрыСеанса.РедактированиеРегистра = Ложь;<br> КонецЕсли;<br> <br> Если ЭтотОбъект.Количество()=0 И Не лРедактирование Тогда<br> Для Каждого лОтбор Из ЭтотОбъект.Отбор Цикл<br> Если ЗначениеЗаполнено (лОтбор.Значение) Тогда<br> Отказ = Истина;<br> КонецЕсли;<br> КонецЦикла;<br> КонецЕсли;<br>КонецПроцедуры<br><br><br>В принципе, при выставлении РедактированиеРегистра в Истина можно и удалить (в какой-нибудь обработке). Я бы еще добавил условие для того, кто может удалить - всякое случается. Можно воспользоваться событием Списка ПередУдалением:<br>Процедура РегистрСведенийСписокПередУдалением(Элемент, Отказ)<br> Если РольДоступна ("ПолныеПрава") Тогда<br> ПараметрыСеанса.РедактированиеРегистра = Истина;<br> КонецЕсли;<br>КонецПроцедуры<br><br>В общем, примерно так я себе это представляю.<br>"
на здоровье. общими усилиями победили
1C:Лекторий: 14 мая 2024 года — Бесплатная онлайн-лекция об учете в 1С:БГУ 8 (ред. 2) невостребованной кредиторами задолженности. Серия 1С:Консалтинг для госсектора 1C:Лекторий: 16 мая 2024 года — Бесплатная онлайн-лекция о новом в «1С:Бухгалтерии 8» (релизы 3.0.148 – 3.0.151): новая методика учета расчетов на ЕНС с 2024 года; календарь отчетности; цифровой рубль |
1C:Лекторий: 23 мая 2024 года — Бесплатная онлайн-лекция об учете финансовой аренды у арендодателя в программах 1С:ERP и 1С:КА 1C:Лекторий: 6 июня 2024 года — Бесплатная онлайн-лекция об отражении расчетов на ЕНС в «1С:Бухгалтерии 8» |