Записки из зазеркалья 1с. "Алиса в стране чудес и Зазеркалье": интересная интерактивная книга от "1С"

Сегодня читателю предлагается рецензия на издание не новое, но заслуживающее внимания хотя бы потому, что по сей день остаётся образцом настоящих интерактивных образовательных программ. Программ, в которых печатный текст остроумно и профессионально соединяется с возможностями аудио, 3-D анимации, мультипликации, графики. Издателем выступила известная российская компания "1С" .

Издание относится к серии "1С:Познавательная коллекция". В состав комплекта входят два диска.

  1. Мир Алисы по книге Льюиса Кэрролла "Alice`s Adventures in Wonderlend".
  2. Зазеркалье по книге Льюиса Кэрролла "Through the Looking Glass".


Авторами рецензии выступили: Елена Беляева , искусствовед, редактор Т/О "М-студия" г. Киров, и Вера Булдакова , филолог, преподаватель высшей категории. Экспертом была приглашена Любовь Георгиевна Зубарева , преподаватель английского языка высшей категории (Кировский областной колледж культуры)

"Волшебная компьютерная книга"

На обложке диска нас извещают (между прочим, среди других замечаний о продукте): "Перед вами волшебная компьютерная книга". И это чистая правда! Путешествие, в которое вы пускаетесь не вместе с Алисой, а совершенно самостоятельно, становится интереснее с каждым новым шагом. Пространство разворачивается, каждый новый встречный действительно новый и нисколько не похож на других, живущих в этой стране. Открытия на каждом шагу, их предвкушаешь с затаённым восторгом. Подумать только, всё это придумано в позапрошлом веке, а требование новизны, предъявляемое к искусству постмодернизма, удовлетворяется абсолютно! Книга, условием прочтения которой стала способность ума к интеллектуальной игре, второй век вдохновляет людей на творчество. Но творчество и есть волшебство.

Введение в первую часть "Мир Алисы" сделано самым популярным переводчиком "Алисы в стране чудес" на русский язык - Борисом Заходером, который признаётся в том, что текст "Alice`s Adventures in Wonderlend" относится к разряду принципиально непереводимых. Это и побудило его в своё время сделать свой вариант пересказа книги. На диске Борис Заходер разговаривает с вами, причём, вы можете выбрать, читать его предисловие или видеть и слышать писателя. Андрей Тарковский любил повторять, что кино - законсервированное время. Вы щёлкаете кнопкой мышки - и волшебная баночка времени открыта!

Идея многовариантности перевода становится главной и для разработчиков этой образовательной программы. Здесь представлен весь спектр авторов-переводчиков: В. Набоков, В. Орел, Б. Балтер, Б. Заходер - в первой части; В. Орел, Л. Яхнин, В. Азов - во второй. Дополняет картину система цитат классических переводов Н. Демуровой, О. Седаковой, Д. Орловской, А. Щербакова, С. Маршака. Варианты переводов будят фантазию читателя-путешественника, невольно появляются идеи своей собственной трактовки не текста, но ситуаций, героев и событий.

Принцип работы прост. Перед нами - два окна с синхронно передвигающимся английским и русским текстом (в "Зазеркалье" любой перевод легко заменяется другим). Под каждым английским словом открывается его русский эквивалент.

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

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

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

Книгу можно читать на английском языке или на русском (или слушать на английском) главу за главой, а можно увлечься примечаниями (известно, что по количеству сказанных о нём мудрёных слов, Кэрролл уступает разве что Шекспиру).

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

Можно изучить "Биографию профессора оксфордского университета, преподавателя математики Чарлза Лютвиджа Доджсона", или зеркально отражённую "Биографию писателя Льюиса Кэрролла - создателя "Алисы".

А можно сразу отправиться на страницу с лаконичной, но отборной библиографией изданий Кэррола и книг о нём.

Кроме того, диск "Алиса в Зазеркалье" даёт возможность скопировать в буфер обмена любую часть текста.

Игра для любого возраста

По закоулкам этой игры можно долго блуждать, но в ней невозможно заблудиться.

Изучение навигации - часть предлагаемого авторами путешествия по стране Чудес и Зазеркалью.

Вы найдете здесь много занимательных мелочей и точных, смешных деталей: от летящих вдоль страницы кастрюль и тарелок (их можно разбить щелчком мыши), летающих букашек и кошек, которыми можно двигать страницы, до хрюкающих младенцев и гусениц, становящихся куколкой-бабочкой и т.д. Вставные мультипликационные отрывки не просто иллюстрация, а часть многомерного пространства в духе Кэрролла.

