|
0
Kelling
13.02.26
✎
11:21
|
Добрый день! У клиента при переводе БД с файловой на клиент-серверную возникает ошибка в модуле НастройкаПравДоступа. Конф. УТ 10.3, Платформа 8.3.18.1208.
Текст ошибки следующий:
{ОбщийМодуль.НастройкаПравДоступа.Модуль(964,4)}: Процедура или функция с указанным именем не определена (Предупреждение)
<<?>>Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
{ОбщийМодуль.НастройкаПравДоступа.Модуль(968,5)}: Процедура или функция с указанным именем не определена (Предупреждение)
<<?>>Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
{ОбщийМодуль.НастройкаПравДоступа.Модуль(983,4)}: Процедура или функция с указанным именем не определена (Предупреждение)
<<?>>Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
{ОбщийМодуль.НастройкаПравДоступа.Модуль(987,5)}: Процедура или функция с указанным именем не определена (Предупреждение)
<<?>>Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
В коде ошибку вызывает эта строка:
Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Я не занимаюсь программированием, я системный администратор. Через форумы и нейросети нашёл решение, что можно изменить строку с ошибкой на:
Сообщить("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Это помогло, ошибка ушла, смена открывается, документ записывается. также документы раньше даты запрета не редактируются, но информационного окна нет, там просто кнопки "ОК" и "Записать" не кликабельны.
Однако нашёл ещё один способ, он также работает:
ТекстОшибки = "Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " удалять запрещено!";
ВызватьИсключение ТекстОшибки;
Процедуры которые вызывают ошибки:
1:
Процедура ПередПопыткойУдаленияПередУдалением(Источник, Отказ) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Если НЕ РольДоступна("ИзменениеДатыЗапретаРедактирования") Тогда
// проверить дату изменяемого документа
Если Источник.Дата < Константы.ДатаЗапретаРедактирования.Получить() Тогда
Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Отказ = Истина;
Иначе
Если Источник.Ссылка.Дата < Константы.ДатаЗапретаРедактирования.Получить() Тогда
Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
2:
Процедура ПередЗаписьюДокументовПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Если НЕ РольДоступна("ИзменениеДатыЗапретаРедактирования") Тогда
// проверить дату изменяемого документа
Если Источник.Дата < Константы.ДатаЗапретаРедактирования.Получить() Тогда
Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Отказ = Истина;
Иначе
Если (НЕ Источник.ЭтоНовый()) И (Источник.Ссылка.Дата < Константы.ДатаЗапретаРедактирования.Получить()) Тогда
Предупреждение("Документы в периоде ранее " + Константы.ДатаЗапретаРедактирования.Получить() + " изменять запрещено!");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
А теперь я не знаю, какой вариант правильный и учитывая, что кнопки вообще не кликабельны, нужен ли этот код? Как правильно поступить?
Буду крайне благодарен за пояснение.
|
|