Доброе время суток.
Где хранятся значения сохранитьзначение/ восстановитьзначение?
В профиле пользователя они точное не хранятся проверено и в кэше тоже.
Сохраненные значения хранятся в Таблице Files в одном из файлов с расширением *.pfl
у меня например в файле 071523a4-516f-4fce-ba4b-0d11ab7a1893.pfl
в виде пары
{"параметр1",
{"S","{""#"",ab7b8a1a-3904-40cf-af23-cec618093ad6,7:00000000000000000000000000000000}"},""},
1 строчка - имя сохраненного значения
2 строчка - само значение
работа с ними напрямую сопряжена с определенным риском
(15) fugu, поддержу вопрос.
Действительно, знающие люди, где и как можно увидеть все сохраненные значения... Пусть даже без возможности изменения.
Если можно ответьте поконкретнее.
(23) ShantinTD, не представляю как это сделать, не зная имен значений. Вот если бы было что-то вроде ПолучитьСписокСохраненныхЗначенийПользователя()...
(11) diwoland,
т.е. если этот файл не прочитается - кирдык всей базе?
вы удалите его, и посмотрите, как 1с будет бегать в поисках капитана Гранта "где мой .pfl? я вас спрашиваю, где мой .pfl?? вот тут он лежал, кто его взял??"
(13) AlexO, Да если файл удалить, думаю работать не будет, но можно редактировать сам файл. файл текстовый, разобраться в формате будет не сложно. Но однозначно, нет отдельной таблицы, в которой было бы: Имя сохраненного параметра, пользователь, значение сохраненного параметра.
Соответственно 2 пути: разбираться в формате файлов *.pfl и писать обработчик, который из текстового формата будет делать таблицу; или сохранять нужные значения в регистр сведений, где их можно будет посмотреть в удобной форме.
(19) PetroP, точно спасибо помогло.
а то 1с работает, вроде всё окей, по при выходе из программы не сохраняются параметры окна, настраиваемые списки и т.д., а оказывается таблица FILES внутри базы побилась.
(20) noname1980, Увидел Ваше сообщение - заплакал. У меня уже давно такая беда: Не сохраняются значения. Перерыл кучу материала - никакого толка.
Можно уточнить: что конкретно с базой делали?
если таблица Files кривая:
1) Попробуйте через конфиг Тестирование и исправление ...
2) если использован SQL, попробуйте (не мое, но делал тоже самое)
Для "лечения" необходимо провести комплекс мероприятий:
1. Отключить сервер предприятия 1С (чтобы не мешал)
2. В Среде "Microsoft SQL Studio Server Management Studio" выполнить следующие команды:
ALT ER DATABASE BASA SET emergency
ALT ER DATABASE BASA SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Данными командами мы переводим базу данных в однопользовательский, аварийный режим
Далее, выполняем команду:
DBCC CHECKDB('BASA', REPAIR_ALLOW_DATA_LOSS)
Начинается проверка базы данных с автоматическим исправлением ошибок.
Процесс может занять длительное время, в зависимости, от количества ошибок и объема базы.
После окончания выполнения команды, необходимо посмотреть лог выполнения, чтобы убедится, что ошибки исправлены. И запустить команду еще раз. Цель — получить лог, в котором будет указано отсутствие ошибок.
После получения "чистого" лога, выполняем команду:
ALT ER DATABASE BASA SET MULTI_USER
и переводим базу данных в многопользовательский режим.
Таким образом, мы провели исправление базы данных, не "подмешивая" к процессу сервер 1С: Предприятия и не запуская ТиИ (Тестирование и Исправление).
Да, с помощью "Tools CD" своими глазами увидел записи в таблице "Files". И там куча мусора! Записи давно уволившихся сотрудников.
Все почистил. В результате удостоверился на след. день после слов бух-ра: "А у меня настройка печати слетела".
и в таблице Files запись с [FileName] = УИДпользователя + ".pfl" и будет местом где хранятся значения этого пользователя
скопировать настройки одного пользователя другому:
UPD ATE [Files]
SE T [BinaryData] = (SELECT [BinaryData] FR OM [Files] WHERE [FileName] = '7bffbce3-e398-41fd-8572-3363c24ee6c8.pfl')
, [DataSize] = (SELECT [DataSize] FR OM [dbo].[Files] WHERE [FileName] = '7bffbce3-e398-41fd-8572-3363c24ee6c8.pfl')
WHERE [FileName] = 'a5366004-35d0-4a56-be2e-7d54d897927b.pfl'
GO
Кстати настройки записываются в базу при выходе из системы, а не при их изменении.
Ну и вроде, во время сеанса настройки из базы не читаются, т.е. считываются при запуске системы (хотя может и не так)
(26) Спасибо, пригодилось. Дополнить лишь хочу тем, что, если пользователь новый и ни разу не заходил в программу, строк с ним в таблице не будет. Соответственно, надо либо запрос изменить, либо попросить пользователя зайти и выйти из программы
Столкнулся с проблемой не корректного сохранения настроек, из-за чего типовая обработка (загрузка данных из табличного документа) перестала открываться.
Проблему решил выполнением метода