Здесь каждая деталь является частью многослойной конструкции, в которой главное - книги Льюиса Кэрролла. Погруженные в видимый и слышимый контекст, они становятся объёмными. Игра со СЛОВОМ, игра самим СЛОВОМ будит воображение читателя и провоцирует дальнейшие шаги к самостоятельной работе с ТЕКСТОМ. Это настоящая образовательная программа, увлекательная и позволяющая принимать самостоятельные решения; полная интересных и точных подробностей, исторических и философских комментариев. С ней можно работать в одиночку, а можно вдвоём или целой компанией. Программа, как и книга, сделана, что называется, "на вырост", чем больше вы узнаёте, тем интереснее.

"Очень полезный подарок!"

Если у вас есть компьютер, этот диск будет жемчужиной вашей коллекции компакт-дисков. Неважно, какого вы возраста, знаете английский или нет, неважно, в какой сфере вы трудитесь. Очень хорошо, если вы ещё учитесь в школе. Эта старая, добрая книжка, прочитанная по-новому, подарит вам минуты отдыха и наслаждения, познания почти бесконечного, поскольку текст настолько плотен, что его можно читать без конца. И играть с ним. Ведь известно, что любой текст интерактивен, по большому счёту, проникновение в глубину текста соответствует уровню вашего развития, а стремление к совершенству бесконечно. Сегодня очень многие учителя, школьники, родители только-только получают доступ к компьютеру. Свою задачу образовательная лаборатория сайт видит не только в представлении новейших электронных продуктов, но и в том, чтобы открыть пользователю лучшие издания, не устаревшие со временем и с развитием телекоммуникационных технологий. Таких изданий не так уж много. Компьютерная книжка про Алису на одном из первых мест. Удивительный пример не соперничества, а соединения "галактики Гутенберга" с новыми изобретениями человека!

Мы уже не раз представляли нашим читателям продукты фирмы "1С" . Это случай ещё раз убедиться, насколько высок уровень образовательных электронных продуктов, издаваемых этой компанией. "Алиса в стране чудес и Зазеркалье" получила немало заслуженных наград и призов..

Редакция благодарит компанию "1С" за предоставленную программу.


Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.12.64 мобильной платформы.

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

Сценарии мобильной работы

До недавнего времени платформа «1С:Предприятие» предлагала единственную технологию, с помощью которой можно было работать с её приложениями, используя мобильные устройства. Это мобильная платформа .

Эта технология позволяет создавать специализированные офф-лайн мобильные приложения, обладающие удобным и функциональным мобильным интерфейсом. Мобильные приложения разрабатываются для решения конкретных мобильных задач, максимально для них оптимизированы с точки зрения архитектуры и интерфейса. Такие приложения реализуют именно мобильные сценарии работы, с ними удобно работать как на планшетах, так и на смартфонах.

По своей архитектуре такие приложения очень похожи на файловый вариант работы системы 1С:Предприятие. На мобильном устройстве существует собственная база данных, «внутри» мобильного приложения существует как клиент, обеспечивающий взаимодействие с пользователем, так и сервер, обеспечивающий взаимодействие с базой данных.

Такие мобильные приложения могут взаимодействовать с «основным» приложением, установленным в офисе. Но это не онлайн взаимодействие, а периодический обмен данными с бэк-офисом. Основная работа в мобильном приложении ведется в оффлайн-режиме. А при появлении интернет-соединения выполняется синхронизация данных.

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

Получается, что неохваченным оказывается значительный круг задач, обладающий следующими характерными особенностями:

  • Взаимодействие с информационной базой должно выполняться в онлайн-режиме;
  • На мобильном устройстве должна быть доступна вся функциональность «основного» прикладного решения, даже такого крупного, как, например, «1С:ERP Управление предприятием»;
  • Интерфейс должен обеспечивать комфортную работу на любых мобильных устройствах с любым размером и расположением экрана.

Мобильный клиент

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

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


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


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

Потенциальные пользователи

На наш взгляд эта технология будет востребована в тех внедрениях, где обязательно требуется онлайн доступ в систему с мобильных устройств. Чтобы данные, введенные на мобильном устройстве, попадали непосредственно в «общую» базу данных, минуя промежуточные шаги синхронизации.

Также мобильный клиент будет востребован в небольших компаниях, у которых нет ни бюджета, ни времени для разработки специализированных мобильных приложений. Ведь по нашим оценкам наиболее сложным этапом разработки мобильных приложений является как раз создание системы обмена данными.


Кроме этого мобильный клиент будет полезен для пользователей сервисов, работающих на базе технологии 1Сfresh. Это сервисы 1Сfresh.com и «Бухгалтерское обслуживание », поддерживаемые фирмой «1С», а также любые другие сервисы, развернутые с использованием этой технологии.

Функциональность

Если сравнивать функциональность мобильного клиента с тем, что «умеет» тонкий клиент, то тут есть не только ограничения, но и преимущества.

