ХранилищеЗначения и внешняя обработка #734990


#0 by Aradel3d
Добрый день! Не могу разобраться с хранилищем значения. В примерах создают новое ХранилищеЗначения, помещают туда данные, затем считывают, когда переменная уже объявлена. Так и у меня работает. Однако мне нужно получать данные из хранилища при открытии формы, в этот момент разумеется моя переменная-хранилище еще не создана. А если и создать,  то там по идее будет пусто, неопределено. Также находил пример использования ХЗ в документах-справочниках, там объявляют реквизит ХЗ и записывают документ со значением. А после у них есть метод получить. Но как быть внешней обработкой?
#1 by Aradel3d
Форма обычная.
#2 by hawksib
В переменную среды запишите значение
#3 by Aradel3d
Как? Есть реквизит внешней обработки "Хранилище" с типом произвольный, туда помещаю НОВЫЙ ХранилищеЗначения(Организация). Это ведь не документ, как записать внешнюю обработку?
#4 by hawksib
помещайте НОВЫЙ чето там не в реквизит внешней обработки, а в переменную среды, прочитайте про метод СохранитьЗначение(Имя, Значение) в справке
#5 by D_E_S_131
Ну сохранять как параметры формы можно, используя предопределенные процедуры "ПриСохранении" и "ПослеВосстановления".
#6 by Aradel3d
Ненене я поэтому и занялся изучением Хранилища, т.к. велено отказаться от стандартного сохранить восстановить настройки.
#7 by hawksib
реквизиты внешней обработки должны быть куда-нибудь записаны, когда форма открывается, если не запрограммировано заполнение реквизитов, это нормально, что реквизиты обработки не заполнены
#8 by Aradel3d
и все-таки не могу понять... Моя задача такая: уйти от "Сохранить/восстановить значения" из-за того, что они постоянно слетают у пользователей, а настроек много. Сказано задействовать ХранилищеЗначения. Но при этом мне не ясно: 1) не тоже самое ли это, что и в предыдущем случае т.к. вы упомянули про СохранитьЗначение, а там сказано про связку информационная база - пользователь 2) Сохранил значения, при след. открытии формы реквизит также Неопределено, никакого получить разумеется не содержит. Не могли бы вы объяснить целостно механизм?
#9 by Boroda
Может посмотреть в сторону "Внешние отчеты и обработки"  УТ11? Там вроде как и пример есть загрузки прайс-листа, где как раз используется хранилище значения для хранения настроек.
#10 by hawksib
если слетают настройки, непонятно почему! (причем непонятно мне, ни разу не сталкивался) как вариант сохраняйте настойку в файл на диске, а при открытии формы восстанавливайте их из файла, пример можете в моей обработке глянуть в файлик я сохранял "структуру группировок документов информационной базы"
#11 by Aradel3d
Хотелось бы узнать - есть ли разница в таком случае между сохранением настроек по кнопкам на форме и программной записью в хранилище? Т.е. если связка слетает, то в обоих случаях один эффект?
#12 by hawksib
думаю что есть Глобальный контекст (Global context) ХранилищаНастроек (SettingsStorages) Использование: Только чтение. Описание: Тип: ХранилищаНастроекМенеджер. Предназначено для доступа к хранилищам настроек, которые созданы в конфигурации. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Не дает доступа к стандартному хранилищу. ХранилищеЗначения (ValueStorage) Методы: Получить (Get) Конструкторы: На основании значения Описание: Предназначен для хранения значения в специальном формате. Он может быть записан в поля базы данных, имеющие соответствующий тип. Это позволяет сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля, например, Картинка. Большинство объектов, которые имеют неизменяемое значение, а также универсальные коллекции, могут быть помещены в ХранилищеЗначения. К значению, хранящемуся в объекте, нельзя обращаться, его можно только извлечь из хранилища. Описания типов объектов, которые могут быть помещены в ХранилищеЗначения, включают текст "Сериализуется". Замечание! Не рекомендуется хранить в реквизитах типа ХранилищеЗначения ссылки на другие объекты базы данных. Важно! В системе не поддерживается ссылочная целостность по объектам, сохраненным в базе данных в полях типа ХранилищеЗначения. Это означает, что при попытке удаления, например, элементов справочников система не контролирует ссылки на эти элементы, сохраненные в ХранилищеЗначения. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {}. Имя типа XDTO: ValueStorage. Пример: МояКартинка = Новый Картинка("C:Мои документыКартинка1.bmp");
#13 by D_E_S_131
Разница в том, что можно сохранить что-то, что не выведено как реквизит на форме. А вообще в типовых конфигурациях бывает, что уже есть какой-нибудь регистр сведений для хранения информации. Я вот, например, как-то делал для УТ 10.3 печатную форму ТТН. Для заполнения нужных полей для формирования ТТН предварительно открывалась форма. Тут же потребовалось сохранить введенные данные на форме. Стал закидывать их в XML, а файл XML сохранять через механизм прикрепленных файлов.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С