Засада с СКД Есть отчет, написан на СКД. У пользователя ряд реквизитов в отборах, группировках и т.п. отсутствует. Прав на Просмотр ряда регистров, откуда берутся эти реквизиты нет и не будет (отчет обращается к, например, регистру себестоимость, а пользователям к нему на просмотр доступ закрыт). В справке пишется, что должен быть доступ к просмотру объектов. Есть какой способ обойти эту придурь от разработчиков платформы? |
Придурь - это когда платформа не дает читать то, что сам администратор запретил? [em]Параметры.Объект.ОбменДанными.Загрузка = Истина;[/em] |
Бери в результат запроса поля - результаты левых соединений основных таблиц справочников и т.п. к регистру |
+1 Последняя строка - лишняя. Не из той оперы ;) |
(VZ) - читать платформа позволяет. Хоть запросом, хоть объектной моделью.... а вот со стороны СКД - болт. |
Да, на чтение регистры все открыты (на запись по ограничениям), а на просмотр - фиг вам. нечего пользователям смотреть внутреннюю кухню. у них от этого заворот в мозгах происходит... а мне потом лечи... Кто это в СКД затащил - требование открывать объекты на просмотр, даже не придурок, еще гаже... |
[url]http://its.1c.ru/db/v83doc#bookmark:dev:TI000000640[/url] ● При формировании списка доступных полей учитывается привилегированный режим работы в случае использования из встроенного языка. Если требуется, чтобы состав доступных полей учитывал права доступа пользователя, но при этом в результат компоновки попадали все данные, то рекомендуется выполнять компоновку макета компоновки данных в обычном (не привилегированном режиме), а саму компоновку данных выполнять в привилегированном режиме. |
[quote=Reaper;37888693]то рекомендуется выполнять компоновку макета компоновки данных в обычном (не привилегированном режиме), а саму компоновку данных выполнять в привилегированном режиме.[/quote] Вот эта рекомендация непонятна. каким образом осуществлять компоновку в привелигированном режиме, если у пользователя нет даже полей для настройки отчета. нет необходимых группировок. Доступность этих полей определяется при открытии. |
7-bma1 > Используй обработчик события "При компоновке результата", там отказывайся от стандартной обработки и пиши рУками код для заполнения результата отчета средствами компоновки данных. Код, выполняемый после компоновки макета компоновки данных, выполняй в привилегированном режиме. |
Короче, если судить по рекомендациям с ИТС, эти пи...расы из 1С из вполне приличного инструмента СКД сделали кучу вонючего дерьма. |
[quote=Reaper;37890062] там отказывайся от стандартной обработки и пиши рУками код для заполнения результата отчета средствами компоновки данных. Код, выполняемый после компоновки макета компоновки данных, выполняй в привилегированном режиме.[/quote] Я СКД использовал для того, чтоб у пользователя была возможность очень широко настраивать отчет. Добавлять таблицы, диаграммы и т.п. как он захочет сам. Все эти извраты с вручную написанным кодом ведут только к утрате всех этих возможностей. А без них СКД - это куча унылого дерьма. медланная и тупая. |
Уже 10 строчек написать - непосильный труд? |
[quote=bma1;37890088]Все эти извраты с вручную написанным кодом ведут только к утрате всех этих возможностей.[/quote]кто тебе это сказал? |
автоматизация по одноЭсовски - пЕшите руками |
Управляемые формы более-менее работают при таких условиях. Но вот с обычными формами совсем непонятно. Даже выполнение в привилегированном модуле не дает результата... |
Как страшно жить! |
14-bma1 > В управляемом приложении компоновка результата осуществляется на сервере. В обычном - на клиенте. Привилегированный режим имеет смысл только на сервере. На клиенте не заработает никогда. |
2(16) вот и не понятно, с какой стороны к этой задаче подходить. При отправе всего на сервер в привелигированный модуль результат окончательно все равно такой-же как при обработке только на клиенте. Злодейские методы с временным отключением параметра сеанса - устанавливать ограничение по RLS я не приемлю, слишком опасны. |
Так что, решения для обычных форм не существует? |
Покаж не видно доказательств, что у тебя отчёт компонуется на сервере. |
2(19) Обработчик ПриКомпоновкеРезультата все отправляет в Привилегированный модуль на сервере, где и происходит обработка отчета. Но результат - как будто ничто никуда и не отправляется. Отладчик говорит, что действительно, обработка идет на сервере. |
но, видимо, какие-то предварительные телодвижения СКД все равно выполняет на стороне клиента. P.S. в отчете используются связанные таблицы, так при открытии, хотя предварительная компоновка тоже отсылается на сервер, под пользователем не видны связи между запросами. Т.к. вторая таблица ему по правам закрыта к просмотру. Т.е. и перед предварительной компоновкой тоже где-то что-то происходит... |
21-bma1 >Компоновщик макета где работает? На клиенте или на сервере? |
2(22) Компоновщик запускается на сервере. В привилегированном модуле. |
И в наборе данных макета компоновки запрос получается кастрированным? |
увы... |
"Восьмёрка" сырая |
Текущее время: 23:45. Часовой пояс GMT +3. |