Важное преимущество мобильного клиента заключается в том, что он содержит всю функциональность мобильной платформы, обусловленную самими используемыми устройствами. То есть он позволяет, например, делать фотографии, набирать номер абонента, принимать PUSH-сообщения, и многое другое.

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

Если говорить об ограничениях, то самым очевидным из них является то, что мобильный клиент взаимодействует с кластером серверов только по протоколу HTTP(HTTPS).

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

Автоматизация построения интерфейса форм

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

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

Например, важные элементы это таблица динамического списка в форме списка, табличный документ в форме отчёта. Важные колонки это, например, колонки «Наименование» и «Дата».

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

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

Адаптация конфигураций к мобильному клиенту

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

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

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

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

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

Дистрибутив, сборка и публикация

Мобильный клиент, по сути, представляет собой некоторую «оболочку», которая может запустить то или иное прикладное решение. При этом функциональность запускаемых прикладных решений может сильно отличаться друг от друга. В то же время магазин приложений AppStore, требует, чтобы приложение, опубликованное в магазине, не меняло значительно свою функциональность после публикации.

Поэтому мы не публикуем мобильный клиент как отдельное универсальное приложение. Мобильный клиент поставляется вместе с мобильной платформой в виде набора исполняемых файлов. На основе этих файлов разработчик должен собрать приложение, которое будет работать на мобильном устройстве. Процедуры сборки и публикации приложений, что для мобильной платформы, что для мобильного клиента, схожие. Используется один и тот же инструмент – сборщик мобильных приложений.

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

Статья входит в цикл «Первые шаги в разработке на 1С». Она продолжает тему, затронутую в предыдущей статье, и подробно освещает нововведения, которые появились конфигураторе платформы «1С:Предприятие 8».

Прочитав статью, вы узнаете:

  • Что такое контекстная подсказка и как она помогает при написании программного кода?
  • Для чего нужны шаблоны текста и как их применять на практике?
  • Зачем использовать группировку строк программного кода?
  • Как выделение цветом может улучшить удобство работы с редактором кода?
  • В чем удобство нового поиска в дереве конфигурации?
  • Как быстро отобразить объекты нужной подсистемы?
  • Какие инструменты рефакторинга и отказа от модальности существуют и как ими пользоваться?

Применимость

В статье рассматривается возможности конфигуратора на примере платформы «1С:Предприятие» редакций 1C 8.3.5 – 8.3.11, поэтому вся информация актуальна.

Улучшения в конфигураторе платформы «1С:Предприятие 8.3»

При выпуске новой версии платформы «1С:Предприятие 8.3» разработчики добавили в нее несколько интересных и полезных нововведений, чтобы упростить ежедневный труд сотен разработчиков по всей стране.

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

Новая функциональность доступна как для встроенных процедур, так и для собственных процедур разработчика.

Подсказка со списком параметров выглядит следующим образом:

Параметр процедуры, который следует сейчас ввести, выделяется жирным шрифтом. Ниже под горизонтальной чертой располагается описание текущего параметра. Если он является обязательным, на этом акцентируется внимание при помощи текста в скобках.

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

Контекстная подсказка для параметров процедур и функций вызывается нажатием сочетания клавиш Ctrl + Shift + Пробел. Также ее можно вызвать автоматически при наборе символов “(“ и “, ”. Это поведение можно включить в диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Контекстная подсказка):

Следующей полезной особенностью новой контекстной подсказки является возможность отображать параметры пользовательских процедур и функций.

Для увеличения нажмите на изображение.

Напомним, что существует документ “Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8”, в котором описаны рекомендации фирмы “1С” к разрабатываемому программному коду.

Так, секция “Параметры” описывает параметры процедуры (функции). Если их нет, секция пропускается.

Предваряется строкой “Параметры:”, затем с новой строки размещаются описания всех параметров. Описание параметра начинается с новой строки, далее следуют имя параметра, затем дефис и список типов, далее – дефис и текстовое описание параметра.

Например:

// Подготовить форму ответа на существующее письмо.
// Параметры:
// ВходящееПисьмо – СправочникСсылка.ВходящиеПисьма – письмо, на которое следует ответить.
// ИсходящееПисьмо – СправочникСсылка.ИсходящееПисьмо – данные формы для типа СправочникСсылка.ИсходящееПисьмо,
// расположенные в форме редактора исходящего письма.
// Текст – ФорматированныйДокумент – поле редактора текста письма, расположенное в форме
// редактора исходящего письма.
Процедура ЗаполнитьОтветНаПисьмо(ВходящееПисьмо, ИсходящееПисьмо, Текст) Экспорт

И конфигуратор анализирует комментарии, написанные по таким правилам, и использует их для отображения контекстной подсказки!

Для увеличения нажмите на изображение.

