1С как изменить ХранилищеЗначений в табличной части?
Здравствуйте! Мне необходимо реализовать хранение массива фотографий внутри одного документа. Решил сделать с помощью табличной части, где будут храниться двоичные данные и впоследствии открываться как картинка, но столкнулся с проблемой:
Я не понимаю как обратиться к реквизиту типа ХранилищеЗначений (ДвоичныеДанныеАдреса), который находится в табличной части.
На данном этапе проблемной является вот эта строка:
поскольку он не видит данное поле. Пробовал разные способы, ни в ТекущихДанных, ни в Объект.Фотографии[i] данное поле не видит. Как решить данную проблему?
Я не понимаю как обратиться к реквизиту типа ХранилищеЗначений (ДвоичныеДанныеАдреса), который находится в табличной части.
&НаКлиенте
Процедура ДобавитьФото(Команда)
Если Объект.Фотографии.Количество()>14 тогда
Сообщить("Доступна загрузка не более 15 фотографий.");
Возврат;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ВыборФайла",ЭтотОбъект);
НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ВыборФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если Не Результат тогда
Возврат;
КонецЕсли;
Элементы.Фотографии.ВыделенныеСтроки.Очистить();
ТабличнаяЧастьДобавитьЗапись(ВыбранноеИмяФайла,Адрес);
Элементы.ВыбранноеФото.Заголовок = ВыбранноеИмяФайла;
КонецПроцедуры
&НаСервере
Функция ТабличнаяЧастьДобавитьЗапись(ИмяФайла, Адрес)
ДанныеТабЧасти = Объект.Фотографии.Добавить();
ДанныеТабЧасти.Путь = ИмяФайла;
ДанныеТабЧасти.АдресВременногоХранилища = Адрес;
ДанныеТабЧасти.ДвоичныеДанныеАдреса = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла));
ВыбранноеФото = ПоместитьВоВременноеХранилище(Новый Картинка(ДанныеТабЧасти.ДвоичныеДанныеАдреса.Получить()));
КонецФункции
ПоказатьНа данном этапе проблемной является вот эта строка:
ДанныеТабЧасти.ДвоичныеДанныеАдреса = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла));
поскольку он не видит данное поле. Пробовал разные способы, ни в ТекущихДанных, ни в Объект.Фотографии[i] данное поле не видит. Как решить данную проблему?
По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- PowerTools: Инструменты администратора 1С 8.3
- Универсальное заполнение табличных частей
- Чтение метаданных 1С из SQL Server и PostgreSQL
- HTTP, Ajax, JSON: Один год Pet-проекту на 1С
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Писать данные в реквизит с типом ХранилищеЗначения нужно в предопределенной процедуре ПередЗаписьюНаСервере. То есть, сначала нужно все данные положить во временное хранилище, запомнить адреса, а в этой процедуре из хранилища достать и поместить уже в ХранилищеЗначения.
(3) необязательно. Просто обычно хранилище значений используют для каких-то макетов, файлов или ещё чего-нибудь. И обычно такие данные - единичные, т.е. они зависят от чего либо, а сами по себе не особо полезны. Поэтому их типа можно спокойной удалять и вся база не особо пострадает. А по делу - (2) прав. Процедура «ПередЗаписьюНаСервере» и вперёд
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот