Последовательность параметров в шаблонах должна быть одинаковой для всех языков 1с скд

Обновлено: 04.07.2024

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

Пример программного заполнения настроек построю на основе отчёта по оборотному регистру накопления Продажи с измерениями: Контрагент, Номенклатура и ресурсами: Количество и Сумма.

Создание отчёта и настройка схемы компоновки данных.

Итак. Создаём новый отчёт. Открываем схему компоновки данных и добавляем новый набор данных запрос. В окне запроса пишем следующий запрос:

РегистрНакопления.Продажи.Обороты(, , Авто , ) КАК ПродажиОбороты

На закладке «Ресурсы» указываем в качестве ресурсов поля КоличествоОборот и СуммаОборот.

На закладке «Параметры» добавим новый параметр «Период» типа СтандартныйПериод. Для параметра «НачалоПериода» в качестве выражения укажем следующее значение: &Период.ДатаНачала, для параметра «КонецПериода» - &Период.ДатаОкончания. Таким образом, мы избавим себя от приведения даты окончания к концу дня и установки каждого параметра в отдельности. Настройку структуры отчёта мы не делаем. Она будет сформирована программно.

На этом настройка схемы компоновки закончена. Переходим к настройке интерфейса.

Настройка пользовательского интерфейса.

Вначале создадим реквизиты отчёта. Они понадобятся нам при создании интерфейса и дальнейшей программной обработке указанных пользователем настроек. Добавляем реквизит Период – тип СтандартныйПериод, Количество – тип Булево, Сумма – тип Булево. Данные реквизиты будут отвечать за переданный параметр Период и за вывод ресурсов отчёта КоличествоОборот и СуммаОборот соответственно. Также нам потребуется табличная часть Группировки с реквизитами Поле – тип Строка и ТипГруппировки – тип Строка. Табличная часть будет отвечать за выбранные группировки при формировании отчёта.

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

На форме располагаем следующие элементы:

  • Поля ввода для указания периода: ДатаНачала – данные Период.ДатаНачала, Датаокончания - Период.ДатаОкончания, Период – данные Период и кнопку КнопкаВыбораПериода (для кнопки нужно назначить обработчик, открывающий диалог указания периода. Программный код можно посмотреть в прикреплённом внешнем отчёте) .
  • Панель с тремя страницами. Первую страницу назовём Отбор и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.Отбор. Вторую страницу назовём УсловноеОформление и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.УсловноеОформление. Третью страницу назовём Сортировка и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.Порядок.
  • Табличное поле Группировки, связанное с табличной частью отчёта «Группировки», и добавляем командную панель с указанием в качестве источника действий табличного поля «Группировки». На командную панель добавляем кнопки «Добавить», «Удалить», «Переместить вверх», «Переместить вниз».
  • 2 флажка ВыводитьКоличество и ВыводитьСумму, связанные с реквизитами отчёта Количество и Сумма соответственно.
  • Поле табличного документа Результат, автоматически созданное при создании формы, оставляем без изменения.

На этом создание пользовательского интерфейса завершено. Переходим к самому интересному – программной части.

Программная работа со схемой компоновки данных.

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

СписокДоступныхПолейГруппировки = Новый СписокЗначений ;

СписокДоступныхПолейГруппировки . Добавить ( "Регистратор" );

СписокДоступныхПолейГруппировки . Добавить ( "Контрагент" );

СписокДоступныхПолейГруппировки . Добавить ( "Номенклатура" );

СписокДоступныхТиповГруппировки = Новый СписокЗначений ;

СписокДоступныхТиповГруппировки . Добавить ( "Иерархия" );

СписокДоступныхТиповГруппировки . Добавить ( "Элементы" );

При открытии формы заполним группировки значениями по умолчанию

НоваяГруппировка = Группировки . Добавить ();

НоваяГруппировка . Поле = "Регистратор" ;

НоваяГруппировка . ТипГруппировки = "Элементы" ;