Чтобы избежать ручного написания комментария по приведенному формату, в платформе предусмотрены шаблоны текста, ознакомиться с которыми можно, нажав сочетание клавиш Ctrl + Shift + T.

Шаблон с наименованием “Процедура (с заголовком)” как раз и формирует правильный комментарий.

Чтобы этот шаблон сработал, достаточно набрать в редакторе символы “Проц”, нажать Ctrl+Q и выбрать нужный шаблон из предлагаемого системой списка.

Группировка строк программного кода

Модули типовых решений на платформе “1С:Предприятие 8” достаточно объемные, содержат достаточно большое количество строк кода.

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

Платформа 8.3 предоставляет еще одну возможность – сгруппировать произвольные строки модуля в одну группу по логическому принципу, а затем свернуть ее, чтобы она занимала меньше места на экране для повышения читабельности текста.

Для выделения области текста введены две новые инструкции препроцессора #Область и #КонецОбласти.

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

Для увеличения нажмите на изображение.

Нужно следить, чтобы группируемые области не пересекались между собой, потому что в таком случае они не будут сворачиваться на экране.

В конфигуратор добавлен шаблон текста для сокращения #Обл, который автоматически добавит в текст модуля инструкции по созданию новой области.

В диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Группировка) можно настроить группировку и сворачивание областей текста.

Выделение цветом конструкций

Теперь в редакторе текста на встроенном языке подсвечиваются цветом синтаксические конструкции, на которых в данный момент установлен курсор. Например, начало и конец процедуры (функции), условного оператора и оператора цикла:

Для увеличения нажмите на изображение.

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

Для увеличения нажмите на изображение.

В диалоге параметров конфигуратора (пункт меню Сервис – Параметры, закладка Модули – Редактирование) можно настроить выделение цветом еще нескольких полезных конструкций.

Если выбрать параметр “Текущий идентификатор” и назначить ему цвет, отличный от цвета фона редактирования (по умолчанию – белый), то при установке курсора на какой-либо идентификатор программного кода он сам выделяется выбранным цветом, а кроме того выделяются все такие же идентификаторы, встречающиеся в модуле, и строковые константы с заключенным в кавычки этим же идентификатором:

Для увеличения нажмите на изображение.

Также интерес представляет параметр “Выбранный идентификатор”. Если для него установлен цвет, не совпадающий с цветом фона редактирования, то при двойном щелчке мышью по идентификатору будет подсвечен и он, и все совпадающие идентификаторы в тексте модуля.

Для увеличения нажмите на изображение.

При выполнении поиска в тексте модуля при помощи строки поиска или после нажатия сочетания клавиш Ctrl + F найденное слово выделяется, а все такие же найденные слова подсвечиваются.

Для увеличения нажмите на изображение.

Объединение ячеек табличного документа

Ранее ячейки табличного документа можно было объединить только с помощью пункта меню или соответствующей кнопки командной панели.

Теперь появилось сочетание клавиш Ctrl + M, при нажатии которого и происходит объединение ячеек табличного документа. Также операция “Объединить” доступна в контекстном меню табличного документа.

Надеемся, что и в следующих релизах платформы «1С:Предприятие 8» разработчики будут уделять внимание повышению удобства работы с конфигуратором.

Новые возможности для разработчика в «1С:Предприятие 8.3.5»

Поиск в конфигураторе

Пользоваться поиском при конфигурировании приходится постоянно. Пока конфигурация содержит относительно небольшое количество объектов метаданных, можно осуществлять поиск визуально – глазами, прокручивая дерево конфигурации.

Однако типовые конфигурации достаточно объемны, и при таком подходе поиск будет занимать длительное время.

До выхода платформы 8.3.5 поиск по дереву метаданных можно было осуществить следующим образом:

  • набирать с клавиатуры название объекта, при этом система будет искать по совпадению наименования с первой буквы названия, но только в развернутых строках дерева конфигурации;
  • при помощи сочетания клавиш Ctrl+F открыть окно поиска:

Найденные объекты будут выведены в окно Результаты поиска, из которого по двойному щелчку мышью можно перейти к нужному объекту метаданных в дереве конфигурации.

В платформе 8.3.5 появилось новое поле поиска, расположенное над деревом конфигурации:

Поиск выполняется по вхождению строки, анализируются свойствам объектов конфигурации Имя, Синоним и Комментарий.

Причем дерево конфигурации фильтруется “на лету”: в нем остаются только объекты, удовлетворяющие введенному фильтру.

Рассмотрим, что обозначают цвета, которыми раскрашены объекты, оставшиеся в дереве после применения фильтра.

Если строка поиска была найдена, то имя такого объекта выделяется в дереве конфигурации черным цветом.

Если кроме того искомая строка присутствует в имени объекта (не в синониме, не в комментарии), то такие вхождения выделяются красным цветом.

