воскресенье, 5 августа 2012 г.

1С 8.3: немного подробностей

Некоторые вещи, которые заинтересовали меня в новой платформе 1С 8.3, кроме тех, что я уже упоминал.

Во-первых, появился объект "ХешированиеДанных". Средствами платформы он позволяет получить хеш MD5 или CRC32. Принимает на вход строку или "ДвоичныеДанные". Наконец-то можно вычислять hash MD5 без внешних компонент. Ура! Делается это, например, так:
&НаКлиенте
Процедура ПосчитатьMD5(Команда)

    Хеш = ПолучитьMD5_Сервер(ТекстДляХеша);
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = Строка(Хеш);
    Сообщение.Поле = "ТекстДляХеша";
    Сообщение.УстановитьДанные(Объект);
    Сообщение.Сообщить();

КонецПроцедуры

&НаСервере
Функция ПолучитьMD5_Сервер(Текст)

    ОбъектХеш = Новый ХешированиеДанных(ХешФункция.MD5);
    ОбъектХеш.Добавить(Текст);
    Возврат ОбъектХеш.ХешСумма;

КонецФункции // ПолучитьMD5_Сервер
Подробности ищите под крышечками в синтакс-помощнике.

Во-вторых, теперь можно управлять представлением. Да-да! Теперь есть событие в модуле менеджера таких объектов, как Справочник, Документ и пр., в котором можно самому сформировать представление. Сделать это можно, например, так:
Команда "Показать ссылку" на форме списка справочника:
&НаКлиенте
Процедура ПоказатьСсылку(Команда)

    Представление = Строка(Элементы.Список.ТекущаяСтрока);
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = Представление;
    Сообщение.Сообщить();

КонецПроцедуры
(Просто выводит в область сообщений ссылку выбранного элемента)
Модуль менеджера справочника "Номенклатура":
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Представление = "(" + Данные.Артикул + ") " + Данные.Наименование;
КонецПроцедуры

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Поля.Добавить("Артикул");
    Поля.Добавить("Наименование");
КонецПроцедуры
Смотрите, что получаем в итоге:
Представление по формуле "(" + Артикул + ") " + Наименование было автоматически рассчитано при приведении к строке для сообщения и в поле ввода типа справочник.
Да-да, это работает и в запросах в функции "ПРЕДСТАВЛЕНИЕ", и в табло во время отладки. Смотрите сами:

Глобальная фишка!
Только не забывайте, что представление в конфигурации получается очень часто, а значит, вызовов этого события будет ОЧЕНЬ много. Не стоит писать туда тяжелые запросы к остаткам. =)

Еще улучшена работа с каталогами. Например, теперь можно запросто получить путь к каталогу документов пользователя функцией (какой? правильно!) КаталогДокументов().
Написано, что оно все работает и в веб-клиенте тоже. Так что теперь проблема "куда бы сохранить пользователю отчет, ни о чем его не спрашивая" перестала существовать.

Добавили тип "ФорматированнаяСтрока". Не мутабельный, сериализуемый, позволяет делать вот такие прекрасные предупреждения:
Причем зеленая надпись - ссылка. По ней можно кликнуть и попасть в элемент справочника. Правда, работает это все пока несколько странно, например, мне не удалось запихать в одну строку ссылки на несколько элементов справочника сразу.
А еще при попытке создать по-настоящему сложную форматированную строку оно ругается на тип первого параметра, хотя тип первого параметра правильный. А когда я однажды действительно напутал с типами, ошибочным у меня был вовсе не первый, а пятый параметр конструктора, но ругалось на первый.
В общем, кому интересно - флаг в руки и мое почтение. Разберетесь, может, и мне расскажете потом.

Наконец-то колонке таблицы на управляемой форме можно задать тип "Произвольный". Не помню, где мне это нужно было, но помню, что очень горевал, что нельзя. Теперь вот можно.

Для интернетов появились функции КодироватьСтроку() и РаскодироватьСтроку(). Это тот самый URL encode/decode, о котором я недавно упоминал. Теперь банановый и в 1С! Примечательно то, что codepage тоже указывается. Это безусловно хорошо.

И вот по администрированию еще. Процитирую:
Реализована возможность создания самораспаковывающегося архива (SFX-архива) клиентского приложения для размещения на веб-сайте. В состав архива можно поместить конфигурационный файл 1CEStart.cfg, содержащий настройки, необходимые для установки, запуска и обновления клиентского приложения. Созданный исполняемый файл предназначен для использования только в ОС Windows.
Для создания архива используется утилита 1CEClientSetupMake.exe, которая публикуется на диске ИТС.
Вот это действительно праздник! Теперь админам будет намного проще разворачивать 1С у пользователя.

Там на самом деле еще очень много изменений. Смотрите официальный ман. Я вам привел то, за что у меня глаз зацепился, а вам, может, совсем другое интересно.
Там и про СКД, и про навигационные ссылки, и про внешние источники данных. Очень много всего интересного.

А я желаю вам хорошего дня и хорошего кода. Спасибо.

Комментариев нет:

Отправить комментарий