НоваяГруппировка . Поле = "Контрагент" ;

НоваяГруппировка . ТипГруппировки = "Элементы" ;

НоваяГруппировка = Группировки . Добавить ();

НоваяГруппировка . Поле = "Номенклатура" ;

НоваяГруппировка . ТипГруппировки = "Элементы" ;

Установим доступные списки выбора для полей группировок :

ЭлементыФормы . Группировки . Колонки . Поле . ЭлементУправления . СписокВыбора = СписокДоступныхПолейГруппировки ;

ЭлементыФормы . Группировки . Колонки . ТипГруппировки . ЭлементУправления . СписокВыбора = СписокДоступныхТиповГруппировки ;

Также нам необходимо определить в модуле объекта обработчик ПриКомпоновкеРезультата, в котором будем загружать наши настройки в схему компоновки данных.

// Добавляет колонки (поля ресурсов) в соответствии с флажками на форме

Если Количество И Не НайтиПолеКомпоновки ( "КоличествоОборот" , НастройкиСКД . Выбор . Элементы ) Тогда

ВыбранноеПоле = НастройкиСКД . Выбор . Элементы . Добавить ( Тип ( "ВыбранноеПолеКомпоновкиДанных" ));

ВыбранноеПоле . Использование = Истина ;

ВыбранноеПоле . Заголовок = "Количество" ;

ВыбранноеПоле . Поле = Новый ПолеКомпоновкиДанных ( "КоличествоОборот" );

Если Сумма И Не НайтиПолеКомпоновки ( "СуммаОборот" , НастройкиСКД . Выбор . Элементы ) Тогда

ВыбранноеПоле = НастройкиСКД . Выбор . Элементы . Добавить ( Тип ( "ВыбранноеПолеКомпоновкиДанных" ));

ВыбранноеПоле . Использование = Истина;

ВыбранноеПоле . Заголовок = "Сумма" ;

ВыбранноеПоле . Поле = Новый ПолеКомпоновкиДанных ( "СуммаОборот" );

//Удаляет колонки, соответствующие флажки которых не были отмечены

Пока Счетчик < НастройкиСКД . Выбор . Элементы . Количество () Цикл

ПолеКомпоновкиДанных = НастройкиСКД . Выбор . Элементы [ Счетчик ];

Если ПолеКомпоновкиДанных . Поле = Новый ПолеКомпоновкиДанных ( "КоличествоОборот" ) И Не Количество Тогда

НастройкиСКД . Выбор . Элементы . Удалить ( ПолеКомпоновкиДанных );

ИначеЕсли ПолеКомпоновкиДанных . Поле = Новый ПолеКомпоновкиДанных ( "СуммаОборот" ) И Не Сумма Тогда

НастройкиСКД . Выбор . Элементы . Удалить ( ПолеКомпоновкиДанных );

Счетчик = Счетчик + 1 ;

//заполняем поля группировок в соответствии с настройками в табличной части Группировки

НастройкиСКД . Структура . Очистить ();

Для Каждого Группировка Из Группировки Цикл

ЭлементСтруктуры = ЭлементСтруктуры . Структура . Добавить ( Тип ( "ГруппировкаКомпоновкиДанных" ));

ЭлементГруппировки = ЭлементСтруктуры . ПоляГруппировки . Элементы . Добавить ( Тип ( "ПолеГруппировкиКомпоновкиДанных" ));

ЭлементГруппировки . Использование = Истина;

ЭлементГруппировки . Поле = Новый ПолеКомпоновкиДанных ( Группировка . Поле );

Если СписокДоступныхТиповГруппировки . НайтиПоЗначению ( Группировка . ТипГруппировки )=Неопределено Тогда

ЭлементГруппировки . ТипГруппировки = ТипГруппировкиКомпоновкиДанных . Элементы ;

ЭлементГруппировки . ТипГруппировки = ТипГруппировкиКомпоновкиДанных [ Группировка . ТипГруппировки ];

ПолеСортировки = ЭлементСтруктуры . Порядок . Элементы . Добавить ( Тип ( "АвтоЭлементПорядкаКомпоновкиДанных" ));

ПолеСортировки . Использование = Истина;

ВыбранноеПоле = ЭлементСтруктуры . Выбор . Элементы . Добавить ( Тип ( "АвтоВыбранноеПолеКомпоновкиДанных" ));

ВыбранноеПоле . Использование = Истина;

Далее, устанавливаем значения параметров и загружаем заполненные настройки

Настройки . ПараметрыДанных . УстановитьЗначениеПараметра ( "Период" , Период );

КомпоновщикНастроек . ЗагрузитьНастройки ( Настройки );

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

Функция НайтиПолеКомпоновки ( Имя , Коллекция )

Для Каждого ПолеКомпоновкиДанных Из Коллекция Цикл

Если ПолеКомпоновкиДанных . Поле = Новый ПолеКомпоновкиДанных ( Имя ) Тогда

Готово. Настройки схемы компоновки данных заполнены, и отчёт может быть сформирован.

Для того чтобы при обработке расшифровки поля отбора и группировок заполнились в соответствии с выбранным полем нужно самостоятельно описать обработчик расшифровки. Для этого создадим булевский реквизит отчёта ЭтоРасшифровка. Реквизит будет показывать, формируем мы простой отчёт или расшифровываем. Для табличного поля Результат создаём обработчик РезультатОбработкаРасшифровки. В созданном обработчике пишем

Если ДанныеРасшифровки = Неопределено Тогда Возврат КонецЕсли;

ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных ( ДанныеРасшифровки , Новый ИсточникДоступныхНастроекКомпоновкиДанных ( СхемаКомпоновкиДанных ));

Настройки = ОбработкаРасшифровки . Выполнить ( Расшифровка );

Если Настройки <>Неопределено Тогда

КомпоновщикНастроек . ЗагрузитьНастройки ( Настройки );

ЭлементыФормы . Результат . Очистить ();

СкомпоноватьРезультат ( ЭлементыФормы . Результат , ДанныеРасшифровки );

А в обработчике ПриКомпоновкеРезультата модуля объекта указываем, что заполнять настройки группировок нужно только в том случае, если это не расшифровка. Таким образом, обработчик ПриКомпоновкеРезультата принимает вид:

Процедура ПриКомпоновкеРезультата ( ДокументРезультат , ДанныеРасшифровки , СтандартнаяОбработка )

Если Не ( Количество ИЛИ Сумма ) Тогда

Сообщить ( "Необходимо выбрать хотя бы один показатель!" );

Настройки = КомпоновщикНастроек . ПолучитьНастройки ();

Если НЕ ЭтоРасшифровка Тогда

Настройки . ПараметрыДанных . УстановитьЗначениеПараметра ( "Период" , Период );

КомпоновщикНастроек . ЗагрузитьНастройки ( Настройки );

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

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

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

Параметры обозначаются знаком & после которого следует имя параметра.

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

При построении запроса конструктором на вкладке “Условия” если не стоит галочка “Произвольное”, то конструктор считает что в правом значении параметр и он записывается без символа &.


Таким образом этот блок настраивается в конструкторе.

Если значение параметра не задано, то построение СКД будет невозможно и будет выдана ошибка, поэтому такие параметры называют “обязательными” или “жесткими”.

Выбрать.

Этот блок располагается в запросе типа выборка данных пакета запросов СКД в первом запросе объединения между перечнем полей и “ИЗ” и заключается в фигурные скобки.


Таким образом этот блок настраивается в конструкторе.

При автоматическом заполнении полей набора данных, для не включенных в блок расширения “ВЫБРАТЬ”, добавляются все поля списка выборки и их дочерние поля. Они становятся доступными для выбора, упорядочивания, группировки, отбора. Также добавляются поля, которые упомянуты в параметре “Условия” виртуальных таблиц как доступные для отбора.

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

Блок расширения “ГДЕ” может быть расположен после или вместо обычного блока “ГДЕ” в любом запросе, подзапросе, запросах объединения и заключается в фигурные скобки. Для присвоения отбору псевдонима используется конструкция “КАК”. Псевдоним нужно использовать чтобы отбор производился конструкцией расширения языка запросов, но не происходил автоматически по наименованию поля.

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

Если автозаполнение включено, и это поле включено в блок расширения “ВЫБРАТЬ” тогда настройки обоих блоков объединяются. Если не включено в “ВЫБРАТЬ” то поля попадают доступными для вывода, группировки, отбора и упорядочивания.


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

Также в блоке “ГДЕ” вместо параметра может быть произвольное выражение с использованием конструкции ВЫБОР или параметров со страницы “Параметры” СКД. Правда в последнем случае вид сравнения необходимо указывать конкретно.

Нужно с осторожностью использовать вид сравнения МЕЖДУ поскольку:

Если параметры НачалоПериода и КонецПериода не будут заданы, то система получит документы за весь период.

Если параметры НачалоПериода и КонецПериода будут заданы, то система получит документы за указанный период.

Если какой-то один из параметров не будет задан, то система выдаст ошибку.

Один из вариантов решения это разбить МЕЖДУ на два условия чтобы система не выдавала ошибку в случае одного незаполненного параметра.

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

Параметры виртуальных таблиц.

В параметрах виртуальных таблиц в отличие от предыдущих блоков, каждый параметр заключается в фигурные скобки. В полях относящихся к периоду название параметра ставится с &. Пример &ДатаНачала. В поле “Условие” параметры оформляются аналогично блоку “ГДЕ”.

Параметры из полей периода попадают на страницу “Параметры” СКД. Если автозаполнение включено и в поле периода параметр не вписан, параметры с именем поля периода будут автоматически созданы на странице “Параметры” СКД.


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

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

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

Если автозаполнение включено и в поля периода не вписаны “мягкие” параметры компоновки данных то параметры с именем поля периода будут автоматически созданы на странице “Параметры” СКД и текст запроса:

будет соответствовать следующему:

В этом случае “мягкие” параметры также будут иметь приоритет над “жесткими”.


Обзорный вид страницы.


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

Строка параметра имеет следующие реквизиты:


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

А для того чтобы введенные значения интерпретировались в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .

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

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



Даты начала и конца стандартного периода также содержат и время. ДатаНачала имеет время 00:00:00, а ДатаОкончания 23:59:59. Получится что пользователь выберет стандартный период в “Период” а разработчик будет использовать корректные “ПериодНачало” и “ПериодОкончание”.




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

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



Если Режим редактирования установить Быстрый доступ, то параметр появится на форме.


Если у параметра “Период” представление заполнить строкой “ПеРиОд”, то вместо название будет показано содержания поля представление.

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


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


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


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

Таким образом можно программно менять параметры из формы.

Параметры это ключевой инструмент для управления отчетом. Использование параметров дает возможность решить множество прикладных задач, таких как калькуляция на основе информации в базе и значений введенных интерактивно для конкретной калькуляции и многих других. В данной статье рассмотрены практически все относящиеся к параметрам механизмы и особенности. Рамках статьи не рассмотрен блок “Характеристики” Расширения языка запросов для СКД поскольку он не касается параметров. Не рассмотрена настройка параметра “Параметр функциональной опции” поскольку ее описание лучше включить в статью по функциональным опциям.

Язык выражений СКД

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

СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ""; // Очищаем запрос в наборе данных

ДокументыКонфигурации = Метаданные.Документы; // Получаем коллекцию метаданных документов

КоличествоДокументов = ДокументыКонфигурации.Количество(); // Определяем общее количество документов в конфигурации