Серым цветом выделяются объекты, сами не подходящие под введенный фильтр, но имеющие в своем составе подчиненные (дочерние) объекты, удовлетворяющие заданному фильтру.

На приведенном выше рисунке реквизит ИдентификаторПользователяИБ справочника Пользователи отображается в дереве, т.к. его синоним содержит подстроку “пост”:

Допустимо вводить для поиска несколько подстрок, разделенных пробелами:

Аналогичная строка поиска появилось и у окна, содержащего набор свойств выделенного объекта (палитра свойств):

Найденные свойства будут выведены общим списком, без разбивки по категориям.

Поиск будет осуществляться либо по именам свойств, либо по представлениям свойств (разница приведена на двух скриншотах выше).

Переключиться между режимами имя/представление можно с помощью команды “Отображать имена свойств” контекстного меню:

Такая же строка поиска была добавлена в окне выбора типа данных:

И в окно выбора объекта метаданных (например, выбора регистра сведений, который будет использоваться в качестве графика для регистра расчета):

Для быстрого отображения объектов, входящих в одну конкретную подсистему, в контекстном меню появился новый пункт “Объекты подсистемы”:

Напомним, как такого можно было добиться в предыдущих версиях платформы.

Нужно было открыть окно отбора по подсистемам, установить в нем галочку на требуемую подсистему, со всех остальных подсистем галочки снять:

Теперь получить тот же самый результат можно быстрее. Кроме того, чаще всего используется и наиболее востребован отбор именно по одной подсистеме.

А, следовательно, это маленькое удобное новшество сэкономит время разработчика.

Быстрое отображение объектов, захваченных в хранилище

Если конфигурация подключена к хранилищу, то в командной панели над самим деревом конфигурации доступна кнопка “Захваченные объекты”:

Теперь фильтрация выполняется непосредственно в дереве конфигурации, не нужно открывать отдельное окно для работы с хранилищем, в нем устанавливать отборы на захваченные объекты.

Инструменты рефакторинга

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

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

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

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

Поэтому в конфигураторе платформы 8.3.5 появились механизмы рефакторинга кода и инструменты работы с модальными вызовами.

Они доступны в контекстном меню текстового редактора конфигуратора в отдельном меню Рефакторинг.

Для увеличения нажмите на изображение.

Рассмотрим подробнее реализованные инструменты рефакторинга.

1. Выделить фрагмент

Эта команда преобразует выделенный участок кода в отдельную процедуру или функцию.

Если процедура, внутри которой расположен выделенный участок, содержит директиву компиляции (&НаКлиенте, &НаСервере и т.д.), то создаваемая процедура или функция будет иметь такую же директиву компиляции.

Если выделенный участок кода может быть расположен в правой части оператора присваивания, то будет создаваться функция. Рассмотрим пример. Пусть есть фрагмент кода:

&НаКлиенте
Процедура ТоварыТоварПриИзменении (Элемент )
Стр = ;
Стр.Цена = ПолучитьЦенуТовара (Объект.Дата , Стр.Товар );

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

Если применить команду “Выделить фрагмент” к выделенному участку кода, система сформирует следующий программный код (создаст новую функцию):

&НаКлиенте
Процедура ТоварыТоварПриИзменении (Элемент )
Стр = Элементы.Товары.ТекущиеДанные ;
Стр.Цена = ПолучитьЦенуТовара (Объект.Дата , Стр.Товар );
Стр.Сумма = РассчитатьСумму (Стр );
КонецПроцедуры
&НаКлиенте
Функция РассчитатьСумму (Знач Стр )
Возврат Стр.Количество * Стр.Цена ;
КонецФункции

Также функция будет создана, если в выделенном участке кода происходит присваивание одной переменной, которая используется ниже по коду. Например:

&НаКлиенте
Процедура ТоварыЦенаПриИзменении (Элемент )
Стр = Элементы.Товары.ТекущиеДанные ;
Стр.Сумма = Стр.Количество * Стр.Цена ;
КонецПроцедуры

Выделенный участок будет преобразован следующим образом:

&НаКлиенте
Процедура ТоварыЦенаПриИзменении (Элемент )
Стр = ТекущаяСтрокаТоваров ();
Стр.Сумма = Стр.Количество * Стр.Цена ;
КонецПроцедуры
&НаКлиенте
Функция ТекущаяСтрокаТоваров ()
Перем Стр ;
Стр = Элементы.Товары.ТекущиеДанные
Возврат Стр ;
КонецФункции

2. Переименовать

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

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

Если же все использования переменной или метода не могут быть идентифицированы однозначно, то система отображает вопрос и выводит места вхождения:

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

Пусть в модуле документа существует процедура:

