Сохранить список фотографий для элемента справочника #330512


#0 by dimm7310
Необходимо в справочнике для каждого элемента добавить возможность созранения нескольких фото. Вроде нашел рекомендации по этому вопросу , но что-то вываливается ошибка. Рекомендовано: "Создадим в справочнике "Какой-то" табличную часть "Файлы" с реквизитами "ИмяФайла" (Строка, 256) и "Файл" (ХранилищеЗначения). На форме элемента справочника "Какой-то" разместим табличное поле, ссылающееся на табличную часть "Файлы". Колонку "Файл" (реквизит табличной части) визуально выводить не надо Загрузка и сохранение файла в базе (по какой-нибудь кнопке) может выглядеть примерно так: Код: Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); " Вроде все так и сделал, добавит табличную часть, на форму вытащил табличное поле для которого в поле "Данные" указал -СправочникОбъект - Файлы. Добавил кнопку с вызовом процедуры. При попытке добавить выбранный файл вываливается ощибка "Справочник.Справочник2.Форма.ФормаЭлемента}: Значение не является значением объектного типа (Файл)    ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Файл = Новый ХранилищеЗначения(ДвоичныеДанные); " Что делаю не так?
#1 by ТелепатБот
#2 by dimm7310
К сожалению подсказка тепепатбота не помогла. Кто нибудь подскажет? В отладчике конструкция ЭлементыФормы.<ИмяТабличногоПоля>.ТекущиеДанные.Файл ругается таким же описанием "Значение не является значением объектного типа (Файл)" -что прописано не так? или может табличное поле связано с таблицей справочника неправильно (как я делал я описал выше) Пробовал на 8.0.18 и 8.1.6 - релизах ошибка одинаковая. Прошу сильно не пинать, только начинаю изучать 8-ку, прошу высказываться объективно.
#3 by dimm7310
в предыдущем посте ЭлементыФормы.<ИмяТабличногоПоля>.ТекущиеДанные.Файл нужно читать как ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Файл (разумеется я записал реальное название табличного поля)
#4 by dimm7310
up
#5 by dimm7310
Не ужели ни кто не делал?
#6 by mega_zombie
Открой типовую торговлю - справочник "Номенклатура", например, да и посмотри, как реализовано.
#7 by dimm7310
Смотрел, там сохраняется только одна картинка, а мне нужно несколько. И там хранилище не в самом справочнике а в планевидовхорактеристик, при том подвязана еще куча всего, короче черт ногу сломит. Сходу через отладчик я всю цепочку так и не понял, просто там по ходу делается при выборе и сохранении еще куча разных движений, которые даже не связаны с выбором картинки, просто в силу своей универсальности. Не знаю, если никто по этой схеме не подскажет придется копаться снова, просто по этой рекомендации все кратко и ничего лишнего. - Еще бы заработало, ток вообще было бы прекрасно. Эй гуру восьмерки, отзовись
#8 by Hadgehogs
Маленький пушистый зверек. У вас строк в табличной части нет! Надо либо самому создавать., либо программно Вот так- это с проверкой Если ЭлементыФормы.<ИмяТабличногоПоля>.ТекущиеДанные=Неопределено Тогда
#9 by Hadgehogs
Маленький пушистый зверек - это не про вас.. А вот это вообще красиво! Файл = Новый Файл(Диалог.ПолноеИмяФайла); ЭлементыФормы.<ИмяТабличногоПоля>.ТекущиеДанные.ИмяФайла = Файл.Имя;
#10 by dimm7310
Спасибо, вроде заработало
#11 by Hadgehogs
Ну дык..
#12 by dimm7310
Еще вопрос: Не удается удалить текущую строку табличтого поля. Поиском нашел похожий вопрос, там было рекомендовано использовать конструкцию: ЭлементыФормы.ТабличноеПоле1.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока); Но не работает, пишет: {Справочник.Справочник2.Форма.ФормаЭлемента}: Метод объекта не обнаружен (Удалить)    ЭлементыФормы.ТабличноеПоле1.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока);
#13 by Hadgehogs
Если ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока<>Неопределено Тогда
#14 by dimm7310
ошибка {Справочник.Справочник2.Форма.ФормаЭлемента(44,3)}: Переменная не определена (ТабличноеПоле1)        <<?>>ТабличноеПоле1.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока); Я проверял через отладчик значение ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока - определено и доступны все реквизиты
#15 by iSeRG
вообще то, для номенклатуры можно загрузить много картинок, одна может быть основной. Смотри в панели кнопку "Файлы"
#16 by dimm7310
Да я уже начал делать так и все устраивает, только с удаление строки разобраться
#17 by iSeRG
Программно удалять? Стандартной кнопки "Удалить" не достатовчно?
#18 by dimm7310
да програмно
#19 by dimm7310
Я пробовал добавлять на панель кнопку удалить, но в интерфейсе пользователя она почему то недоступна, поэтому делаю програмно. Да и на будущее хочется разобраться.
#20 by dimm7310
Так с доступностью стандартной кнопки разобрался. Но все же интересно как провильно прописывать програмное удаление
#21 by iSeRG
Чтобы это работало ТабличноеПоле1.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока); Необходимо чтобы элемент формы "ТабличноеПоле1" имел данные "ТабличноеПоле1" Т.е. надо использовать метод удалить того объекта который прописан в данных.
#22 by dimm7310
вот теперь получилось Файлы.Удалить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока);
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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