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