fixin (fixin) wrote,
fixin
fixin

Category:

Переспал с мыслью о Галлерее

Я уже было хотел отказаться от управляемых форм и реализовать всё на обычных, но мне пришла в голову спасительная мысль поэкспериментировать с полем табличного документа.

И о чудо! Всё получилось, мне удалось даже в тонком клиенте нарисовать галерею. Причем все работает быстро даже без эскизов. Обычные JPG файлы быстро показываются 1ской в уменьшенном формате! Клёво.

В приступе отчаяния я уже думал взяться за Java или QT (из пушки да по воробьям):

Но достаточно было переспать одну ночь с мыслью о Галлерее и мне пришло решение, как Менделееву его таблица.

От эксизов я не собираюсь совсем отказываться, для видео файлов я попробую создавать gif-картинки с раскадровкой и буду показывать их вместо эскизов, если конечно, для этого есть инструменты.

Для доступа к exif-данным медиафайлов буду использовать ImageMagic в режиме командной строки, скармливая ей пакет из 50-100 файлов за раз.

1С движется в сторону асинхронности выполнения, поэтому приходится ставить триггер даже на получение информации о том, является файл каталогом или нет. Т.е. любой участок кода, который подразумевает задержку, нужно обрамлять триггером. Код писать стало сложнее, но не невозможно.

По крайней мере, перебор файлов для заполнения коллекции я уже реализовал.

Еще пару слов о том, зачем писать Медиатеку на 1С, не самом подходящем инструменте для этого?

Дело в том, что сейчас в отрасли "Кризис IT", из-за того, что софт пишется коммерческими организациями, нет ни одного нормального медиа-организатора, которой бы пользователь-перфекционист мог бы доверить хранение метаданных о своей коллекции. У всех ужасающие пробелы, хотя их устранение - вопрос нескольких часов/дней работы программисты. Скорее всего это политика и видение компаний таких органзаторов.

Если я напишу простой органайзер, и он окажется удобным и востребованным, ничто не помешает использовать его как прототип и переписать его уже не на 1С, а на нормальной среде. 1С отличается от современных языков тем, что там даже в одно программистское рыло можно быстро реализовать то, что на классических языках пишется долго и коллективом.

Ну, или, как вариант, можно выпустить Медиатеку в 1С:Совместимо, когда не нужно будет покупать 1С платформу за 300$, чтобы насладиться продуктом, а достаточно будет заплатить 1000 рублей за базовую версию (т.е. полностью функциональную, но без возможности внесения изменений в код).

Вот код, который отрисовывает картинки галлереи:


    ТабДок = ПолеТабличногоДокумента;
   
ОчиститьНаСервереПолеТабличногоДокумента(ТабДок);
   
КоличествоКолонок = 6;
   
Инд = 1;
    Для Каждого
Строка ИЗ Объект.Файлы Цикл
       
ТекКартинка = Новый Картинка(Строка.АбсолютноеИмяФайла);
       
ТекОбласть = ТабДок.Область(Инд, 1);
       
ТекРисунок = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
       
ТекРисунок.Картинка = ТекКартинка;
       
ВысотаКартинки = 30;
       
ШиринаКартинки = 30;
       
ПоложениеВерх = Цел((Инд - 1)/КоличествоКолонок) * (ВысотаКартинки + 2);
       
ПоложениеЛево = ((Инд - 1) % КоличествоКолонок) * (ШиринаКартинки + 2);
       
ТекРисунок.Верх ПоложениеВерх;
       
ТекРисунок.Лево = ПоложениеЛево;
       
ТекРисунок.Ширина = ШиринаКартинки;
       
ТекРисунок.Высота = ВысотаКартинки;
       
Инд = Инд + 1;
    КонецЦикла;

Tags: , Управляемые формы 1С, кризис it
Subscribe
promo fixin december 31, 2037 16:57 1417
Buy for 30 tokens
UPD: Друзья, в августе 2019 года блог переехал на http://fixinchik.ru. Welcome! Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект "…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 39 comments