Имя: Пароль:
1C
 
Где бы подсмотреть как на форму вывести все прикрепленные фото с прокруткой?
0 evorle145
 
23.04.25
19:15
"Вывести одну фото" или "при нажатии кнопки показывать следующее фото" - понятно. Это в типовых есть.

А как организовать прокрутку?
То есть все фото в одном поле, и их можно было прокручивать..
1 Сергиус
 
23.04.25
19:36
(0)В свое время видел решение через поле HTML.
2 Philix
 
23.04.25
19:38
(0) Мэтр, теоретически, Вам нужно вытащить на форму поле HTML документа. А в содержимое этого документа уже набить нужное количество картинок.

Вот тут (пост 31) есть задел для этого Вставить картинку в поле HTML документа - как?#31
3 Garykom
 
гуру
23.04.25
19:41
(0) ТабДок или ПолеHTML
Или одна большая картинка (по вертикали или горизонтали) составленная из исходных
4 Garykom
 
гуру
23.04.25
19:43
(3)+ Имхо наиболее шустрый вариант через ТабДок на форме
С одной большой картинкой неудобно работать
ПолеHTML так же тяжеловато - это по сути встроенный браузер WebKit
5 evorle145
 
23.04.25
21:01
(2) xDDD

мне до Мэтра еще столько же как идти пешком от моего монитора до соседней галактики.
(4) благодарю, ТабДок пожалуй в моем случае будет лучшим решением.. пробую.
6 Ильф
 
23.04.25
21:11
Процедура ПолучитьФайлы()
    
    ВладелецФайла = Объект.Ссылка;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ИсследованиеЭндоскопическоеПрисоединенныеФайлы.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.ИсследованиеЭндоскопическоеПрисоединенныеФайлы КАК ИсследованиеЭндоскопическоеПрисоединенныеФайлы
    |ГДЕ
    |    ИсследованиеЭндоскопическоеПрисоединенныеФайлы.ВладелецФайла = &ВладелецФайла
    |
    |УПОРЯДОЧИТЬ ПО
    |    ИсследованиеЭндоскопическоеПрисоединенныеФайлы.ДатаСоздания";
    
    Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    СчетчикМиниатюр = 3;
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если СчетчикМиниатюр%3 = 0 Тогда
            
        КонецЕсли;
        
        СсылкаНаФайл = ВыборкаДетальныеЗаписи.Ссылка;
        
        Если Ложь Тогда СсылкаНаФайл = Справочники.ИсследованиеЭндоскопическоеПрисоединенныеФайлы.ПустаяСсылка() КонецЕсли;
        
        ИдентификаторФайла = "Файл" + СтрЗаменить(СсылкаНаФайл.УникальныйИдентификатор(),"-","");
        
        Если Элементы.Найти(ИдентификаторФайла) = Неопределено Тогда
            
            СвободнаяГруппа = Неопределено;
            
            Для Каждого ГруппаФайлов Из Элементы.ГруппаФайлы.ПодчиненныеЭлементы Цикл
                
                Если ТипЗнч(ГруппаФайлов) <> Тип("ГруппаФормы") Тогда
                    Продолжить;    
                КонецЕсли;
                
                Если ГруппаФайлов.ПодчиненныеЭлементы.Количество() < 4 Тогда
                    СвободнаяГруппа = ГруппаФайлов;
                    Прервать;
                КонецЕсли;
                
            КонецЦикла;
            
            Если СвободнаяГруппа = Неопределено Тогда
                СвободнаяГруппа = Элементы.Добавить("Группа" + ИдентификаторФайла, Тип("ГруппаФормы"),Элементы.ГруппаФайлы);
                СвободнаяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
                //СвободнаяГруппа.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
            КонецЕсли;
            
            МассивДобавляемыхРеквизитов = Новый Массив;
            МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИдентификаторФайла, Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)), , "Файл", Ложь));
            МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Ссылка" + ИдентификаторФайла, Новый ОписаниеТипов("СправочникСсылка.ИсследованиеЭндоскопическоеПрисоединенныеФайлы", ,), , "Файл", Ложь));
            
            ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
            
            ЭтаФорма["Ссылка" + ИдентификаторФайла] = ВыборкаДетальныеЗаписи.Ссылка;
            
            //Тут еще надо генерировать группы
            Элемент = Элементы.Добавить(ИдентификаторФайла, Тип("ПолеФормы"), СвободнаяГруппа);
            Элемент.ПутьКДанным = ИдентификаторФайла;
            
            
            Если Ложь Тогда Элемент = Элементы.Файл КонецЕсли;
            
            Элемент.Вид = ВидПоляФормы.ПолеКартинки;
            
            Элемент.Ширина = 17;
            Элемент.Высота = 6;
            
            Элемент.Гиперссылка = Истина;
            
            Элемент.РастягиватьПоВертикали = Ложь;
            Элемент.РастягиватьПоГоризонтали = Ложь;
            
            Элемент.РазмерКартинки = РазмерКартинки.Пропорционально;
            
            Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
            
            Элемент.УстановитьДействие("Нажатие", "ФайлНажатие");
            
            ЭлементКомандаОткрыть = Элементы.Добавить("ОткрытьФайл" + ИдентификаторФайла, Тип("КнопкаФормы"), Элемент.КонтекстноеМеню);
            
            ЭлементКомандаОткрыть.ИмяКоманды = "ОткрытьИзображение";
            
            ЭлементКомандаРедактировать = Элементы.Добавить("РедактироватьФайл" + ИдентификаторФайла, Тип("КнопкаФормы"), Элемент.КонтекстноеМеню);
            
            ЭлементКомандаРедактировать.ИмяКоманды = "РедактироватьИзображение";
            
            
        КонецЕсли;
        
        ЭтаФорма[ИдентификаторФайла] = ПолучитьНавигационнуюСсылкуКартинки(СсылкаНаФайл, УникальныйИдентификатор)

                
        //КлючЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьКлючЗаписи(Новый Структура("Файл",СсылкаНаФайл));

        //ЭтаФорма[ИдентификаторФайла] = ПолучитьНавигационнуюСсылку(КлючЗаписи,"ДвоичныеДанныеФайла");
        
    КонецЦикла;
    

    
КонецПроцедуры
7 Ильф
 
23.04.25
21:12
может чем поможет - генерация элементов формы

на довольно тяжелых картинках отрабатывало примлемо
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс