|
Права доступа | ☑ | ||
---|---|---|---|---|
0
Baglandir
06.03.13
✎
17:51
|
Есть типовая обработка "ПечатьПрайсЛиста"
Создал новую роль - Пометил обработку на использования Пометил регистры накопления и сведений на использование . При попытке даже зайти в настройки пишет "Ошибка прав доступа (завершить / перегрузить)" Вот код вызова настройки Процедура КоманднаяПанельНастройка(Кнопка) МетаданныеПрайса = Метаданные(); // Запомним настройки. СоответствиеРеквизитов = Новый Соответствие; Для Каждого Реквизит Из МетаданныеПрайса.Реквизиты Цикл ЗначениеРеквизита = ЭтотОбъект[Реквизит.Имя]; Если ТипЗнч(ЗначениеРеквизита) = Тип("ТаблицаЗначений") Тогда СоответствиеРеквизитов.Вставить(Реквизит, ЗначениеРеквизита.Скопировать()); Иначе СоответствиеРеквизитов.Вставить(Реквизит, ЗначениеРеквизита); КонецЕсли; КонецЦикла; НастройкиПостроителя = ПостроительОтчета.ПолучитьНастройки(); ФормаНастройка = ПолучитьФорму("ФормаНастройки", ЭтаФорма); Результат = ФормаНастройка.ОткрытьМодально(); Если Результат = "ОК" Тогда ОбновитьНастройкиПечати(); ИначеЕсли Результат = "Сформировать" Тогда ОбновитьНастройкиПечати(); ОбновитьОтчет(); ИначеЕсли Результат = "Отмена" Тогда//восстановим настройки Для Каждого Реквизит Из СоответствиеРеквизитов Цикл Если ТипЗнч(Реквизит.Значение) = Тип("ТаблицаЗначений") Тогда ЭтотОбъект[Реквизит.Ключ.Имя] = Реквизит.Значение.Скопировать(); Иначе ЭтотОбъект[Реквизит.Ключ.Имя] = Реквизит.Значение; КонецЕсли; КонецЦикла; ПостроительОтчета.УстановитьНастройки(НастройкиПостроителя); КонецЕсли; КонецПроцедуры // КоманднаяПанельНастройка() |
|||
1
Baglandir
06.03.13
✎
17:52
|
Когда жму на кнопку сформировать - тоже самое
вот код кнопки Процедура ОбновитьОтчет() Экспорт Отказ = Ложь; Если ВВалютеОтчета И НЕ ЗначениеЗаполнено(ВалютаОтчета) Тогда ОбщегоНазначения.СообщитьОбОшибке("Не указана валюта, в которой должен формироваться прайс-лист.", Отказ); КонецЕсли; Если ФлажокЦеныНеИзменилисьС И НЕ ЗначениеЗаполнено(ДатаЦеныНеИзменились) Тогда ОбщегоНазначения.СообщитьОбОшибке("Не указана дата, с которой нужно проверять изменение цен.", Отказ); КонецЕсли; Если ФлажокЦеныНеИзменилисьС И ДатаЦеныНеИзменились > ДатаПрайса Тогда ОбщегоНазначения.СообщитьОбОшибке("Дата, с которой нужно проверять изменение цен, больше даты отчета.", Отказ); КонецЕсли; Если ВВалютеОтчета И ЗначениеЗаполнено(ВалютаОтчета) Тогда ДатаКурса = ?(НЕ ЗначениеЗаполнено(ДатаПрайса), КонецДня(ТекущаяДата()), КонецДня(ДатаПрайса)); КурсВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", ВалютаОтчета)); Если КурсВалюты.Курс = 0 тогда ОбщегоНазначения.СообщитьОбОшибке("Курс валюты отчета """ + ВалютаОтчета.Наименование+""" на дату " + строка(ДатаКурса)+" не определен или нулевой. Формирование отчета невозможно.", Отказ); КонецЕсли; Если КурсВалюты.Кратность = 0 тогда ОбщегоНазначения.СообщитьОбОшибке("Кратность курса валюты отчета """ + ВалютаОтчета.Наименование+""" на дату " + строка(ДатаКурса)+" не определена или нулевая. Формирование отчета невозможно.", Отказ); КонецЕсли; КонецЕсли; Если Не Отказ Тогда // Запоминаем настройку. Настройки = ПостроительОтчета.ПолучитьНастройки(); ЗаполнитьПостроительОтчетаПоЦенамНоменклатуры(); // Восстанавливаем запомненную настройку. ПостроительОтчета.УстановитьНастройки(Настройки); ПечатьПрайсЛиста(ЭлементыФормы.ДокументРезультат); ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ДокументРезультат; КонецЕсли; КонецПроцедуры //ОбновитьОтчет() |
|||
2
Baglandir
06.03.13
✎
17:55
|
а в саму обработку - заходит :/
|
|||
3
ale-sarin
06.03.13
✎
18:01
|
А отладчик-то что говорит? На какой строчке спотыкается?
|
|||
4
Kom-off
06.03.13
✎
18:37
|
(0) А обработку на просмотр?
|
|||
5
Baglandir
06.03.13
✎
19:30
|
есть такой отчет "ОтчетСписокКроссТаблица" ему надо было дать права доступа.
(3) спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |