Имя: Пароль:
1C
1С v8
Сохранение/использование Хранилища Значений в типовой конфигурации
0 Новичков1с
 
21.02.19
14:25
Добрый день! Задача такая: Надо с помощью внешней обработки записать создаваемую таблицу значений в Хранилище Значений и в последующем с помощью той же обработки использовать это Хранилище(точнее Таблицу значений в нем). Как засунуть ТЗ в ХЗ вроде как понятно. Но как сохранить это ХЗ в базе данных непонятно.
Конфигурация типовая БП 3.0.67.54. и снимать с поддержки не хотелось бы.
Общее описание задачи: при выводе внешней печатной формы на печать выводится промежуточная форма с  нашей таблицей значений, в которой должны хранится данные, а также была возможность их изменить. Проще всего было бы решить с помощью регистра сведений, но вариант изменения конфы клиента не устраивает. Заранее спасибо за помощь..
1 ДенисЧ
 
21.02.19
14:28
В регистр сведений какой-то запиши. ИЛи сериализуй и в файл
2 Новичков1с
 
21.02.19
14:43
Подходящий регистр сведений пока не нашел. Если не прокатит с Хранилищем Значений придется в файл..
3 singlych
 
21.02.19
14:46
4 Новичков1с
 
21.02.19
15:20
(3) похоже то, что нужно. Попробую, потом отпишусь..
5 wowik
 
21.02.19
15:56
6 Новичков1с
 
21.02.19
16:05
(5) к сожалению в моей конфигурации такого регистра сведений нет. Возможно есть аналогичные, но пока не нашел. Получилось по совету предложенному в (3). единственное, что в общем модуле процедура по другому чуть-чуть называлась. А так все получилось. Спасибо.
7 FIXXXL
 
21.02.19
16:19
(6) справочник ВариантыОтчетов есть? в нем есть реквизит с типом ХЗ
8 DrWatson
 
21.02.19
16:56
(0) Таблицу потом где нужно читать? На сервере или можно на форму загрузить?
9 Eiffil123
 
21.02.19
18:27
Можно использовать реквизит "ХранилищеНастроек" из справочника ВнешниеОтчетыИОбработки:

<Code>
&НаСервереБезКонтекста
Процедура СохранитьНастройкиНаСервере(ОбъектСсылка, СкладОтправитель)
    
    Настройки = Новый Структура("СкладОтправитель", СкладОтправитель);
    ДополнительнаяОбработкаОбъект = ОбъектСсылка.ПолучитьОбъект();
    ДополнительнаяОбработкаОбъект.ХранилищеНастроек = Новый ХранилищеЗначения(Настройки);
    ДополнительнаяОбработкаОбъект.Записать();
    
КонецПроцедуры


&НаКлиенте
Процедура СохранитьНастройки(Команда)
    СохранитьНастройкиНаСервере(ОбъектСсылка, СкладОтправитель);
    Закрыть();
КонецПроцедуры


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ОбъектСсылка = Параметры.ДополнительнаяОбработкаСсылка;
    Если ЗначениеЗаполнено(ОбъектСсылка) Тогда
    
        ХранилищеНастроек = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектСсылка, "ХранилищеНастроек");
        Настройки = ХранилищеНастроек.Получить();
        Если ТипЗнч(Настройки) = Тип("Структура") Тогда
            ЗаполнитьЗначенияСвойств(ЭтотОбъект, Настройки);
        КонецЕсли;
    
    КонецЕсли;


КонецПроцедуры
</Code>