Сч = 1;
ТекстЗапроса = "";
Для Каждого Док Из ДокументыКонфигурации Цикл
ТекстЗапроса = ТекстЗапроса + // Для каждого документа формируем текст запроса к его таблице

"ВЫБРАТЬ
| Док.Номер КАК Номер,
| Док.Дата КАК Дата,
| Док.Проведен КАК Проведен
|ИЗ
| Документ."+Док.Имя+" КАК Док"; // В текст запроса нам необходимо лишь подставить имя таблицы документа в дереве метаданных

Если Сч < КоличествоДокументов Тогда // Если документ не последний в коллекции - добавляем инструкцию "ОБЪЕДИНИТЬ ВСЕ" для

ТекстЗапроса = ТекстЗапроса + // объединения результатов запросов по документам в единый список

"
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
Сч = Сч + 1;
КонецЦикла;
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Компоновщик Настроек.ПолучитьНастройки(),ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры

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

Что такое шаблон в 1С? Шаблон это комбинация различных операторов, которая может часто встречаться в коде программы. Например, шаблоном можно сделать все условия Если..То, или все циклы Пока…Цикл.
Шаблоны хранятся в файлах (имеют расширение *.st), могут поставляться с платформой 1С, а могут быть созданы пользователем самостоятельно. Шаблоны, которые поставляются платформой 1С, называются «Стандартными» и хранятся в каталоге bin соответствующего релиза платформы.


А шаблоны, которые создали пользователи, называются соответственно «Пользовательскими». В этой статье я научу Вас работать и со стандартными шаблонами, которые поставляет 1С: Предприятие.
Вызвать шаблон достаточно просто: нужно написать какое-нибудь строку, которая привязана к этому шаблону (после узнаем как) и нажать комбинацию клавиш Ctrl+Q. Курсор должен быть сразу после последнего символа строки! После этого, или сразу появится нужный шаблон в коде, или появится окно условия, как на рисунке ниже.


Если Вы введете это условие, и нажмете ОК, то оно появится в коде



&НаКлиенте
Процедура Команда1 ( Команда )

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



Или через панель «Стандартная»



Или используя контекстное меню


После этого вам откроется список шаблонов, пока в нем только один головной каталог «Стандартные» (поскольку нет пользовательских), который состоит из трех подкаталогов «Управляющие», «Прикладные» и «Прочее»

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


Где снять флаг «Использовать стандартные шаблоны»


После этого список шаблонов будет пуст.


Посмотрим, что же собой представляет стандартный шаблон, для этого зайдем в какой-нибудь шаблон в подкаталоге «Управляющие», например, шаблон «Пока». Для этого нужно дважды кликнуть по нему мышкой. В открывшемся окне, по большому счету, нам интересно только название и строка, на которую шаблон будет заменяться, и сам текст шаблона


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


Это значит, что Вам не обязательно писать всю строку: «функция», а можно написать только часть: «функ»
Кстати, регистр для написания строки шаблона не важен!
Обратите внимание, что в списке шаблонов есть шаблоны, у которых не заполнен параметр «Автоматически заменять строку» (он в списке в скобках)


Это значит, что эти шаблоны нельзя подобрать комбинацией Ctrl+Q, но их можно перетащить из списка шаблонов в Ваш код. Например, перетащим шаблон «Запрос». Просто выделим шаблон и поведем его мышкой в модуль.


После этого откроется конструктор запроса


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


Так же шаблоны можно получать при помощи контекстного меню

В контекстное меню войдут шаблоны, у которых установлен флаг «Включать в контекстное меню»


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


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



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


На этом мы закончим изучение стандартных шаблонов. Изучите шаблоны особенно, если Вы планируете сдавать на 1С: Специалиста по платформе, поскольку они очень существенно могут уменьшить время набора кода. А время это один из самых ценных ресурсов на этом экзамене!


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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Читайте также: