Все для предпринимателя. Информационный портал

Учет расчетов с контрагентами. Поддержка различных форм учета

Статья входит в цикл «Первые шаги в разработке на 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).

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

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

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

Хронометраж 2 урока курса:

00:16 Знакомство с объектом Подсистема. Для чего нужны подсистемы?
01:25 Создание подсистемы Товары
01:49 Знакомство с окном редактирования объектов конфигурации
04:25 Создание подсистемы Услуги
05:32 Создание подсистемы Зарплата
06:04 Создание подсистемы Бухгалтерия
07:05 Знакомство с панелью разделов прикладного решения
09:03 Настройка расположения разделов прикладного решения
11:55 Тест по материалу 2 урока

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

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

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

Объекты конфигурации - это составные элементы, "детали", из которых складывается любое прикладное решение 1С.

Все объекты конфигурации имеют следующие основные свойства:

  • Имя - это идентификатор или кратное название объекта. Имя является обязательным свойством для любого объекта. Именно это имя используется при обращении к объекту из встроенного языка 1с.
  • Синоним – это «альтернативное» имя объекта. Именно синоним (если данное свойство заполнено) отображается пользователям в режиме 1С Предприятие.
  • Комментарий – подсказка для разработчика. В данном поле разработчик может делать пометки о назначении созданного объекта, хранимых значениях и т.д.

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

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

Домашнее задание по 2 уроку

Домашнее задание по 2 уроку будет вам доступно сразу же после успешного решения теоретического теста:

В ближайшие дни выйдет очередное обновление платформы 1С под номером 8.3.8.хххх

Новое в платформе 8.3.8 – 1С:Предприятие 8:

Работа с Интернет

Реализована поддержка работы с каталогом доверенных сертификатов операционной системы Linux (/etc/ssl/certs ). Реализован объект, скрывающий используемую операционную систему при работе с сертификатами. Реализован объект, предназначенный для кеширования информации о сертификатах в ОС Linux. Рекомендуется использование объектаСертификатыУдостоверяющихЦентровОС .

В качестве значений параметраСертификатыУдостоверяющихЦентров конструктора объекта ЗащищенноеСоединениеOpenSSL могут передаваться объектыСертификатыУдостоверяющихЦентровLinux иСертификатыУдостоверяющихЦентровОС .

Сертификаты NSS более не поддерживаются системой.

Средства публикации веб-клиента, Web-сервисов и HTTP-сервисов

Реализована поддержка веб-сервера Apache 2.4 для ОС Windows и Linux.

Для утилиты webinst реализован ключ -apache24 .

Автоматизированное тестирование

В диалоге О программе (и заголовке окна клиентского приложения) реализовано информирование о том, что клиентское приложение является клиентом или менеджером тестирования.

Реализован методТестируемоеПриложение.УстановитьРезультатДиалогаВыбораФайла () для установки результата работы диалога выбора файлов. МетодТестируемоеПриложение.ПолучитьПодчиненныеОбъекты() включает в результирующую коллекцию окна, содержащие текстовые или табличные документы.

Реализован методТестируемаяФорма.ВыполнитьВыборИзСписка() для выполнения выбора из списка, открытого с помощью метода УправляемаяФорма.ВыбратьИзСписка() .

Реализован методТестируемаяФорма.ВыполнитьВыборИзМеню() для выполнения выбора из меню, открытого с помощью метода УправляемаяФорма.ВыбратьИзМеню() .

Для объекта ТестируемоеПолеФормы реализована поддержка расширения поля текстового документа.

Для объекта ТестируемоеПолеФормы реализована поддержка расширения поля форматированного документа. Для объекта ТестируемоеПолеФормы реализованы методы ПолучитьHTML() (возвращает содержимое форматированного документа) иВвестиHTML() (имитирует ввод текста в форматированный документ).

Реализован методТестируемоеПолеФормы .ЗаписатьСодержимоеВФайл() , выполняющий запись документа в файл на диск, аналогично выполнению команды Сохранить . Метод доступен для расширений табличного документа, текстового документа и форматированного документа.

Средства разработки

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

Переработана форма сравнения/объединения модулей: реализована командная панель, на которой располагаются команды работы с редактором.

В настройках фильтров просмотра реализован фильтрПоказывать только дважды измененные свойства .

Средства разработки

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

  • Сравнение конфигураций (/CompareCfg ).
  • Объединение конфигураций (/MergeCfg ).
  • Выполнение захвата объектов в хранилище конфигурации (/ConfigurationRepositoryLock ).
  • Выполнение отмены захвата объектов в хранилище конфигурации (/ConfigurationRepositoryUnlock ).
  • Помещение измененных объектов в хранилище конфигурации (/ConfigurationRepositoryCommit ).
  • Установка метки на версию хранилища (/ConfigurationRepositorySetLabel ).

