В процессе администрирования и ведения учета в программном продукте «1С:Бухгалтерия предприятия 3.0» специалисты часто сталкиваются с неочевидным поведением интерфейса. Типичный сценарий: в базе данных работал единственный пользователь (или пользователи не были заведены вовсе), и все документы отображались корректно. Однако после создания новой учетной записи (например, для второго бухгалтера или кладовщика) у основного администратора или бухгалтера внезапно пропадает поле «Порядок отражения БУ» в банковских документах, таких как «Списание с расчетного счета» или «Поступление на расчетный счет». Более того, этот пункт исчезает даже из настроек формы документа.
Если полностью удалить всех пользователей из информационной базы через Конфигуратор, поле волшебным образом возвращается на свое место. В этой статье мы подробно разберем, почему так происходит, проанализируем программный код системы, определяющий видимость этого элемента, и предоставим пошаговое руководство по решению проблемы в пользовательском режиме.
Для того чтобы понять природу этой проблемы, нам необходимо рассмотреть, как платформа «1С:Предприятие 8.3» и конфигурация «Бухгалтерия предприятия» работают с персональными настройками среды.
Когда в информационной базе 1С полностью отсутствует список пользователей (база «пустая» с точки зрения авторизации в Конфигураторе), система функционирует в режиме совместимости. В этом режиме программа автоматически применяет ко всем сессиям глобальные («максимальные») настройки интерфейса. Это сделано для того, чтобы упростить первоначальное знакомство с системой и не блокировать важные аналитические разрезы.
Как только администратор создает хотя бы одного пользователя в Конфигураторе или в режиме «1С:Предприятие»:
В результате, даже если вы заходите под учетной записью с полными правами (например, «Администратор»), программа инициализирует ваш профиль с базовыми пользовательскими настройками, где отображение счетов учета выключено. Именно поэтому пропадает и связанный с ними пункт «Порядок отражения БУ».
Давайте проведем небольшой технический анализ и посмотрим, какими алгоритмами руководствуется система при определении видимости реквизитов БУ на форме документов. Обратим внимание на код, управляющий элементом формы ЭлементГруппаПорядокОтраженияБУ.
В модуле формы документа «Списание с расчетного счета» (и аналогичных банковских документов) видимость группы порядка отражения регулируется следующим выражением:
ЭлементГруппаПорядокОтраженияБУ.Видимость = Форма.ПользовательУправляетСчетамиУчета И ЭтоУплатаНалога;
Как мы видим, ключевую роль здесь играет свойство ПользовательУправляетСчетамиУчета. Давайте заглянем внутрь этой функции, чтобы понять, какие условия должны выполниться для возврата значения Истина:
Функция ПользовательУправляетСчетамиУчета() Экспорт
Возврат СчетаУчетаВДокументах.ПравоПросмотраСчетовУчета()
И БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ПоказыватьСчетаУчетаВДокументах");
КонецФункции
Проанализируем данную функцию. Она проверяет два независимых условия, объединенных логическим оператором И. Это значит, что для появления поля на форме оба условия должны одновременно вернуть Истина.
Условие 1. Право доступа к плану счетов. Метод СчетаУчетаВДокументах.ПравоПросмотраСчетовУчета() проверяет наличие у текущего пользователя прав на просмотр плана счетов. В кодовой базе это реализовано через проверку прав доступа к метаданным:
Возврат ПравоДоступа(
"Просмотр",
Метаданные.ПланыСчетов.Хозрасчетный,
ПользователиИнформационнойБазы.ТекущийПользователь());
Для выполнения этого условия у пользователя в его профиле групп доступа должны быть активны роли, позволяющие работать с бухгалтерским учетом. К таким ролям относятся:
ПолныеПраваЧтениеДанныхБухгалтерииЧтениеДанныхБухгалтерскогоУчетаДобавлениеИзменениеДанныхБухгалтерииДобавлениеИзменениеНастроекБухгалтерииУ системного администратора и главного бухгалтера эти права, как правило, всегда активны. Следовательно, первое условие выполняется успешно.
Условие 2. Персональная настройка пользователя. Второе условие обращается к функции БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ПоказыватьСчетаУчетаВДокументах"). Она считывает значение индивидуальной константы из настроек конкретного пользователя, авторизованного в данный момент в сеансе 1С. Если у нового пользователя эта галочка не установлена (а при создании пользователя она всегда сброшена), функция возвращает Ложь. В итоге вся цепочка проверок рушится, и поле скрывается с формы.
Поскольку проблема кроется не в программных ошибках или правах доступа, а исключительно в персональном окружении пользователя, решить ее можно очень быстро непосредственно в режиме «1С:Предприятие». Разовые изменения необходимо внести под учетной записью того пользователя, у которого пропало поле БУ.
Рассмотрим стандартный и самый надежный способ включения отображения счетов учета:
Существует также альтернативный способ быстрого перехода к этой настройке через План счетов, который может быть удобен в некоторых релизах конфигурации:
После активации этой опции обязательно вернитесь в любой банковский документ (например, откройте «Списание с расчетного счета»). Вы увидите, что в форме документа снова отображается поле «Порядок отражения БУ», а счета учета стали доступны для редактирования и настройки.
Для того чтобы избежать подобных недоразумений в будущем при добавлении новых пользователей, рекомендуем администраторам баз данных придерживаться следующих правил: