Проблема избирательного отображения данных в журналах — одна из классических задач для разработчика на платформе 1С:Предприятие 7.7. Ситуация, когда один и тот же документ открывается с заполненной суммой у одного пользователя (например, администратора) и с пустой колонкой у другого (например, кладовщика), часто вызывает недоумение. Разберем детально, как устроена механика вывода данных в журналы и где искать «пропавшую» сумму.
Прежде чем приступать к исправлению, нам необходимо выяснить, каким именно способом значение выводится в журнал. В системе 1С 7.7 существует три основных варианта настройки колонок журнала. Рассмотрим каждый из них по отдельности, чтобы понять методику диагностики.
Всего). Если итог не виден, значит, система не может корректно просуммировать строки или доступ к табличной части ограничен.глПолучитьСумму(Контекст)), которая вычисляется «на лету» при прорисовке каждой строки журнала. Если сумма пропадает только у определенных пользователей, причина чаще всего кроется именно здесь.Проанализируем настройки вашего журнала. Откроем Конфигуратор, найдем нужный журнал документов и перейдем на закладку «Графы». Найдем графу Сумма и откроем её свойства. Посмотрим, что указано в поле «Данные» или «Формула».
Если в поле «Данные» выбран конкретный реквизит, проверим его заполнение. Выясним, является ли он Общим реквизитом. Для общих реквизитов критически важна настройка «Сортировка» и «Отбор». Если реквизит не участвует в отборе, он может некорректно отображаться в некоторых режимах просмотра журнала.
Если технически колонка настроена верно, но данные всё равно не видны под конкретным пользователем, рассмотрим ситуацию с точки зрения прав доступа и настроек интерфейса. В типовых конфигурациях, таких как «Торговля и Склад» (ТиС), часто используются глобальные переменные и функции для контроля видимости конфиденциальной информации.
Проанализируем глобальный модуль. Найдем функцию, которая отвечает за вывод суммы (если в графе журнала указана функция). Часто внутри такой функции можно встретить подобный код:
Функция глПолучитьСуммуДокумента(Конт) Экспорт
Если глПроверкаПраваПользователя(Конт.ТекущийДокумент(), "ПросмотрЦен") = 0 Тогда
Возврат 0; // Или пустая строка
КонецЕсли;
Возврат Конт.Итог("Сумма");
КонецФункции
В этом примере мы видим, что система принудительно возвращает 0, если у пользователя в справочнике Пользователи или в полномочиях отключена опция «Разрешить просмотр цен». Это объясняет, почему под администратором сумма есть, а под рядовым сотрудником — нет. Проверьте настройки прав именно этого пользователя в режиме «1С:Предприятие».
Если программная логика запутана (конфигурация сильно переписана), воспользуемся отладчиком. Запустим систему под пользователем, у которого не отображается сумма. В Конфигураторе установим точку останова в функции, которая вызывается из журнала.
Посмотрим на значения переменных в момент вызова:
Конт).НазваниеИнтерфейса(). Часто разработчики завязывают логику на конкретное имя интерфейса. Если у пользователя назначен кастомный интерфейс, условие может не срабатывать.Валюты, функция пересчета может выдавать ошибку или пустой результат.Иногда проблема кроется не в данных, а в визуальном отображении. Рассмотрим вероятность того, что колонка просто скрыта или имеет нулевую ширину. В 1С 7.7 настройки ширины колонок журналов сохраняются индивидуально для каждого пользователя в системном реестре Windows.
Если вы используете внешние компоненты, такие как FormEx, они позволяют динамически управлять видимостью колонок. Проанализируем модуль формы журнала (процедуры ПриОткрытии или ПриВыбореЗакладки). Там может находиться код, управляющий колонками в зависимости от прав:
// Пример кода с использованием FormEx
Сервис = СоздатьОбъект("Сервис");
Если глТекущийПользователь.Статус = "Кладовщик" Тогда
Сервис.СкрытьКолонку(Контекст, "Сумма");
КонецЕсли;
Если такого кода нет, попробуйте сбросить настройки интерфейса пользователя. Для этого можно временно переименовать папку пользователя в каталоге базы данных или очистить ветку реестра HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<ИмяБазы>\V7Default\ColumnWidths.
Если проблема носит хаотичный характер (то появляется, то исчезает), проанализируем состояние индексных файлов. В файловой версии .dbf повреждение файла .cdx может привести к тому, что данные из табличных частей не будут суммироваться корректно для отображения в журнале.
Выполним следующие действия:
.cdx в каталоге базы данных.Это исключит ошибки позиционирования базы данных, которые могут влиять на расчет итогов «на лету» в списках документов.
Подведем итог: если сумма в журнале 1С 7.7 видна не всем, мы действуем по следующему алгоритму:
Во-первых, определяем способ вывода суммы в свойствах графы журнала в Конфигураторе.
Во-вторых, проверяем права пользователя на просмотр цен и сумм в справочнике полномочий (для ТиС и аналогичных конфигураций).
В-третьих, исследуем глобальный модуль на предмет функций, возвращающих результат в зависимости от интерфейса или прав доступа.
В-четвертых, проверяем физическую ширину колонки и настройки интерфейса в реестре, чтобы исключить чисто визуальное скрытие данных.
Следование этой методике позволит вам быстро найти причину и вернуть корректное отображение данных всем необходимым сотрудникам.