v8: 8.1: Добавление ХранилищеЗНачений в табличной части #485865


#0 by AquaForm
Есть документ. В документе есть табличная часть, один из реквизитов которой имеет тип ХранилищеЗначений. В ФормеДокумента в табличнуючасть нельзя добавить колонку с тип ХранилищеЗНачений. Вопрос: Как при создании нового документа записать в реквизит табличной части добавляемый файл?
#1 by zzerro
Методы: Конструкторы: На основании значения Описание: Предназначен для хранения значения в специальном формате. Он может быть записан в поля базы данных, имеющие соответствующий тип. Это позволят сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля, например, Картинка. Большинство объектов, которые имеют неизменяемое значение, а также универсальные коллекции, могут быть помещены в ХранилищеЗначения. К значению, хранящемуся в объекте, нельзя обращаться, его можно только извлечь из хранилища. Описания типов объектов, которые могут быть помещены в ХранилищеЗначения, включают текст "Сериализуется". Замечание! Не рекомендуется хранить в реквизитах типа ХранилищеЗначения ссылки на другие объекты базы данных. Важно! В системе не поддерживается ссылочная целостность по объектам, сохраненным в базе данных в полях типа ХранилищеЗначения. Это означает, что при попытке удаления, например, элементов справочников система не контролирует ссылки на эти элементы, сохраненные в ХранилищеЗначения. Возможен обмен с сервером. Сериализуется. XML-сериализация. Поддержка отображения в XDTO; пространство имен: {. Имя типа XDTO: ValueStorage. Пример:
#2 by zzerro
Добавть просто колонку/кнопочку и обрабатывай выбор/нажатие на нее
#3 by Pashkaa
А как ты себе представляешь колонку с типом ХранилищеЗНачений? Добавь колонку в Табличное поле формы, назови Файл, на событие НачалоВыбора повесь либо выбор файла на диске, либо открытие файла из ХранилищаЗначений той же строки. На событие ПриИзменении повесь процедуру записи файла в ХранилищеЗнаний соответсвующее этой строке.
#4 by 73
Мож пригодится. В ЕСИС статья есть: "Реализация редактирования в не связанной с данными колонке табличного поля" как раз с примером "Один из реквизитов табличной части имеет тип ХранилищеЗначения и служит для хранения изображения товара"
#5 by shuhard
[В ФормеДокумента в табличнуючасть нельзя добавить колонку с тип ХранилищеЗНачений.] бред в табличную часть добавить можно нельзя вывести в табличное поле и правильно, что нельзя
#6 by AquaForm
Это я уже перечитал много раз. Проблема в другом. :) Все что вы описали я уже сделал. Как именно записать в реквизит табличной части в создаваемом документе? Если есть полеввода которое связано с каким-то реквизитом, то записываю просто "ЭлементыФормы.МойРеквизит.Значение = НужныеДанные;", а ведь на форме нету никаких элементов, которые как-то связаны с ХранилищемЗначений и в базе еще такого документа нет.
#7 by zzerro
в написано же: Добавь колонку в Табличное поле формы, назови Файл, на событие НачалоВыбора повесь либо выбор файла на диске, либо открытие файла из ХранилищаЗначений той же строки. На событие ПриИзменении повесь процедуру записи файла в ХранилищеЗнаний соответсвующее этой строке.
#8 by AquaForm
Да сделал я это. Как в этой процедуре обратиться к реквизиту табличной части и поместить в него мой файл? ТекСтрока = ЭлементыФормы.Расчет.ТекущиеДанные; А вот в ТекСтроке нету нужного мне реквизита....... Т.е. надо добавлять как-то не через элементыформы. Как, если документ еще не записан?
#9 by Михаил Козлов
Новый ХранилищеЗначений.
#10 by acsent
ТекСтрока = Расчет[ЭлементыФормы.Расчет.ТекущиеДанные.НомерСтроки]
#11 by AquaForm
Ошибка - Индекс находится за границами массива
#13 by 73
+ Только зачем это, не понял. Так не проще? ТекСтрока = ЭлементыФормы.Расчет.ТекущаяСтрока
#14 by AquaForm
Я же писал об этом в
#15 by 73
ТекущаяСтрока <> ТекущиеДанные
#16 by AquaForm
И еще вопрос в догонку. У меня в ХранилищеЗначений находится файл формата excel. Как теперь его открыть в Екселе?
#17 by AquaForm
ТекСтрока = Расчет[ЭлементыФормы.Расчет.ТекущиеДанные.НомерСтроки] если пишу так, то все работает,  а если ТекСтрока = ЭлементыФормы.Расчет.ТекущаяСтрока, то пишет о том, что поле не существует...
#18 by 73
НомерСтроки на 1 больше.
#19 by AquaForm
Ну да, я вычел единичку...
#20 by 73
Странно: Расширение табличного поля табличной части (Tabular section table box extension) ......................................... Для данного расширения свойства ТекущаяСтрока и ТекущиеДанные имеют значения типа Строка табличной части
#21 by Фауст
Сделай отдельный справочник, в этом справочнике сделай реквизит с типом Хранилище значения,  реквизит в ТЧ сделай типом - новый справочник, а потом уже думай про все остальное
#22 by 73
Все есть в .
#23 by AquaForm
Все вы правильно говорили. Это я напутал все с текстрокой и текданными. :) Сам дошел до этого решения раньше, но благо нашел свои ошибки благодаря этой теме и справочник создавать нет необходимости :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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