В практике администрирования и разработки на платформе 1С:Предприятие 8.3 часто встречается коварная ситуация: внешняя обработка или расширение (например, для загрузки данных из Excel в ЗУП) исправно работает у всех сотрудников, кроме одного. При этом стандартные действия, такие как перезапуск программы или переустановка расширения, не приносят результата. Более того, ошибка может «мигрировать» вместе с именем пользователя, даже если создать его заново. Рассмотрим детально, почему это происходит и как пошагово решить проблему.
Если ошибка сохраняется даже при создании нового пользователя с тем же именем или в копии базы данных, это однозначно указывает на то, что проблемные данные хранятся внутри самой информационной базы и привязаны либо к Имени пользователя, либо к его уникальному идентификатору (GUID). Проанализируем основные места хранения пользовательских настроек, которые могут влиять на исполнение программного кода.
В современных конфигурациях, использующих Библиотеку стандартных подсистем (БСП), таких как «Зарплата и управление персоналом», настройки пользователей хранятся в специальных регистрах сведений. Проблема часто заключается в некорректно записанном значении в одном из таких регистров.
Разберем, как выполнить очистку:
Если программный код расширения обращается к настройкам через ХранилищеОбщихНастроек, ошибка может быть скрыта именно там. Для программной очистки можно использовать следующий код:
// Пример удаления настроек конкретного пользователя
ИмяПользователя = "ИвановИИ";
ХранилищеСистемныхНастроек.Удалить("Общее/НастройкиФормы", "ЗагрузкаИзExcel", ИмяПользователя);
Одной из наиболее частых причин сбоя при загрузке из Excel является изменение состава колонок пользователем вручную. Если пользователь через меню Еще — Изменить форму скрыл важную колонку или переименовал ее, программный алгоритм расширения, обращающийся к элементам формы, может выдать исключение.
Выясним, как вернуть стандартный вид:
Помимо очевидных настроек, 1С хранит состояние окон, историю выбора и данные форм в системных таблицах. Рассмотрим работу с ХранилищеНастроекДанныхФорм. Если расширение запомнило «битый» путь к файлу Excel или неверные параметры сопоставления колонок, оно будет пытаться восстановить их при каждом запуске.
Для радикального решения проблемы рекомендуется воспользоваться консолью запросов или специальной обработкой «Администрирование настроек пользователей» с диска ИТС. Мы можем программно очистить все настройки для конкретного объекта:
// Очистка настроек данных всех форм для пользователя
ПользовательОбъект = Справочники.Пользователи.НайтиПоНаименованию("ПетровПП");
НастройкиКурсора = ХранилищеНастроекДанныхФорм.Выбрать(Новый Структура("Пользователь", ПользовательОбъект.Имя));
Пока НастройкиКурсора.Следующий() Цикл
ХранилищеНастроекДанныхФорм.Удалить(НастройкиКурсора.КлючОбъекта, НастройкиКурсора.КлючНастроек, ПользовательОбъект.Имя);
КонецЦикла;
Иногда фраза «у одного пользователя не работает» означает, что именно у него недостаточно прав на объекты, к которым обращается расширение. Если расширение не использует флаг БезопасныйРежим = Ложь или если в нем не прописаны права на чтение вспомогательных справочников, система выдаст ошибку.
Проанализируем ситуацию:
Если база работает в клиент-серверном варианте, стандартная очистка папки %AppData%\Local\1C\1Cv8 на локальном компьютере может не помочь. Данные о сеансе и пользовательские настройки могут кэшироваться на стороне сервера 1С.
Рассмотрим порядок действий для администратора:
C:\Program Files\1cv8\srvinfo).snccntx. Удаление временных файлов в этом каталоге (при остановленной службе 1С) гарантированно очищает серверный кеш настроек. Внимание: это радикальная мера, требующая остановки работы всех пользователей.Если мы не можем найти конкретную причину, можно попробовать «перекрыть» битые настройки эталонными. В справочнике Пользователи (или через панель администрирования БСП) выберем команду Копирование настроек.
Посмотрим на алгоритм:
Это действие перезапишет ключи в системных таблицах базы данных, что зачастую помогает обойти программные ошибки, связанные с десериализацией старых настроек.
Как мы выяснили, большинство «индивидуальных» ошибок в 1С связаны не с кодом как таковым, а с данными, которые этот код сохраняет в контексте пользователя. Очистка персональных настроек через интерфейс 1С:ЗУП — самый быстрый и эффективный способ. Если он не помогает, следует последовательно переходить к очистке настроек форм и проверке прав доступа RLS. Помните, что простое переименование пользователя в конфигураторе часто не помогает, так как многие механизмы БСП продолжают искать настройки по ссылке на объект в справочнике Пользователи.