Имя: Пароль:
1C
1С v8
Права доступа
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) спасибо