Процедура Пересчитать () Экспорт
Для каждого ТекСтрокаТовары Из Товары Цикл
ТекСтрокаТовары.Сумма = ТекСтрокаТовары.Количество * ТекСтрокаТовары.Цена ;
КонецЦикла ;
КонецПроцедуры

А в модуле формы этого документа – следующий обработчик:

&НаСервере
Процедура ПересчитатьНаСервере ()
Документ = РеквизитФормыВЗначение (“Объект” );
Документ.Пересчитать ();
ЗначениеВРеквизитФормы (Документ , “Объект” );
//дальнейшая обработка…

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

Пиктограмма с красным восклицательным знаком в окне результатов поиска означает, что однозначно и точно определить использование в строке кода процедуры Пересчитать() системе не удалось.

Это связано с тем, что система не может автоматически определить тип переменной Документ после выполнения функции РеквизитФормыВЗначение() .

Механизм контекстной подсказки в этом случае также не предлагает возможные варианты при нажатии точки после переменной Документ либо при нажатии сочетания клавиш Ctrl+Пробел.

Для увеличения нажмите на изображение.

Переименование процедуры в модуле формы при помощи команды рефакторинга также приводит к замене ссылки на обработчик в свойствах элементов формы и командах.

3. Создать описание функции

Команда создает перед процедурой или функцией комментарий, который будет корректно восприниматься механизмом контекстной подсказки.

// Процедура – Заполнить письмо по шаблону
// Параметры:
// ИсходящееПисьмо – –
// Текст – –
Процедура ЗаполнитьПисьмоПоШаблону (ИсходящееПисьмо , Текст ) Экспорт
//…
КонецПроцедуры

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

Тогда можно будет при написании кода воспользоваться расширенной подсказкой.

4. Создать обработку оповещения

Эта команда становится доступной в контекстном меню, когда курсор установлен на имени метода, после которого следует открывающаяся скобка.

Причем это такие методы, как ПоказатьВопрос() , ПоказатьПредупреждение() , ПоказатьВводЧисла() и прочие блокирующие аналоги модальных методов.

Рассмотрим пример. Начнем писать клиентский обработчик команды, установим курсор на встречающийся метод ПоказатьВопрос() , вызовем команду “Создать обработчик оповещения”:

