СКД: что меняется в системе под воздействием ролей
и функциональных опций
В этом пособии мы детально разберём, как роли и функциональные опции воздействуют на систему компоновки данных (СКД), а также рассмотрим порядок формирования внешних отчётов в среде 1С.
Функциональные опции СКД: для чего они нужны и как их конфигурировать
Сначала определим, какие опции предусмотрены в изучаемой конфигурации и за что отвечает каждая из них. Работать будем в усовершенствованной консоли СКД из учебной программы «1С Предприятие», взятой с АТС.

Отправная точка — опция «Учёт по складам». Её структура объединяет:
- справочник «Склады»;
- документы, задействованные при формировании операций: «Приход товара», «Расход товара», «Заказ»;
- «Регистры накопления», в которых откладывается перемещение: «Измерения», «Склад».

Эти же данные доступны в конфигураторе.
При переходе в раздел «Регистры накопления» и нажать «Дополнительно», где расположены «Товарные запасы», станет ясно: регистр накопления как таковой в опцию не входит, а параметр «Склад» содержится в опции «Учёт по складам».

Содержится она в константе «Учёт по складам».

Переходим в режим работы с программой «1С Предприятие». В консоли СКД формируем схему: в «Запросе» устанавливаем «Товарные запасы — Остатки», отмечаем имеющиеся графы.

Применим минимальную настройку — детальные записи, — отметив графы: «Склад», «Товар», «Количество — Остаток». Итог этой операции:

Далее в параметрах БД деактивируем соответствующую функцию — уберём галочку «Учёт по складам».

Построим отчёт заново — графы «Склад» в нём не окажется.

При обращении к настройкам обнаружим: графа «Склад» пропала из числа доступных. Если же заглянуть в конструктор СКД, она всё ещё числится в выбранных — но с красным крестом, означающим, что ячейка недоступна.

Вернёмся в параметры системы, снова активируем «Учёт по складам» и войдём в СКД: поле «Склад» восстановится — как в перечне доступных, так и в списке выбранных.

Вывод: когда какое-либо поле фигурирует в перечнях «Наборы данных» или «Вычисляемые поля», но его применение отключено в функциональных опциях, оно исчезнет из списка доступных.
Как влияет отсутствие поля на СКД: создаём внешний отчёт в 1С
Переходим к вопросу о том, как отсутствие полей меняет работу системы компоновки данных.Немного скорректируем запрос: используем физическую таблицу «Товарные запасы» и выделим все поля — «Склад», «Товар», «Количество — Остаток».

В выбранных полях отметим «Регистратор», а также его дочернее поле. Дата», которое тоже» перенесём в список «выбранных».

Поскольку отчёт формируется при «полных правах», всё «работает» корректно.

Сохраним схему в файл и откроем «конфигуратор». Изучим весь перечень «ролей» и убедимся: есть ли среди них та, что запрещает пользователю читать «документы движения товаров — «Приход товара», «Расход товара», «Операция по учёту «товара». Как выяснится, каждая из ролей открывает «возможность чтения» или «доступ к просмотру».

Создадим новую роль «Приход товара» (демо). Предоставим ей возможность администрирования — иначе СКД не запустится, — возможность запуска «Толстый клиент», а также «Интерактивное открытие внешних»: без этого открыть создаваемый внешний отчёт не получится.

В справочнике «Товары» выставляем «Просмотр».

В справочнике «Склады» — право «Ввод по строке».

В документе «Приход товара» открываем полный доступ: «Чтение» и «Просмотр».

Для документа «Расход товара» предоставим право «Чтение» и задействуем ограничение доступности. На вкладке «Условия» пропишем условие «ГДЕ ЛОЖЬ»: оно разрешает адресоваться к таблице документов «Расход товара», однако получить что-либо не получится.

Чтобы хотя бы представление документа оставалось видимым, внесём поля «Ссылка», «Номер», «Дата» — не привязывая к ним каких-либо ограничений.Для документа «Операция по учёту товаров» откроем право «Чтение». Ограничивающее условие — «ГДЕ ЛОЖЬ»; в поля занесём единственную позицию — «Ссылку».

В регистре «Товарные запасы» назначим права «Чтение» и «Просмотр».

Выполним обновление БД и добавим пользователя «Приход товара», деактивировав защиту от угроз — в нашем случае она не нужна. После этого закрепим за ним только что сформированную роль «Приход товара (демо)».

Сформируем новый внешний отчёт и загрузим в него подготовленную СКД. В ней отображаются: «Товарные запасы», «Регистратор», «Регистратор». Дата». В» подробных «записях» указаны «Регистратор» и «Регистратор. »«Дата»» — к ним нужно подойти особенно внимательно.

Сохраним «Внешний отчёт 3» и начнём отладку в режиме «Толстый клиент» под учётной записью «Приход товара».

В наборе данных «Запрос» установим флаг «Разрешённые». Сохраним отчёт, запустим его в режиме «1С Предприятие» и посмотрим, что получилось.

В сформированном отчёте присутствуют «Поступление товара» и «Продажа». Между «Продажей» и «Корректировкой движения товара» заметно различие, обусловленное недостатком доступа:
- для «Расхода товара» были определены «Ссылка», «Номер», «Дата»;
- для «Операции по учёту товара» — исключительно «Ссылка».
Отсюда очевидно, что одной ссылки для отображения «Представления» недостаточно — требуется указать «Номер» и «Дату».

Еще раз посмотрим на отчет: в числе выбранных полей есть «Регистратор», «Склад» и «Товар». Дополним этот список полем «Регистратор. Дата», а чтобы информация выводилась в самостоятельных столбцах, в параметре «Расположение реквизитов» установим значение «Отдельно».
После того как отчёт сформирован, картина такова: поле «Дата» отображается для документов прибытия товаров, но не отображается для «Продажи» и «Корректировки движения документов».

Вернёмся к конфигурированию схемы и изучим актуальные настройки. В разделе «Выбранные поля» укажем «Регистратор». Дата» — она будет присутствовать в числе «выбранных». В «Расположении реквизитов» зафиксируем «значение «Отдельно».

В режиме «1С Предприятие» поле «Регистратор. Дата» отсутствует ни среди доступных, ни среди выбранных — система его удалила.

Важно! Если пользователь не располагает правами как минимум на один из типов, составляющих составной тип (при расхождении полей составного типа в СКД), соответствующее поле окажется закрытым в режиме «1С Предприятие».
Решить эту проблему реально. Когда требуется дата регистратора исключительно с типом «Приход товара», в запрос достаточно вписать: Выразить (Товарные Запасы. Регистратор КАК Документ. Приход товара. Дата).
Эта конструкция даёт СКД указание извлекать значение исключительно из столбца «Количество товара». Она доступна, поэтому поле в режиме «1С Предприятие» удаляться не должно.
Удостоверимся в этом. В обновлённой БД активируем режим «Толстый клиент». Откроем «Внешний отчёт 3»: поле «Регистратор. Дата» присутствует в списке избранных и отражает исключительно время документа поставки продукции.

Таким образом, необходимый внешний отчёт успешно создан и готов к использованию.
Резюмируем
В настоящей статье мы детально рассмотрели:
- функциональные опции СКД — в части расширения возможностей и гибкости конфигурирования;
- влияние ролей на систему компоновки данных;
- специфику создания внешнего отчёта.
Надеемся, что изложенный материал поможет вам в работе.