1с регистр не отображается в подсистеме
Сегодня мы с вами изучим новый механизм, который называется "Подсистемы".
Данный механизм помогает сделать разделение функционала на подсистемы (разделы, блоки). Эти подсистемы могут включать в себя подчиненные подсистемы, то есть иерархия.
Как и в любой книге есть разделение ее на главы (части, разделы, тома), там и в платформе есть своеобразное деление.
Как и все объекты, подсистемы тоже создаются в режиме разработчика и визуальное отображение мы видим в пользовательском режиме - пользовательский интерфейс (Рисунок 1).
Перейдем к практике и к созданию такого интерфейса.
Откроем режим разработчика нашей ИБ, на дереве конфигурации раскроем ветвь "Общие" и найдем там строку "Подсистемы". Подсистемы добавляются как и другие объекты - через правую кнопку или нужно выделить и нажать на плюсик в верхней панели. Добавим следующие подсистемы: Продажи, Закупки, Управление, Прочее (Рисунок 2).
Теперь выполним команду "Сервис-1С:Предприятие" - переход в пользовательский режим и сразу же получим много оповещений (Рисунок 3).
О чем говорят эти оповещения?
Они говорят о том, что у вас есть объекты: константы, справочники и другие, которые не включены в подсистемы! Эти оповещения - это не ошибки, а предупреждения о том, что у вас в режиме пользователя ничего не отобразится. Давайте проверим. Нажмем кнопку "" и запустится пользовательский режим и выглядит он так (Рисунок 4).
Здесь мы видим все наши подсистемы, которые создали и еще одну подсистему, которую не создавали - с этим мы разберемся немного позже, а сейчас необходимо сделать так, чтобы в наших подсистемах что-то появилось!
Для этого перейдем в режим разработчика, ветвь "Общие" и откроем подсистему "Управление" (Рисунок 5). Перейдем на вкладку "Состав" и там галочками отметим то, что мы хотим видеть в этой подсистеме.
Потом перейдем в подсистему "Закупки" и сделаем тоже самое (Рисунок 6).
И для подсистемы "Продажи" выполним абсолютно те же действия (Рисунок 7).
После этого запустим пользовательский режим (видим, что предупреждений нет больше) и проверим все наши подсистемы (Рисунок 8).
Давайте теперь разберемся с тем, что мы видим после создания подсистем (Рисунок 9).
Есть подсистемы, которые мы создавали и есть подсистема "Главное", которая появилась сама. Здесь нет ничего странного, это механизм платформы. Как только вы создаете подсистемы, она понимает, что должна добавить свою стандартную подсистему (ее нельзя отключить) для вывода на нее самой важной информации по предприятию.
В дальнейшем эту главную (начальную) страницу мы научимся заполнять информацией, но пока она пуста!
В следующем уроке мы с вами научимся выставлять картинки для созданных подсистем и заполнять главную страницу (начальную страницу) необходимой и важной информацией, а так же менять порядок подсистем.
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете вернуться к предыдущим урокам и посмотреть как это делалось - ссылки внизу!
Почему мой справочник не видно в интерфейсе?
Несмотря на кажущуюся простоту вопроса, с подобной проблемой рано или позно сталкивается практически любой разработчик, когда вдруг он не видит в интерфейсе того, что ожидал. Например, какого-то раздела, или команды перехода к списку справочника.
В такой ситуации нужно проанализировать, что же сделано не так? Алгоритм проверки прост - сначала нужно убедиться, что все в порядке с разделом, к которому относится объект, а затем, что все в порядке с самим объектом.
Для примера рассмотрим справочник Контрагенты , относящийся к подсистеме (разделу) Закупки .
Сначала проверим раздел. Убедимся что:
1. Для той подсистемы, к которой относится искомый объект, и всех подсистем, которые находятся выше ее по иерархии установлено свойство подсистемы Включать в командный интерфейс . Для этого вызовем контекстное меню подсистемы Закупки и откроем палитру свойств этой подсистемы.
2. Откроем командный интерфейс конфигурации и проверим, что в нем установлена видимость этой подсистемы (или подсистемы ее верхнего (первого) уровня). Если в конфигурации созданы роли, то нужно обратить внимание также и на то, как настроена видимость для различных ролей. Для этого выделим корень дерева объектов конфигурации, вызовем его контекстное меню и выполним команду Открыть командный интерфейс конфигурации .
3. Откроем состав объектов подсистемы и убедимся, что подсистема включает в себя хотя бы один объект конфигурации. Если подсистема не содержит ни одного объекта, она не будет отображена в командном интерфейсе. Для этого в окне редактирования подсистемы Закупки откроем закладку Состав .
4. Откроем командный интерфейс подсистемы и проверим, что хотя бы одна команда (стандартная или созданная в конфигурации) доступна для настройки в этой подсистеме. Если таких команд нет – подсистема не будет отображена. При этом важно лишь наличие этих команд, а не их видимость. Для этого вызовем контекстное меню подсистемы Закупки и выполним команду Открыть командный интерфейс .
Если в составе команд нет вашей стандартной команды объекта, значит для объекта отключено использование стандартных команд (см. п.1 ниже).
Если в составе команд нет команды, созданной в конфигурации, значит, ей не назначена группа (см. п.2 ниже).
Если для команды назначена не группа подсистемы, а какая-то группа формы, то для того, чтобы команда стала доступна в интерфейсе форм необходимо задать еще и тип параметра этой команды (см. п.2 ниже).
5. Если в конфигурации созданы пользователи, и им назначены определенные роли, то убедимся, что в правах пользователя разрешено использование той подсистемы, к которой относится искомый объект, и всех вышестоящих по иерархии подсистем. Для этого откроем окно редактирования роли (например, Менеджер по закупкам ), которая назначена пользователю, под именем которого будет происходить работа с прикладным решением.
6. Если в конфигурации созданы функциональные опции, и они связаны с каким-либо объектом конфигурации, то этот объект будет отображен в интерфейсе только в случае, если соответствующая функциональная опция включена в прикладном решении. Поэтому убедимся, что та подсистема, к которой относится искомый объект, и все вышестоящие по иерархии подсистемы, не отключены функциональными опциями в режиме исполнения. Для того, чтобы узнать, с какими функциональными опциями связана подсистема, вызовем контекстное меню подсистемы Закупки и выполним команду Дополнительно .
В нашем случае подсистема не связана ни с одной из функциональных опций. Это значит, что отображение подсистемы в интерфейсе не будет зависеть от значения функциональной опции в прикладном решении.
7. В заключение, в режиме 1С:Предприятие проверим, что раздел, к которому относится искомый объект, и все вышестоящие по иерархии разделы, не отключены пользовательскими настройками панели разделов.
Вернуться к настройкам, выполненным в конфигураторе, можно с помощью команды Все действия – Установить стандартные настройки в окне настройки панели разделов.
Теперь проверим все, что относится к самому объекту:
1. Что для искомого объекта разрешено использование стандартных команд. Для этого вызовем контекстное меню справочника Контрагенты и откроем палитру его свойств.
2. Если у объекта существует нестандартная команда, то чтобы увидеть ее в интерфейсе убедимся, что для нее задана группа и, если команда параметризованная, - тип параметра команды. Для этого вызовем контекстное меню нестандартной команды Печать справочника Контрагенты и откроем палитру ее свойств.
Иначе команда будет недоступна в командном интерфейсе, а параметризованная команда будет недоступна для включения в командный интерфейс форм, соответствующих ее параметру.
3. Откроем командный интерфейс подсистемы и убедимся, что включена видимость команды в подсистеме. При этом нужно обратить внимание не только на то, как настроена видимость по-умолчанию, но и на то, как она настроена для различных ролей. Для этого вызовем контекстное меню подсистемы Закупки и выполним команду Открыть командный интерфейс .
4. Откроем окно редактирования роли (например, Менеджер по закупкам ) и проверим, что в правах этой роли разрешено использование искомой команды. Если речь идет о стандартной команде (например, открытия списка справочника) – нужно проверить права на сам объект.
Если речь идет о нестандартной команде (например, Печать ) – нужно проверить права на эту команду.
5. Убедимся, что объект или команда не отключены функциональными опциями в режиме исполнения. Для того, чтобы узнать, с какими функциональными опциями связан объект, вызовем контекстное меню справочника Контрагенты и выполним команду Дополнительно .
6. В заключение, в режиме 1С:Предприятие проверим, что команда не отключена пользовательскими настройками.
Вернуться к настройкам, выполненным в конфигураторе, можно с помощью команды Все действия – Установить стандартные настройки .
Заметим, что для небольших конфигураций может быть не создано ни одной подсистемы. В этом случае команды для работы с объектами конфигурации будут помещены в раздел Рабочий стол , который создается системой по умолчанию. Вызвав из контекстного меню корня дерева объектов конфигурации команду Открыть командный интерфейс рабочего стола , можно редактировать командный интерфейс этого раздела.
Статья входит в цикл «Первые шаги в разработке на 1С». В ней мы продолжаем знакомиться с управляемым интерфейсом «Такси» и приступаем непосредственно к его конфигурированию.
Как известно, разработка интерфейса информационной базы начинается с создания структуры его меню, ведь насколько удобным и логичным оно будет, настолько понятным пользователю будет вся система в целом.
Прочитав статью, вы узнаете:
- Какую роль в формировании структуры меню играет подсистема?
- Как сформировать разделы меню 1-го и 2-го уровня?
- Как настроить состав команд, отображаемых в разделах меню?
- Для чего нужен редактор Командного интерфейса и как с ним работать?
- Как настроить Командный интерфейс основного раздела?
Применимость
В статье рассматривается интерфейс «Такси» конфигурации, разработанной на платформе 1C 8.3.4.496. Информация актуальна для текущих релизов платформы.
Подсистемы. Настройка интерфейса с помощью подсистем
Подсистемы относят к общим объектам. Они обеспечивают возможность классификации объектов конфигурации по Подсистемам.
Для указания принадлежности объекта к подсистемам в Окне редактирования объекта существует соответствующая закладка, на которой флагами отмечается, к каким подсистемам относится объект.
В дальнейшем можно выстроить фильтр дерева объектов по Подсистемам.
При этом имеется возможность управления: включать для выбранных Подсистем объекты подчиненных Подсистем и родительских Подсистем или нет.
Классификация объектов по Подсистемам создает удобство при создании Ролей.
Для объекта Роль можно определить соответствующие права и указать, что данную Роль можно построить только по тем объектам, которые входят в выбранные Подсистемы.
Похожим образом Подсистемы используются при создании Интерфейсов. Интерфейсы нужны только в том случае, если конфигурация запускается в режиме Обычного приложения.
Классификация объектов по Подсистемам используется также при объединении конфигураций. Т.е. можно объединять объекты, отфильтрованные по Подсистемам.
Важное предназначение Подсистем состоит в том, что от них строится командный интерфейс конфигурации в режиме Управляемое приложение. Подсистемы первого уровня определяют Панель разделов.
Для существующих Подсистем можно определять вложенные (подчиненные). Данные Подсистемы будут образовывать группы Панели навигации.
Не рекомендуется создавать подсистемы с уровнем вложенности больше двух, так как в противном случае интерфейс будет сложно читаемым.
Когда мы классифицируем объект по Подсистемам, возможно включить объект только во вложенную Подсистему, возможно в Подсистему первого уровня, возможно и в ту и в другую.
В последнем случае объект будет отображаться дважды: и внутри вложенной Подсистемы и отдельно в Панели навигации. В большинстве случаев это не совсем правильно.
В принципе, Подсистемы являются не обязательным объектом. Т.е. конфигурация, разработанная на Платформе 8.3, вполне сможет работать без каких-либо Подсистем.
Но в этом случае Панели разделов вообще не будет, все будет отображаться на Рабочем столе. Очень простые конфигурации с малым набором объектов смогут работать и без Подсистем.
Но если в конфигурации достаточно много Документов, Справочников и Регистров, использование Подсистем существенно облегчает работу пользователя.
Отметить, что некоторый объект конфигурации принадлежит какой-либо Подсистеме можно тремя способами.
Во-первых, это можно сделать в Окне редактирования объекта на закладке Подсистемы. Данный вариант мы уже рассматривали.
Во-вторых, можно использовать Окно редактирования самой Подсистемы. На закладке Состав можно указать объекты, входящие в данную Подсистему.
И наконец, для объектов конфигурации через контекстное меню можно вызвать специальное диалоговое окно, которое называется Дополнительно.
Данное окно также позволяет для объекта отмечать принадлежность к Подсистемам. Это окно используется в том случае, если мы хотим сразу поработать с несколькими объектами.
При перемещении курсора по объектам дерева конфигурации в окне Дополнительно высвечивается соответствующая информация по подсистемам.
При создании объекта конфигурации по умолчанию Платформа 8.3 не проставляет привязку объекта ни к какой подсистеме.
Т.е. разработчик должен сам зайти на эту закладку и проставить соответствующие галочки.
Если разработчик этого не выполнит, то система определит отсутствие принадлежности к Подсистемам как ошибку.
Но ошибка не является критичной, поэтому с этим можно согласиться.
Фактически система справочно сообщает о том, что, возможно, Вы забыли включить новые объекты в Подсистемы. В этом случае объекты не будут отображаться в командном интерфейсе.
К таким объектам пользователь может обратиться только через Главное меню, используя команду Все функции.
Естественно, чтобы объект возможно было открыть, необходимо, чтобы пользователю были предоставлены соответствующие права.
Существует ряд случаев, когда разработчикам удобнее включать добавленные в типовую конфигурацию объекты в свою отдельную подсистему.
Для Подсистем в Окне редактирования можно снять флаг Включать в командный интерфейс.
При этом Подсистемы не будут отображаться в командном интерфейсе. Если нет ни одной Подсистемы, которая должна быть включена в командный интерфейс, то для новых объектов Платформа 8.3 не проверяет принадлежность к какой-либо подсистеме.
Для того, чтобы настроить состав команд, которые включаются в соответствующий раздел, определяемый подсистемой, существует специальный редактор.
Данный редактор можно вызвать из окна редактирования Подсистемы нажатием на кнопку Командный интерфейс (на закладке Основные).
Можно для каждой Подсистемы вызвать данный редактор. Из редактора имеется возможность управлять открытием списков в Панели навигации, доступностью команд в Панели действий.
По умолчанию флажки для команд по созданию элементов Справочников и Документов сняты, но их можно проставить. В Панели действий можно также открывать отчеты.
Элементы в редакторе можно перемещать. При этом из Панели навигации в Панель действий и в обратном направлении перемещение невозможно. Перемещать элементы можно либо внутри Панели навигации, либо внутри Панели действий.
Существуют колонка общей видимости и колонки видимости по ролям. Для каждой роли, определенной в конфигурации, будет своя колонка. То значение, которое установлено в колонке общей видимости, является значением по умолчанию для видимости по ролям.
Видимость по ролям может принимать три значения: либо для данной роли элемент будет невидимым (1); либо будет виден всегда, не зависимо от того, какой флаг выставлен в колонке видимости (2); либо флаг видимости по роли будет наследоваться от флага общей видимости (3).
Если пользователю назначены две роли и для одной их них указан флажок, а для другой нет, то будет работать стандартное правило системы 1С:Предприятие 8 – действие пользователю разрешено, если оно разрешено в одной из ролей.
Иногда бывает необходимо сразу менять командный интерфейс в нескольких Подсистемах. В платформе 1C:Предприятие 8 существует сервисный инструмент, который позволяет редактировать командный интерфейс сразу нескольких Подсистем.
Данный инструмент вызывается из контекстного меню корневого узла ветки Подсистемы.
В открывшемся окне можно быстро перемещаться по Подсистемам и редактировать командные интерфейсы. Кроме того, в данном окне можно редактировать состав Подсистемы. Также можно перемещать объекты в Панели навигации и Панели действий.
Кроме того, можно даже изменить подчиненность Подсистемы. Для этого есть специальная кнопка Переместить подсистему.
Чтобы настроить командный интерфейс Основного раздела также используется редактор командного интерфейса.
Вызывается он уже не для Подсистем, а через контекстное меню корневого узла конфигурации, пункт Открыть командный интерфейс основного раздела.
В открывшемся окне мы можем указывать: какие Справочники, Документы и другие объекты входят в данный командный интерфейс. Также можно включать их видимость и управлять видимостью по ролям.
Следует иметь в виду, что при удалении Подсистем Платформа, к сожалению, не проверяет: входит ли в данную подсистему хоть один объект или не входит.
На этом завершим наше знакомство с настройкой структуры меню информационной базы. В следующей статье мы продолжим наше знакомство с Управляемым интерфейсом и рассмотрим, какие возможности предоставляет платформа «1С:Предприятие 8» для работы со списками.
PDF-версия статьи для участников группы ВКонтакте
Статья в PDF-формате
Работая с современными типовыми решениями 1С, построенными на основе библиотечного подхода, специалистам 1С нужно обязательно знать о существовании регистра сведений “Версии подсистем”. Вопрос “Где посмотреть версию библиотеки, встроенную в типовое решение?” слушатели задают очень часто. Но мало знать “где?”, нужно понимать “для чего?” и “с какой целью?”.
Вопрос
Добрый день! А для каких целей в типовых конфигурациях используется регистр сведений “Версии подсистем”?Ответ
Добрый день! Это следствие библиотечного подхода при разработке конфигураций. Существует целый ряд библиотек – Библиотека стандартных подсистем (БСП), Библиотека подключаемого оборудования (БПО), Библиотека интернет-поддержки (БИП) и так далее. Каждая из них разрабатывается отдельно, следовательно, имеет свою нумерацию версий. Затем эти библиотеки интегрируются в типовые конфигурации, например, в 1С:БП, 1C:УТ и прочие. Нужно знать, какая версия конкретной библиотеки используется в текущей базе с типовой конфигурацией. Поскольку библиотек много, используется регистр сведений Версии подсистем для хранения этих данных:
Также при обновлении версии библиотеки часто бывает нужно выполнить определенные действия при запуске приложения в пользовательском режиме. Например, дозаполнить новые реквизиты, перенести данные из одной структуры хранения в другую (из реквизита в регистр) и т.д. Для этого в пользовательском режиме нужно знать, какая версия библиотеки сейчас используется в базе. И если номер версии библиотеки изменился, нужно выполнить обработчики обновления. После того, как эти обработчики отработали, можно записать в регистр новую версию библиотеки. Тогда при следующем запуске обработчики обновления не будут запускаться.
В моем случае новые регистры сведений были добавлены в расширение конфигурации с назначением "дополнение". Они были выведены платформой в управляемый интерфейс, но не были доступны при попытке выбрать их в консоли запросов.
На практике по факту получается ситуация, что объекты конфигурации, добавленные в расширении с назначением "доработка" не будут доступны в основной конфигурации. В основной конфигурации становятся доступными объекты из расширений с назначением "Адаптация". Конечно, логически хочется, чтобы работало как дополнение, т.к. часто с этого и начинается создаваться расширение для реализации нужд клиента для доработки дополнительного функционала в базе. Но теория о назначениях расширений четко дает понять, что для новых объектов нужна адаптация.
Так же из теории по данным из книги "Разработка в системе 1С:Предприятие 8.3". Издание 2. Е. Ю. Хрусталева. Назначение для расширения "Исправление" используется для исправления ошибок в конфигурации. Оно первым по очередности из всех расширений применяется к конфигурации. Потом применяются расширения с назначением "Адаптация". Такие расширения содержат доработки конфигурации при внедрении под конкретные задачи клиента. И последними применяются расширения с назначением "Дополнение". Оно может содержать различные дополнительные сервисы для конфигурации (например, набор дополнительных отчетов, обработок).
Так же при работе с расширениями стоит внимательно относится к тому, стоит ли объединять данные одного расширения с данным другого расширения, если они имеют различные назначения. С пример, к чему это привело, можно ознакомиться в описании ошибки "Ошибка при выполнении операции с информационной базой Запись не найдена в менеджере имен базы данных"
Читайте также: