Музыка

Пап, дай порулить Луноход

Мои друзья из родного Стерлитамака, с которыми я когда-то делал warcastle.ru, в минувший вторник выиграли хакатон «Кос Мос Хак» в Москве. Они представили приложение-симулятор вождения Лунохода.

Так, стоп. Что это такое? О чём вообще речь?

Хакатон — набирающий популярность формат мероприятия, соревнование команд разработчиков. Все команды решают некую задачу за отведённое время. Время строго ограниченно, важно использовать его с максимальной отдачей. Конечной целью является законченное решение задачи, либо прототип программы. По истечению времени, жюри оценивает варианты. Победители получают призы, овации, нередко выгодные предложения от крупных компаний. Такой своеобразный марафон разработчиков.


apk-build

Сборка мобильного приложения на 1С (видео-руководство)

Разобравшись с быстрым вариантом создания приложения на мобильной платформе 1С:Предприятия, можно начинать творить свою конфигурацию, проверяя работу на подручном девайсе. Однако, рано или поздно захочется собрать из неё apk-файл для дальнейшего распространения среди устройств, не имеющих предустановленной мобильной платформе. И вот здесь начинаются сложности. К сожалению, это не столь быстрый и простой процесс. Необходимо устанавливать компоненты, настраивать их, запускать сборщик, настраивать его, получать ключ приложения и т.д. Последовательность действий и их назначение не всегда очевидны. Честно признаюсь, мне потребовалось два вечера, чтобы пройти весь путь.

Тем не менее, радует тот факт, что в Сети есть достаточно подробные руководства, как это можно провернуть. Я использовал вот это видео — и всё получилось (за указанные 2 вечера):


checklist

Чек-лист видимости элемента

Иногда при разработке встречается такая проблема: размещённый на форме элемент не отображается в режиме 1С:Предприятия. Хотя, по задумке и всем представлениям его должно быть видно. Что же делать с «чудесным исчезновением?». Причин подобного поведения множество. Составил для себя чек-лист, покрывающий большинство подобных ситуаций.

Достаточно просто методично проверить каждый пункт — и «беглец» отыщется.

 

Подробный чек-лист

Видимость элемента

Первое, что, собственно, приходит на ум — свойство Видимость самого элемента. Для надёжности можно вызвать отладчик и убедиться, что оно включено в нужный момент.


text_editing

Мультиредактирование notepad++

В «блокноте для программистов» notepad++ есть одна полезная, но почему-то отключенная по умолчанию функция. Я говорю о мультиредактировании. Стоит зажать Cntrl, отметить щелчком мыши несколько позиций — и ввод текста будет осуществляться сразу во все выбранные позиции. Это бывает полезно, например, при рефакторинге существующего кода.

Чтобы включить эту функциональность, выбираем из меню Опции -> Настройки -> Правка. Далее устанавливаем в группе Мультиредактирование галочку «Включено». После чего сохраняем настройки и пользуемся.


notify

Передача описания оповещения

Режим отказа от модальности в 1С, помимо очевидных преимуществ в виде поддержки веб-клиента, нередко усложняет тривиальные ранее действия. Одной из таких задач является проверка записи (и вопрос пользователю только в случае отрицательного результата проверки) — с последующим выполнением действием над объектом. Рассмотрим её решение через такой механизм, как передача описания оповещения в метод и использование конструкции ВыполнитьОбработкуОповещения().
Итак, у нас есть некий объект конфигурации (например, справочник). Выполнять действия над ним в форме стоит только тогда, когда есть уверенность, что объект записан в базу. Если же это не так — мы спросим пользователя, согласен ли он записать объект, а после продолжим исполнение. Важно, что в случае успешной проверки, работа не должна прерываться.

callback

Отказ от модальности

В связи со сложностями при выводе интерфейса платформы в веб-клиенте, фирма 1С настоятельно не рекомендует использовать модальные вызовы в конфигурации. Были разработаны безмодальные аналоги некоторых методов (с использование механизма CallBack) и даже добавлено несколько помощников перевода конфигурации на новую идеологию.

Признаюсь, мне лично новые правила дались достаточно нелегко. Привожу несколько готовых рецептов выполнения стандартных операций в режиме отказа от модальности.

Выбор значения из СпискаЗначений

Требуется предоставить пользователю выбор из заранее сформированного списка значений, а после обработать выбранное пользователем значение. Ранее использовался метод ВыбратьЭлемент();

    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("МассивКонтрагентов", МассивСсылокКонтрагентов);
    Оповещение = Новый ОписаниеОповещения("КонтрагентыОрганизацииПослеВыбора", ЭтотОбъект, СтруктураПараметров);
    ПоказатьВыборИзСписка(Оповещение, СписокВыбора);
    //...

&НаКлиенте
Процедура КонтрагентыОрганизацииПослеВыбора(ЗначениеВыбора, ДопПараметры) Экспорт
    Если ЗначениеВыбора <> Неопределено Тогда
        Для Каждого ТекМассивКонтрагентов Из ДопПараметры.МассивКонтрагентов Цикл

        КонецЦикла;
    Иначе
        // Пользователь отказался. Ничего не делаем.
    КонецЕсли;
КонецПроцедуры

pdf logo

Непослушный PDF

На работе встал вопрос периодически (по регламентному заданию) сохранять в pdf-файл отчет из табличного документа. Задача осложнялась тем, что помимо стандартных текста, чисел, таблиц, готовый отчет должен содержать картинку — логотип предприятия.

Механизм платформы

Сначала решить задачу попытались наиболее простым и логичным способом — типовой экспорт табличного документа. Всё бы ничего, но вот в Adobe Reader полученный документ не открывается (ошибка 135). Исследование в hex-редакторе показало, что платформа «ломает» теги шрифта в готовом файле. Эта проблема известна фирме 1С и уже была исправлена (проверено) в релизе 1С:Предприятие 8.3.8, который выйдет предположительно весной сего года. Интересно, что платформа 8.2 такой особенностью не обладает и сохраняет pdf корректно.

ТабличныйДокумент.Записать(ПутьДляСохранения, ТипФайлаТабличногоДокумента.PDF);

Судьба иероглиф

Переопределить предопределенное

Говорят, что нельзя изменить предначертанное… Похоже, у фирмы 1С своё мнение на этот счет. В релизе платформы 8.3.5 помимо прочего появилась возможность переобозначить предопределенный элемент любому элементу в информационной базе. Для этого нужно всего лишь изменить стандартный реквизит ИмяПредопределенныхДанных.


Notepad plus plus

Блокнот внедренца

Сегодня хочу рассказать об одном из своих самых любимых программных инструментов — Notepad++ (Notepad plus plus, на сленге npp) и о его применении в работе -программиста. Это «обычный» блокнот. Обычный, да не обычный. Создан программистами и для программистов. Скачать его можно совершенно бесплатно на официальном сайте.

Не будем перечислять все его и без того известные функции, вместо этого остановимся на тех, которые могут пригодиться именно 1С-Программисту.


delphi xe6 loho

Разработка под android: американо-греческое решение

Пару лет назад я писал, что так и не смог найти устраивающего меня инструмента для создания Android-приложений.

Кажется, теперь я всё-таки исполнил свое давнее желание. Удобный IDE с компиляцией в apk, визуальным конструктором интерфейсов (называется система Fire Monkey и напоминает Управляемый Интерерфейс в 1С) и даже старым-добрым Паскалем в комплекте. Что это? Ответ очевиден — это Delphi. Новая версия XE5 или XE6 (ещё новее).