Для ключа командной строки пакетного запуска конфигуратора / UpdateCfg реализованы параметры:

  • -DumpListOfTwiceChangedProperties – позволяющий сформировать список дважды измененных объектов.
  • -IncludeObjectsByUnresolvedRefs – если в настройках есть объекты, не включенные в список объединяемых и отсутствующие в основной конфигурации, но на которые есть ссылки из объектов, включенных в список, то такие объекты также помечаются для объединения, и выполняется попытка продолжить объединение.
  • -ClearUnresolvedRefs – ссылки на объекты, не включенные в список объединяемых – очищаются.
  • -Settings – указать имя файла с настройками объединения.
  • -force – определяет необходимость автоматически разрешать ряд проблем при объединении: поведение при наличии заблокированных объектов; поведение при предупреждение о наличии дважды измененных свойств, для которых не выбран режим объединения; поведение при предупреждении об удаляемых объектах, на которые есть ссылки в объектах, не участвующих в объединении.

Для ключа командной строки пакетного запуска конфигуратора /ConfigurationRepositoryUpdateCfg реализован параметр -objects , позволяющий выполнить операцию не со всей конфигурацией, а только с ограниченным набором объектов.

Работа с запросами

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

Реализован методЗапрос.ВыполнитьПакетСПромежуточнымиДанными() . Реализовано свойствоМенеджерВременныхТаблиц.Таблицы .

Внешние источники данных

Реализован методВнешнийИсточникДанныхМенеджер.ТранзакцияАктивна() , позволяющий понять, что внешний источник данных находится в состоянии транзакции

Web-сервисы и HTTP-сервисы

Реализована работа с Web-сервисами, поддерживающими стандарт MTOM

Интерфейс OData

Для стандартного интерфейса OData:

  • Реализован отбор по составным типам;
  • Реализованы лямбда-выражения;
  • Расширены возможности формирования отбора получаемых данных:
    • реализована опция запроса $ski p , позволяющая пропустить несколько первых записей в результате запроса;
    • реализована опция запроса $inlinecount , позволяющая включить в результат запроса размер получившейся выборки;
    • реализована опция $orderby , позволяющая указать порядок записей в результате запроса;
    • реализована опция $count , позволяющая запросить, сколько записей вернет запрос.
  • Расширен состав функций, которые могут использоваться при выполнении запроса:
    • функции работы со строками;
    • функции работы с датой и временем;
    • функция проверки соответствия значения указанному типу;
    • функция приведения типа.

Расширение конфигурации. Средства разработки

Для объектов конфигурации реализован методРасширениеКонфигурации() , позволяющий определить расширение конфигурации, в котором расположен интересующий объект конфигурации.

Для методаМенеджерРасширенийКонфигурации.Получить() реализован параметрИсточникРасширенийКонфигурации , позволяющий указать, какой список расширений требуется получить (расширения только из базы данных; расширения, действующие в текущем сеансе или расширения, не прошедшие проверку при подключении или отключенные профилями безопасности).

Расширение конфигурации

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

Реализована возможность создания в расширении конфигурации следующих объектов:

  • Общие макеты;
  • Общие команды;
  • Группы команд;
  • Общие картинки;
  • Реквизиты, табличные части и реквизиты заимствованных табличных частей:
    • Отчетов
    • Обработок.
  • Формы, макеты и команды заимствованных объектов:
    • Планы обмена;
    • Критерии отбора;
    • Хранилища настроек;
    • Справочники;
    • Документы;
    • Журналы документов;
    • Перечисления;
    • Отчеты;
    • Обработки;
    • Регистры бухгалтерии;
    • Регистры накопления;
    • Регистры расчета;
    • Регистры сведений;
    • Планы видов характеристик;
    • Планы счетов;
    • Планы видов расчетов;
    • Бизнес-процессы;
    • Задачи;
    • Внешние источники данных:
      • Таблицы;
      • Кубы;
      • Таблицы измерений.

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

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

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

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

Реализована возможность выгружать внешнюю обработку/отчет в файлы (в формате XML). Выгрузка возможна с помощью команд меню Файл конфигуратора (Сохранить , Сохранить как , Сохранить копию ). При операции выгрузки невозможно изменить тип объекта (сделать внешнюю обработку внешним отчетом и наоборот). Загрузка возможна с помощью команды меню Файл – Открыть .

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

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

Реализована возможность выполнять выгрузку/загрузку внешней обработки/отчета в файлы с помощью ключей командной строки пакетного запуска конфигуратора. Реализованы ключи/DumpExte rnalDataProcessorOrReportsToFiles и/Load Exte rnalDataProcessorOrReportsFrom Files .

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

Динамический список

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

В режиме совместимости с версией 8.3.7 поведение не изменилось.

