Номер текущего кадра картинки.
Полное описание, параметры и ограничения
Расширение поля формы для поля картинки.НомерТекущегоКадра (Form field extension for a picture field.CurrentFrameNumber)
Расширение поля формы для поля картинки (Form field extension for a picture field)
НомерТекущегоКадра (CurrentFrameNumber)
Доступен, начиная с версии 8.3.15.
Использование:
Только чтение.
Описание:
Номер текущего кадра картинки.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Сохранить текущую страницу TIFF при повторном получении картинки
Метод сначала получает реальный номер текущего кадра, затем повторно получает источник и восстанавливает именно этот номер.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную внешнюю обработку с пустой управляемой основной формой. Вставьте полный модуль; каждый урок — отдельная копия формы.
Свяжите ПриСозданииНаСервере формы с одноимённой процедурой. Реквизиты, поле картинки и кнопку вручную не создавайте.
Двухстраничный TIFF 32×32 включён в код: первая страница светло-серая, вторая тёмно-серая. Это собственные контрольные пиксели, не скан рабочего документа.
Картинка помещается во временное хранилище с идентификатором этой формы. Адрес действителен в её сеансе; не сохраняйте его в справочник как постоянный файл.
Нет загрузки из сети, чтения чужого файла, записи документа или печати. Настольный тонкий/толстый клиент; отдельные визуальные свойства можно сравнить в веб-клиенте.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("АдресУчебнойКартинки", Новый ОписаниеТипов("Строка")));
Новые.Добавить(Новый РеквизитФормы("ПолныйУчебныйАдрес", Новый ОписаниеТипов("Строка")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
ДанныеTIFF = Base64Значение("SUkqAAgAAAAJAAABBAABAAAAIAAAAAEBBAABAAAAIAAAAAIBAwABAAAACAAAAAMBAwABAAAAAQAAAAYBAwABAAAAAQAAABEBBAABAAAA7AAAABUBAwABAAAAAQAAABYBBAABAAAAIAAAABcBBAABAAAAAAQAAHoAAAAJAAABBAABAAAAIAAAAAEBBAABAAAAIAAAAAIBAwABAAAACAAAAAMBAwABAAAAAQAAAAYBAwABAAAAAQAAABEBBAABAAAA7AQAABUBAwABAAAAAQAAABYBBAABAAAAIAAAABcBBAABAAAAAAQAAAAAAADw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQA==");
СвояКартинка = Новый Картинка(ДанныеTIFF);
Если СвояКартинка.КоличествоКадров() <> 2 Тогда
ВызватьИсключение "В учебном TIFF должно быть две страницы";
КонецЕсли;
ЭтаФорма.ПолныйУчебныйАдрес = ПоместитьВоВременноеХранилище(СвояКартинка, ЭтаФорма.УникальныйИдентификатор);
ЭтаФорма.АдресУчебнойКартинки = ЭтаФорма.ПолныйУчебныйАдрес;
Поле = Элементы.Добавить("УчебнаяКартинка", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеКартинки;
Поле.ПутьКДанным = "АдресУчебнойКартинки";
Поле.Заголовок = "Собственные две страницы TIFF";
Поле.Гиперссылка = Ложь;
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.СпособПеретаскиванияФайлов = СпособПеретаскиванияФайлов.КакСсылкаНаФайл;
Поле.РазмерКартинки = РазмерКартинки.Пропорционально;
Поле.Высота = 8;
Поле.Ширина = 30;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свою картинку";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.УчебнаяКартинка;
Если Поле.ПолучитьКоличествоКадров() <> 2 Тогда
Сообщить("Сначала дождитесь отображения своего двухстраничного TIFF");
Возврат;
КонецЕсли;
СохранённыйКадр = Поле.ПолучитьНомерТекущегоКадра();
Поле.Обновить();
Поле.УстановитьНомерТекущегоКадра(СохранённыйКадр);
Сообщить(Поле.ПолучитьКоличествоКадров() = 2);
Сообщить(Поле.ПолучитьНомерТекущегоКадра() = СохранённыйКадр);
Сообщить(Поле.НомерТекущегоКадра = СохранённыйКадр);
КонецПроцедурыРазбор по шагам
КоличествоКадров картинки и ПолучитьКоличествоКадров поля проверяют собственный многостраничный TIFF, не анимацию GIF.
До получения номера кадра проверяем, что источник уже представлен как две страницы.
СохранённыйКадр получен от самой платформы. В коде не угадываются индексы 0/1 или 1/2.
Обновить повторно получает изображение по строковому адресу. УстановитьНомерТекущегоКадра восстанавливает сохранённое состояние и выполняет обращение к серверу.
НомерТекущегоКадра — readonly-свойство, поэтому только сравнивается с полученным значением.
Как проверить результат
После готовности TIFF три сообщения Истина.
Если клиент даёт выбрать вторую страницу TIFF интерактивно, выберите её и повторите: сохраняется фактический номер, а не заранее выбранный индекс.
Ожидаемый результат
Восстановлено состояние просмотра собственного TIFF без предположения о базе нумерации.
На что обратить внимание
НомерТекущегоКадра не присваивается напрямую.
Этот урок для настольного тонкого/толстого или веб-клиента: readonly-свойство недоступно мобильному клиенту и серверу.
Если клиент не предоставляет ручной выбор страниц, код всё равно проверяет сохранение текущего кадра, но не доказывает интерактивное переключение.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.