&НаКлиенте
Процедура ЗаполнитьМатериалы (Команда )
ПоказатьВопрос (
КонецПроцедуры
В результате система сформирует следующий программный код:
&НаКлиенте
Процедура ЗаполнитьМатериалы (Команда )
ПоказатьВопрос (Новый ОписаниеОповещения (“ЗаполнитьМатериалыЗавершение” , ЭтотОбъект ));
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьМатериалыЗавершение (РезультатВопроса , ДополнительныеПараметры ) Экспорт
КонецПроцедуры

5. Преобразовать модальный вызов

Эта команда преобразует выделенный фрагмент кода, содержащий модальный метод, с использованием его асинхронного аналога. Рассмотрим несколько примеров.

Преобразуем вызов метода Предупреждение():

&НаКлиенте
Процедура НовыйОбработчик ()
А = 1 ;
Предупреждение (“Текст” );
А = 2 ;
КонецПроцедуры // НовыйОбработчик()

После применения указанной команды программный код примет следующий вид:

&НаКлиенте
Процедура НовыйОбработчик ()
А = 1 ;
ПоказатьПредупреждение (Новый ОписаниеОповещения (“НовыйОбработчикЗавершение” , ЭтотОбъект ),
“Текст” );
КонецПроцедуры
&НаКлиенте
Процедура НовыйОбработчикЗавершение (ДополнительныеПараметры ) Экспорт
А = 2 ;
КонецПроцедуры

Усложним пример. Рассмотрим использование модальной функции и условного оператора:

&НаКлиенте
Процедура НовыйОбработчик ()
Ответ = Вопрос (,
РежимДиалогаВопрос.ДаНет );
Если Ответ = КодВозвратаДиалога.Да Тогда
//алгоритм заполнения
КонецЕсли ;
КонецПроцедуры

После преобразования модального вызова получаем:

&НаКлиенте
Процедура НовыйОбработчик ()
Ответ = Неопределено ;
ПоказатьВопрос (Новый ОписаниеОповещения (“НовыйОбработчикЗавершение” , ЭтотОбъект ),
“Табличная часть будет очищена. Продолжить?” , РежимДиалогаВопрос.ДаНет );
КонецПроцедуры
&НаКлиенте
Процедура НовыйОбработчикЗавершение (РезультатВопроса , ДополнительныеПараметры ) Экспорт
Ответ = РезультатВопроса ;
Если Ответ = КодВозвратаДиалога.Да Тогда
//алгоритм заполнения
КонецЕсли ;
КонецПроцедуры

Следует подчеркнуть в получившемся фрагменте инициализацию переменной Ответ.

6. Преобразовать в асинхронную процедуру

В рассмотренных выше примерах преобразованию подвергались методы, имеющие свои асинхронные аналоги. Например, Вопрос() и ПоказатьВопрос() , Предупреждение() и ПоказатьПредупреждение() .

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

А значит, его надо заменить на “асинхронный аналог”, только не тот, который существует во встроенном языке, а на наш собственный, разработанный метод.

Для этого и предназначена еще одна команда подменю “Рефакторинг” – “Преобразовать в асинхронную процедуру”. Поясним на примере процедуры, вызывающей другую процедуру с модальной функцией внутри:

&НаКлиенте
Процедура НовыйОбработчик ()
А = 1 ;
ВложеннаяПроцедура ();
А = 2 ;
КонецПроцедуры &НаКлиенте
Процедура ВложеннаяПроцедура ()
Предупреждение (“Текст” );
КонецПроцедуры

Устанавливаем курсор на объявление процедуры ВложеннаяПроцедура() , выполняем преобразование в асинхронную процедуру. Система строит нам следующий код:&НаКлиенте
Процедура НовыйОбработчикЗавершение (Результат , ДополнительныеПараметры ) Экспорт
Оповещение = ;
А = 2 ;
ВыполнитьОбработкуОповещения (Оповещение );
КонецПроцедуры &НаКлиенте
Процедура ВложеннаяПроцедура (Знач Оповещение )
Предупреждение (“Текст” );
ВыполнитьОбработкуОповещения (Оповещение );
КонецПроцедуры

Обратите внимание на добавленный системой метод ВыполнитьОбработкуОповещения() , который используется в реализации процедур, которые внутри себя могут открывать блокирующие окна, но при этом должны вернуть свой результат в вызывающие процедуры.

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

Именно поэтому метод Предупреждение() не подвергся замене. Это нужно сделать после преобразования в асинхронную процедуру, вызвав отдельно команду “Преобразовать модальный вызов”.

Если в исходном фрагменте кода на строке, содержащей Предупреждение() , выполнить команду “Преобразовать модальный вызов”, то система спросит:

Результат получится следующий:

&НаКлиенте
Процедура НовыйОбработчик (Знач Оповещение )
А = 1 ;
ВложеннаяПроцедура (Новый ОписаниеОповещения (“НовыйОбработчикЗавершение” ,
ЭтотОбъект , Новый Структура (“Оповещение” , Оповещение )));
КонецПроцедуры &НаКлиенте
Процедура НовыйОбработчикЗавершение (Результат , ДополнительныеПараметры ) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение ;
А = 2 ;
ВыполнитьОбработкуОповещения (Оповещение );
КонецПроцедуры &НаКлиенте
Процедура ВложеннаяПроцедура (Знач Оповещение )
ПоказатьПредупреждение (Новый ОписаниеОповещения (“ВложеннаяПроцедураЗавершение” ,
ЭтотОбъект , Новый Структура (“Оповещение” , Оповещение )), “Текст” );
КонецПроцедуры
&НаКлиенте
Процедура ВложеннаяПроцедура Завершение (ДополнительныеПараметры ) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение ;
ВыполнитьОбработкуОповещения (Оповещение );
КонецПроцедуры

7. Выделить в асинхронную процедуру

Эта команда преобразует выделенный участок кода в процедуру или функцию, преобразуя при этом выделяемый метод к асинхронному виду.

В отличие от предыдущего пункта данная команда является “составной”: сначала выделенный участок кода переносится в новую процедуру, имя которой пользователь вводит в диалоговом окне.

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

8. Найти модальные вызовы модуля

Описанные выше команды работают с отдельным методом или выделенным участком кода.

Были реализованы процедуры, обрабатывающие модуль целиком, например, поиск модальных вызовов внутри всего модуля.

Найденные строки кода будут выведены в окно с результатами поиска:

Для увеличения нажмите на изображение.

9. Преобразовать модальные вызовы модуля

Эта команда выполняет преобразования в открытом модуле, но только тех вызовов, которые не требуют участия разработчика.

Также в главном меню расположена команда (Конфигурация – Рефакторинг – Анализировать модальные вызовы конфигурации).

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

Для увеличения нажмите на изображение.

Заключение

В заключение в хронологическом порядке коротко отметим, какими еще дополнительными полезными возможностями обзавелся конфигуратор:

  • Появились списки закладок в текстах модулей, которые возможно сохранить между сеансами работы (8.3.6+)
  • В случае динамического обновления отпала необходимость перезапускать конфигуратор при работе в клиент-серверном варианте работы информационной базы (8.3.7+)
  • Реализована возможность разработки конфигураций под ОС OS X 10.8 и выше (8.3.7+). Теперь в этой операционной системе доступен и конфигуратор, и клиентское приложение (толстый и тонкий клиенты)
  • Существенно расширены операции, которые могут быть выполнены в пакетном режиме (8.3.8+). За счет этого существенно упрощен процесс автоматизированного обновления конфигурации
  • Реализована утилита административной консоли, при помощи которой стало возможно исправлять часть проблем, возникающих с информационной базой без запуска конфигуратора (8.3.8+)
  • Добавлен функционал проверки проблем подключения расширения к конфигурации. Ранее такого функционала не было, и диагностика выводилась в окно сообщений при подключении расширения (8.3.9+)
  • Реализована поддержка 64-разрядного конфигуратора. Такая возможность позволила устранить проблемы нехватки памяти для операций сравнения и объединения при обновлении конфигурации и прочих ресурсоемких операций (8.3.9+)
  • Существенно ускорено первое открытие управляемой форме в конфигураторе (8.3.9+)
  • Появилась возможность частичной выгрузки редактируемой конфигурации в файлы XML. Теперь можно выгружать только те объекты, которые изменялись с момента последней выгрузки. Это существенно ускорило процесс выгрузки в файлы XML, в случае когда изменения вносятся в большие конфигурации (8.3.10+)
  • Улучшены возможности объединения модулей за счет учета расположения методов в областях, заданных инструкциями препроцессора (8.3.10+)
  • Повышена скорость работы часто используемых операций при разработке (8.3.11).

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

Итак, идем дальше – в следующей статье мы вернемся к программированию и разберем понятие контекста программного кода.

Уважаемые и любимые клиенты, мы стремимся стать лучше для Вас!

В связи с этим мы начинаем преображение Центра красоты на Тульской с 15 июля. Ремонт продлится 2 недели. Обновленный и модернизированный центр распахнет свои двери для Вас 29 июля.

На этот период будем рады видеть Вас в Центре на Кантемировской, а так же хотим сообщить, что некоторые специалисты с Тульской во время ремонта будут работать на Кантемировской.

Приносим свои извинения за причиненные неудобства.

Более подробную информацию Вы можете уточнить в едином CALL-центре +7 495 134 22 22.

Подписывайтесь на наш Instagram и следите за процессом, будет интересно!

Криолиполиз - NEW!!!

ВЫГОДА ДО 54 400*!

АБСОЛЮТНЫЙ ХИТ КЛИНИК ЕВРОПЫ - КРИОЛИПОЛИЗ COCCON :

✔️ БЕЗБОЛЕЗНЕННО;

✔️ БЫСТРЫЙ РЕЗУЛЬТАТ;

✔️ РАВНОМЕРНОЕ УМЕНЬШЕНИЕ ЖИРОВОЙ ТКАНИ;
✔️ ОТСУТСТВИЕ ПОБОЧНЫХ ЭФФЕКТОВ;
✔️ ШИРОКАЯ ОБЛАСТЬ ПРИМЕНЕНИЯ - ОТ ЖИВОТА И БЕДЕР ДО ПОДБОРОДКА.

*Подробнее об акции спрашивайте у администраторов или по телефону.

Революционная эмульсия PRX-T33 ТЕПЕРЬ У НАС!

PRX-T33 это уникальное запатентованное средство, которое совершило переворот косметологии в Италии, и после 10 лет клинических испытаний вышел на Российский рынок. PRX-T33 - химический пилинг для ревитализации (омоложения) кожи. Процедура контролируемого повреждения кожи с целью ее стимуляции и восстановления, без повреждения эпидермиса, не вызывающая шелушения. Большинство пилингов рекомендуют делать в осенне-зимний период, но PRX-T33 - всесезонный.

NEW BARBER!

Теперь в сети центрах красоты "Зазеркалье" (м.Кантемировская, м.Тульская) появились Барберы - это мастера, которым современный мужчина смело может доверить свой образ: стрижку, оформление усов, бороды или побаловать себя королевским бритьем. Барбер поможет выбрать уход и стайлинг для волос, порекомендует подходящую к типу внешности укладку и идеальную бороду. Прически для мужчин отличаются широким разнообразием. Молодой человек при помощи стрижки может выразить свой характер, настроение, образ!Выбери свой стиль жизни!

Babor - "Искусство очищения"

В центрах красоты "Зазеркалье" появилась новая линейка косметики для домашнего ухода - "Искусство очищения", от немецкой компании Babor.
В линейку входят:
Очищающая Ферментная Пудра, Набор "Трио для Очищения Кожи", Мягкий Пилинг, Эссенция-Тоник с Термальной Водой, Эссенция-Тоник с Розовой Водой, Молочко для Умывания.

Идеальный маникюр с Luxio теперь и в Зазеркалье на Кантемировской

Салон красоты Зазеркалье представляет современную линию для маникюра и педикюра - LUXIO.