Средства разработки

В синтакс-помощник добавлена информация о методе, который является обработчиком запроса HTTP-сервиса. Упрощен доступ разработчика к информации о типах параметра и возвращаемого значения.

03 июля 2012 года состоялось событие, которое не может не коснуться большинства программистов 1с. Фирма 1С выпустила ознакомительную версию платформы «1С Предприятие 8.3» . В цикле статей я постараюсь рассмотреть основные новые возможности платформы «1С Предприятие 8.3». Почему цикл статей, потому что изменений настолько много, что уложится в одном обзоре будет проблематично. И так приступим.

Первое, и на мой взгляд самая существенная доработка, на что хочется обратить внимание, это поддержка всех клиентов (толстый, тонкий) и конфигуратора на операционных системах семейства Linux. Это означает, что с помощью платформы «1С предприятие 8.3» можно строить недорогие и функциональные системы учета, затрачивая лишь средства на лицензирования фирмы 1С.

  1. Для пользователей
  2. Для разработчиков
  3. Для администраторов

Свой обзор начну с пункта №2.

1. В платформу добавлен новый тип данных «ФорматированнаяСтрока «. Для чего этот тип данных предназначен?

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

  • В качестве данных для элементов формы поле надписи
  • В качестве заголовка поля формы типа декорация;
  • В качестве параметра ТекстПредупреждения метода Предупреждение();
  • В качестве параметра ТекстВопроса метода Вопрос().

Рассмотрю на примере как это работает.

Создам новую обработку, добавлю кнопку «Тест» и следующий обработчик для этой кнопки

&НаКлиенте
Процедура Тест (Команда)
Строка1 = НОвый ФорматированнаяСтрока («Тестирование нового типа», Новый Шрифт (,Истина , Истина));
Строка2 = Новый ФорматированнаяСтрока («Продолжить выполнение?»,Новый Цвет (255,140,0));
ОбщаяСтрока = Новый ФорматированнаяСтрока (Строка1, » «, Строка2);
Режим = РежимДиалогаВопрос . ДаНет;
Ответ = Вопрос (ОбщаяСтрока , Режим , 40);
Если Ответ = КодВозвратаДиалога . Нет Тогда
Возврат ;
КонецЕсли ;

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

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

2. Доработана контекстная подсказка, а именно «Подсказка у элементов управляемой формы может быть нескольких видов: непосредственно в поле ввода, рядом с элементом формы и открывающаяся по кнопке (во всплывающем окне)» . Рассмотрим на примерах

Для реквизитов появилось свойство ««. Вызвать расширенную подсказку можно правой клавишей мыши для конкретного реквизита.

В свойствах реквизита необходимо указать следующие настройки

Текст расширенной подсказки вводится в отдельном окне. Для вызова используется правая клавиша мыши. В поле «заголовок » вводится необходимый текст.

Получим следующий результат. Возле реквизита появится кнопка со знаком «? «, кликая по знаку вопроса будет выведена наша подсказка.

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

Еще одно заметное нововведение в подсказках — это подсказка ввода .

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

Одной из конфигураций является система 1С: Бухгалтерия 8.3 , вышедшая в редакции 3.0 . Она предназначена для автоматизации бухгалтерского учета и представляет собой набор программных решений для управления бухгалтерским и налоговым учетом и отчетностью предприятия.

В числе наиболее значимых нововведений программного комплекса "1С:Предприятие 8.3" с включенной конфигурацией "Бухгалтерия предприятия" можно отметить следующие:

Интерфейс "Такси"

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

Отличительные особенности нового интерфейса:

  • максимизация размеров рабочего пространства для мониторов с различным разрешением;
  • более удобная навигация за счет применения вспомогательных панелей: "Инструменты", "История", "Избранное" и другие;
  • быстрый ввод данных по строке;
  • крупный шрифт;
  • возможность добавлять новые элементы справочников непосредственно в списке выбора.

Тонкий клиент и веб-клиент

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

Возможность вести отчетность по нескольким организациям

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

Поддержка различных форм учета

Программный комплекс 1С: Бухгалтерия дает возможность применять различные формы учета, действующие на территории РФ. Данный продукт дает возможность составлять отчетность для организаций на УСН, ОСН, ЕНВД и других системах. Вся отчетность соответствует нормам действующего законодательства РФ, а в случае выхода изменений и дополнений программа выпускает соответствующие обновления. К примеру, в отчетности за 2014 год учитываются изменения в порядке расчетов транспортных налогов - обновлен порядок заполнения декларации и добавлен коэффициент на дорогостоящие автомобили. Налоговая декларация на 2014 год будет заполнена автоматически с учетом этих нововведений.

Возможность быстрого поиска данных

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

Система привилегий доступа

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

Обновление и поддержка

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

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!