Описание процедур и функций
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Описание процедур и функций рекомендуется выполнять в виде комментария к ним. Необходимость комментирования отдельных участков кода процедур и функций должна определяться разработчиком исходя из сложности и нестандартности конкретного участка кода.
При разработке на платформе 1С:Предприятие 8.3 текст комментария также выводится в контекстной подсказке процедур, функций и их параметров. Подробнее см. раздел «Контекстная подсказка при вводе текстов модулей» главы 27 «Инструменты разработки» в документации к платформе.
При разработке в 1C:Enterprise Development Tools (EDT) текст комментария также используется для уточнения типизации параметров и возвращаемого значения процедур и функций, и тем самым помогает выявлять ошибки кодирования на этапе разработки.
2. Обязательного комментирования требуют процедуры и функции входящие в программный интерфейс модулей — такие процедуры и функции предназначены для использования в других функциональных подсистемах (или в других приложениях), за которые могут отвечать другие разработчики, поэтому они должны быть хорошо документированы.
3. Прочие процедуры и функции (в том числе обработчики событий модулей форм, объектов, наборов записей, менеджеров значений и т.п.) рекомендуется комментировать, если требуется пояснить назначение процедуры (функции) или особенности её работы. Также рекомендуется описывать причины невыполнения некоторых действий, если они кажутся неочевидными для данной процедуры или функции.
Но если процедура (функция) не сложна для понимания и ее назначение и порядок работы следуют из ее названия и имен формальных параметров, комментарий допускается не писать.
4. Следует избегать комментариев, не дающих дополнительных пояснений о работе не-экспортной процедуры (функции).
Например, неправильно:
// Процедура - обработчик события "ПриОткрытии" формы // &НаКлиенте Процедура ПриОткрытии() // Процедура-обработчик команды "Рассчитать" // &НаКлиенте Процедура Рассчитать() // Процедура-обработчик события "ПриИзменении" элемента формы "РедактированиеТолькоВДиалоге" // &НаКлиенте Процедура РедактированиеТолькоВДиалогеПриИзменении(Элемент)
В этих примерах комментарии избыточны, так как из названий процедур очевидно, что это обработчики событий. А с их описанием и назначением параметров можно ознакомиться в синтакс-помощнике.
// Функция возвращает статью движения денежных средств по данным документа Функция СтатьяДвиженияДенежныхСредств(ДанныеДокумента)
Этот комментарий не дает никакой дополнительной информации о функции.
5. Комментарий размещается перед объявлением процедуры (функции) и имеет следующий вид.
5.1. Секция «Описание» (англ. «Description» ) содержит описание назначения процедуры (функции), достаточное для понимания сценариев ее использования без просмотра ее исходного кода. Также может содержать краткое описание принципов работы и перекрестные ссылки на связанные процедуры и функции.
Может быть единственной секцией для процедур без параметров. Описание не должно совпадать с именем процедуры (функции). Для процедур и функций секция должна начинаться с глагола. Для функций это, как правило: «Возвращает…». В тех случаях, когда возвращаемый результат является не основным в работе функции, – то с основного действия, например: «Проверяет…», «Сравнивает…», «Вычисляет…» и т.п. Не рекомендуется начинать описание с избыточных слов «Процедура. », «Функция. », а также с имени самой процедуры (функции), от удаления которых смысл не меняется.
// Конструктор объекта WSПрокси. // . Функция WSПрокси(ПараметрыПрокси) Экспорт // Функция СтрокаТаблицыЗначенийВСтруктуру создает структуру со свойствами, соответствующими. Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт
// Создает прокси на основе определения веб-сервиса и связывает // его с точкой подключения веб-сервиса. // В дополнении к платформенному конструктору Новый WSПрокси: // - включает в себя вызов конструктора WSОпределения; // - на время сеанса кэширует файл WSDL для оптимизации частых обращений к веб-сервису; // - не требует явного указания ИнтернетПрокси (он подставляется автоматически, если настроен); // - выполняет быструю проверку доступности веб-сервиса с помощью операции Ping. // . Функция WSПрокси(ПараметрыПрокси) Экспорт // Создает структуру со свойствами, соответствующими. Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт
5.2. Секция «Параметры» (англ. «Parameters» ) описывает параметры процедуры (функции). Если их нет, секция пропускается. Предваряется строкой «Параметры:», затем с новой строки размещаются описания всех параметров.
5.2.1. Описание параметра начинается с новой строки, далее имя параметра, затем дефис и список типов (*), далее дефис и текстовое описание параметра.
Имя параметра необходимо стремиться выбирать таким образом, чтобы его назначение было понятно в контексте функции без дополнительных пояснений
Описание типа является обязательным. Тип может быть описан явно, при этом может быть указан или один тип или список типов. Под «списком типов» подразумеваются имена типов, разделенные запятыми. Имя типа может быть простым (в одно слово) или составным — в два слова, разделенных точкой.
Например: Строка, Структура, Произвольный, СправочникСсылка.Сотрудники .
В качестве типов значений следует использовать только существующие в платформе типы, а также специальные типы, предусмотренные в EDT: ОпределяемыйТип. , СправочникСсылка , ОбъектМетаданныхОтчет , РасширениеДекорацииФормыДляНадписи и т.п.
// КоллекцияСтрок - КоллекцияЗначений – коллекция для сравнения;// ФормируемыйОтчет - ОбъектМетаданных: Отчет// ПрисоединенныйФайлОбъект - элемент справочника файлов.
// КоллекцияСтрок – ТаблицаЗначений, Массив, СписокЗначений – коллекция для сравнения.// ФормируемыйОтчет – ОбъектМетаданныхОтчет// ПрисоединенныйФайлОбъект - ОпределяемыйТип.ПрисоединенныйФайлОбъект - элемент справочника файлов.
Текстовое описание параметра рекомендуется заполнять в том случае, когда только имени параметра в контексте функции не достаточно для понимания его назначения, либо требуется дать дополнительную информацию о типе, поясняющие назначение параметра, а также может приводиться наглядный пример с ожидаемым значением параметра.
// Проверяет, что переданные адреса включены в задачу. Если проверка не проходит – генерируется исключение.
//
// Параметры:
// Адреса — Строка — строка, содержащая электронные адреса
// ЗадачаИсполнителя — ЗадачаСсылка.ЗадачаИсполнителя – проверяемая задача
//
Процедура ПроверитьАдресаЗадачи( Адреса, ЗадачаИсполнителя)
// Проверяет, что переданные адреса включены в задачу. Если проверка не проходит – генерируется исключение.
//
// Параметры:
// Адреса — Строка — содержит электронные адреса, разделенные запятой. Например, support@mycorp.ru,v8@localdomain.
// ЗадачаИсполнителя — ЗадачаСсылка.ЗадачаИсполнителя
//
Процедура ПроверитьАдресаЗадачи(Адреса, ЗадачаИсполнителя)
В данном примере текстовое описание для параметра «Адреса» нужно чтобы
- указать правило передачи нескольких адресов (через зяпятую);
- привести пример.
Текстовое описание для параметра ЗадачаИсполнителя не нужно.
5.2.2. Для параметров типа Структура и ТаблицаЗначений (ДеревоЗначений) в описании типа необходимо указывать ссылку на функцию, выходным значением которой является эта структура или таблица значений. Например, ссылку на функцию-конструктор.
// Заполняет цены в строке табличной части
// Параметры:
// ТекущаяСтрока – СтрокаТабличнойЧасти
// ПараметрыЗаполненияЦен – см. ЦенообразованиеСервер.ПараметрыЗаполненияЦен
//
Процедура ЗаполнитьЦеныВСтрокеТЧ(ТекущаяСтрока, ПараметрыЗаполненияЦен);
В редких случаях, когда метод обрабатывает коллекции универсальным образом, не нужно описывать свойства и колонки параметра, достаточно указать просто тип Структура или ТаблицаЗначений (ДеревоЗначений).
5.2.3. Для параметров типа Массив следует указывать тип элементов с помощью ключевого слова «из» (англ. «of» ):
// МассивПеренаправленныхЗадач - Массив - массив перенаправленных задач.// МассивПеренаправленныхЗадач - Массив - задачи (ЗадачаСсылка.ЗадачаИсполнителя), перенаправленные другому исполнителю.
Правильно:
// СведенияОбОбновлении — Массив из см. ОбновлениеИнформационнойБазы.ПараметрыОбновления
Допускается не указывать тип элементов массивов только в методах, которые работают с массивами универсальным образом. Например, в Библиотеке стандартных подсистем есть методы ДополнитьМассив , УдалитьВсеВхожденияЗначенияИзМассива и т.д.
5.2.4. Также для параметра типа СтрокаТаблицыЗначений ( СтрокаДереваЗначений ) возможно задать состав свойств, соответствующий колонкам его таблицы-владельца (дерева-владельца):
Например:
// СведенияОРегионе – СтрокаТаблицыЗначений: см. РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ
где КлассификаторСубъектовРФ — экспортная функция модуля менеджера регистра сведения АдресныеОбъекты, которая возвращает таблицу значений.
5.2.5. Также для каждого параметра можно задать одно или несколько дополнительных описаний типов параметра. Каждое дополнительное описание начинается с новой строки, затем обязательный дефис, далее список типов параметра далее дефис и текстовое описание.
Например:
// Параметры: // Реквизиты - Строка - имена реквизитов, перечисленные через запятую. // Например, "Код, Наименование, Родитель". // - Структура, ФиксированнаяСтруктура - в качестве ключа передается // псевдоним поля для возвращаемой структуры с результатом, // а в качестве значения (опционально) фактическое имя поля в таблице. // Если значение не определено, то имя поля берется из ключа. // - Массив Из Строка, ФиксированныйМассив Из Строка - имена реквизитов.
5.2.6. Описание также могут быть заданы с помощью ссылки на функцию-конструктор в формате «см. ПутьКФункции» (англ «see MethodPath» ).
Например:
// ПараметрыУказанияСерий — см. НоменклатураКлиентСервер.ПараметрыУказанияСерий
// Дубли — см. ОбработкаОбъект.ПоискИУдалениеДублей.ГруппыДублей
// РеквизитыКомпонент — Массив из см. ВнешниеКомпоненты.РеквизитыКомпоненты
При разработке кода, обращающегося к реквизитам конкретного объекта метаданных или формы, можно ссылаться на типы реквизитов этого объекта (формы):
// Запросы — см. Обработки.КонсольЗапросов.ТабличнаяЧасть.Запросы
// ТипыДанных — см. Обработки.КонсольЗапросов.Реквизит.ДоступныеТипыДанных
// Вложения — см. Справочники.ШаблоныСообщений.ФормаЭлемента.Вложения
// КонтактнаяИнформация — см. Документы.ЗаказПокупателя.ФормаДокумента.Объект.КонтактнаяИнформация
Также в редких случаях, когда подходящей функции-конструктора не существует и ее невозможно создать, допустимо указывать ссылку на другую процедуру (при полном совпадении параметров) или на параметр другой процедуры или функции, например:
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту
//
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
// Параметры:
// НастройкиФормы — см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы
// Источники — см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники
// ПодключенныеОтчетыИОбработки — см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки
// Команды — см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды
//
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
5.3. Секция «Возвращаемое значение» (англ. «Returns» ) описывает тип и содержание возвращаемого значения функции. Для процедур эта секция отсутствует. Предваряется строкой «Возвращаемое значение:». Затем с новой строки тип возвращаемого значения, дефис и текст описания. При использовании возвращаемого значения составного типа следует каждый тип писать с новой строки и с дефиса. Например:
// Возвращаемое значение: // Строка // Возвращаемое значение: // Булево - Истина, если хотя бы одна из переданных ролей доступна текущему пользователю, либо у него есть административные права. // Возвращаемое значение: // - ЛюбаяСсылка - ссылка на предопределенный элемент. // - Неопределено - если предопределенный элемент есть в метаданных, но не создан в ИБ. // Возвращаемое значение: // - СправочникСсылка.Пользователи // - СправочникСсылка.ВнешниеПользователи
Текстовое описание возвращаемого значения рекомендуется заполнять в том случае, когда только одного описания функции недостаточно, либо требуется дать дополнительную информацию о типе, например, о составе свойств или колонок возвращаемого значения. Также может быть приведен пример с ожидаемым значением возвращаемого значения, либо сквозной пример размещается в секции «Пример» ниже.
Формат описания возвращаемого значения с типом Массив аналогичен описанному в п. 5.2.3.
Формат описания возвращаемого значения с типом Структура и ТаблицаЗначений описан в стандарте Структуры и таблицы значений в качестве параметров процедур и функций.
5.4. Секция «Пример» (англ. «Example» ) содержит пример использования процедуры, или функции. Предваряется строкой «Пример:». Далее с новой строки пример использования. Имя процедуры (функции) следует писать вместе с именем общего модуля, в котором она расположена. Из примера должно быть понятно, что передается на входе и что возвращается на выходе.
Например, неправильно:
// Пример: // ПодставитьПараметрыВСтроку(ШаблонСтроки, СтрокаЗамены);
// Пример: // СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел в Зоопарк".
5.4.1. В переопределяемых модулях в секции «Пример» следует размещать пример реализации переопределяемой процедуры, а не пример ее вызова. Например, для процедуры ПриОпределенииОбщихПараметровБазовойФункциональности(ОбщиеПараметры):
// Пример: // ОбщиеПараметры.МинимальноНеобходимаяВерсияПлатформы = "8.3.4.365"; // ОбщиеПараметры.РекомендуемыйОбъемОперативнойПамяти = 2;
5.5. В редких случаях, когда сразу несколько параметров имеют дополнительные типы, рекомендуется добавить секцию «Варианты вызова» (англ. «Сall options» ), в которой дать описания наиболее частых или всех возможных вариантов вызова функции с различными комбинациями типов параметров. Секция начинается фразой «Варианты вызова:» с новой строки, затем идут описания вариантов, каждое начинается с новой строки. Каждый вариант вызова представляется в виде имени функции со списком типов, перечисленных через запятую в круглых скобках, затем следует дефис и текстовое описание варианта.
// . // // Параметры: // Параметр1 - Тип11, Тип12 - . // Параметр2 - Тип21, Тип22, Тип23 - . // // Варианты вызова: // УниверсальнаяПроцедура(Тип11, Тип21) - описание . // УниверсальнаяПроцедура(Тип12, Тип22) - описание . // УниверсальнаяПроцедура(Тип11, Тип23) - описание . // Процедура УниверсальнаяПроцедура(Параметр1, Параметр2) Экспорт
5.6. В любом месте документирующего комментария можно добавить переход к другим объектам конфигурации, процедурам и функциям (в частности, для перехода к функциям-конструкторам структур). При использовании 1C:Enterprise Development Tools среда оформит такие переходы в виде гиперссылки.
Например:
// Описание универсальной процедуры. // // См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа // // Параметры: // Параметр1 – Произвольный – описание параметра см. Справочник.Контрагенты. // Процедура УниверсальнаяПроцедура(Параметр1)
5.7. В случаях когда возникает необходимость отметить процедуру (функцию) как устаревшую, в первой строке ее описания размещается слово «Устарела» (англ. «Deprecated» ).
Например:
// Устарела. Следует использовать ОбщегоНазначения.РазделениеВключено и // ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных // . Функция ИспользованиеРазделителяСеанса() Экспорт
6. Если требуется прокомментировать процедуру или функцию с директивой компиляции, то вначале следует размещать комментарий, а затем —
директиву компиляции. Например:
// Процедура - обработчик события формы ПриСозданииНаСервере. // Обрабатывает параметры формы и заполняет реквизиты формы значениями. // А также выполняет следующие действия: // . // &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Такой стиль размещения комментария позволяет в первую очередь обращать внимание на определение функции и директиву компиляции, а потом — на комментарий, который может занимать достаточно большое количество строк.
7. Код процедур и функций должен отделяться друг от друга в тексте модуля пустыми строками.
Примеры описания процедур и функций
Пример описания функции с одним параметром:
// Определяет доступность ролей ИменаРолей текущему пользователю, // а также доступность административных прав. // // Параметры: // ИменаРолей - Строка - имена ролей, доступность которых проверяется, разделенные запятыми. // // Возвращаемое значение: // Булево - Истина, если хотя бы одна из переданных ролей доступна текущему пользователю, // либо у него есть административные права. // // Пример: // Если РолиДоступны("ИспользованиеРассылокОтчетов,ОтправкаПоПочте") Тогда . // Функция РолиДоступны(ИменаРолей) Экспорт
Пример описания процедуры без параметров:
// В обработчике события ПередЗаписью документа выполняется; // - очистка табличной части услуги, в случае если указан договор с комиссионером; // - проверка заполнения реквизита ЕдиницаИзмеренияМест табл. части Товары; // - синхронизация с "подчиненным" счетом-фактурой; // - заполнение склада и заказа покупателя в табличных частях Товары и ВозвратнаяТара; // - удаление неиспользуемых строк табличной части "Серийные номера"; // - заполнение переменной модуля объекта УдалятьДвижение. // Процедура ПередЗаписью() КонецПроцедуры
Для автоматического упорядочивания комментариев к процедурам или функциям с директивами компиляции можно воспользоваться приложенной обработкой ФорматированиеДирективКомпиляции.epf .
Для этого необходимо:
- Выгрузить модули конфигурации (команда меню Конфигурация -> Выгрузить файлы конфигурации. )
- Открыть обработку в режиме 1С:Предприятие и указать каталог, в который были выгружены модули — далее нажать кнопку «Форматировать»
- Загрузить модули в конфигурацию (команда меню Конфигурация -> Загрузить файлы конфигурации. )
Раздел 06. Объектная модель прикладного решения
356. Алгоритмы в модуле обычной формы могут исполняться?
• Только на клиентском компьютере
357. Алгоритмы в модуле управляемой формы могут исполняться?
• Место определяется для каждой процедуры и функции модуля
• 1200
359. В каком обработчике события модуля объекта можно отказаться от записи объекта, например, элемента справочника?
• ПередЗаписью
• ПриЗаписи
360. В каком свойстве хранится время документа?
• Дата
361. В каком свойстве хранится дата документа?
• Дата
362. В каком случае рекомендуется использовать общий модуль для описания только экспортных функций?
• Только раздел процедур и функций
363. В каком формате хранятся тексты конфигурации и базы данных в системе 1С:Предприятие?
• Тексты конфигурации и базы данных хранятся в формате UNICODE
364. В модуле приложения.
• нет ограничений на описание переменных, процедур, функций
365. В общих модулях.
• нельзя описывать переменные
366. Верно ли что в 1С:Предприятие 8 любая текстовая информация может включать одновременно символы различных языков?
• Да, так как все тексты конфигурации и базы данных хранятся в формате UNICODE
367. Возможно ли использование в одном исходном тексте операторов встроенного языка в русском и английском написании?
• Да, для этого не требуется изменения каких-либо настроек конфигуратора
368. Где может размещаться процедура-обработчик события «Нажатие» кнопки диалога?
• В модуле формы
369. Где располагаются процедуры-обработчики событий прикладных объектов, например, ПриЗаписи, ПередУдалением?
• В модуле объекта
370. Для чего предназначен объект ДокументСписок?
• Для управления списком документов, выводимых в табличное поле, т.е. для решения интерфейсных задач
371. Для чего предназначен объект конфигурации «Язык»?
• Для создания интерфейса программы на разных языках
372. Для чего применяется код локализации?
• В форматных строках во встроенном языке для упрощения адаптации решений к конкретным региональным установкам
• Для указания региональных установок информационной базы
373. Если в региональных установках информационной базы ни одно из свойств установлено не будет, тогда.
• язык и форматы отображения чисел, даты и времени будут определяться настройками операционной системы
374. Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):
• может, но только если модуль глобальный
375. К чему приведет изменение кода языка в свойстве «Код языка», если уже введены тексты в свойствах «Синоним» или «Заголовок» на этом языке?
• К «потере» введенных текстов с возможностью «восстановления» при указании прежнего значения кода языка
376. Как можно обратиться к менеджеру справочника «Номенклатура»?
• Спр = Справочники.Номенклатура
377. Как повлияет удаление элемента справочника, который уже используется в других объектах, а потом создать новый с такими же реквизитами, на поведение программы?
• У элемента будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
378. Какая коллекция из нижеперечисленных не относится к универсальным?
• Коллекция строк табличной части документа
379. Какая процедура выполняет обработку события ввода документа «на основании»?
• «ОбработкаЗаполнения» с формальным параметром «Основание» произвольного типа
380. Какие виды программных модулей существуют «1С:Предприятие 8»?
• Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, модуль команды, общие модули, модули менеджера, модули форм, модули объектов и модули набора записей
381. Какие разделы существуют в общем модуле?
• Только раздел процедур и функций
382. Какие утверждения относительно NULL справедливы?
• NULL — обозначает отсутствующее значение
• NULL — относится к примитивным типам данных
• NULL — это литерал
383. Какие функции отсутствуют во встроенном языке «1С:Предприятие8»:
• Функции работы со значениями типа Время
384. Каким образом можно сменить язык просмотра (редактирования) конфигурации?
• С помощью кнопки выбора языка, расположенной в строке состояния справа от кнопки «NUM»
• Через пункт меню «Конфигурация — Язык редактирования конфигурации»
385. Какого типа является свойство глобального контекста «Справочники»?
• СправочникиМенеджер
386. Какое высказывание о модуле приложения верно?
• Модуль приложения используется для обработки событий, связанных с началом и завершением работы системы
• Модуль приложения используется для объявления глобальных переменных
387. Какое значение будет стоять в полях записей результата запроса, для которых не найдено соответствия в другой таблице-источнике при внешнем соединении?
• NULL
388. Какое написание имеют операторы встроенного языка?
• Русское и английское написание
389. Какое написание имеют функции встроенного языка?
• Русское и английское написание
390. Какой должен быть порядок определения процедур и функций в программном модуле?
• Порядок следования процедур и функций не имеет значения
391. Какой литерал представляет значение типа «дата» по умолчанию (пустая дата)?
• 10101
• 10101000000
392. Какой метод документа обеспечивает вызов события отмены проведения документа?
• Записать(РежимЗаписиДокумента.ОтменаПроведения), где Записать — метод объекта документа
393. Какой метод документа обеспечивает вызов события проведения документа?
• Записать(РежимЗаписиДокумента.Проведение), где Записать — метод объекта документа
394. Какой режим используется для выполнения задач локализации (создания интерфейса на другом языке)?
• «Редактирование текстов интерфейса»
395. Ключ может быть произвольного типа.
• у соответствия
396. Механизмы интернационализации, заложены в.
• технологическую платформу 1С:Предприятия
397. Модуль приложения рекомендуется использовать.
• для определения предопределенных процедур «ПриНачалеРаботыСистемы» и т.п
398. Модуль сеанса (выберите наиболее полный правильный ответ):
• в кластере серверов 1С:Предприприятия 8 исполняется в привилегированном режиме
• исполнение происходит после начала исполнения модуля приложения (модуля внешнего соединения)
• не содержит экспортируемых процедур и функций
• предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы
399. На что влияют региональные установки информационной базы?
• На порядок сортировки строк в базе данных
• На формат отображения чисел и дат
400. Объект какого типа позволяет изменить элемент справочника в базе данных?
• СправочникОбъект
401. Объект МодельПрогноза создается:
• Из результата анализа данных
402. Пессимистическая блокировка объекта (метод Заблокировать()):
• блокировка объекта не мешает программно менять данные объекта
403. Пессимистическая блокировка объекта (метод Заблокировать()):
• не позволяет интерактивно (в основной форме объекта) менять данные объекта
404. Подписка на событие может быть определена:
• для разных объектов
405. При назначении обработчика события на объект (экземпляр объекта 1С:Предприятие, СОМ объект) процедура, отвечающая за отработку данного события должна быть расположена:
• выбор модуля не важен, в «пределах видимости»
406. При необходимости использования англоязычной транскрипции встроенного языка 1С:Предприятие 8 в уже существующей конфигурации можно:
• Использовать англоязычные варианты встроенных процедур/функций. операторных скобок и языковых конструкций
407. При определении на одно событие объекта 1С:Предприятие нескольких подписок на событие, порядок вызова обработчиков следующий:
• процедуры вызываются в произвольном порядке
408. При определении обработчика события на СОМ объект количество параметров в процедуре- обработчике:
• равно количеству параметров соответствующего события объекта
409. При определении обработчика события на экземпляр объекта 1С:Предприятие количество параметров в процедуре-обработчике:
• на один параметр больше, чем у соответствующего обработчика события, располагаемого в модуле объекта (первый параметр содержит сам объект)
410. При определении подписки на событие для разных объектов перечень показываемых событий формируется по принципу:
• должны выполняться оба вышеприведенных требования
411. При определении подписки на событие количество параметров в процедуре-обработчике:
• на один параметр больше, чем у соответствующего обработчика события, располагаемого в модуле объекта (первый параметр содержит сам объект)
412. При определении подписки на событие количество таких подписок:
• Любое количество, процедуры обработчики могут располагаться как в одном, так и в разных общих неглобальных модулях
413. При определении подписки на событие процедура — обработчик должна располагаться:
• в не глобальном общем модуле
414. При определении подписки на событие, в случае если в модуле объекта определен соответствующий обработчик этого же события:
• в начале отработает процедура, расположенная в модуле объекта, затем процедура, определенная по подписке
415. При проведении документа по какому-либо регистру в случае если у документа установлен автоматический режим управления транзакционными блокировками, а у регистра управляемый (в свойствах конфигурации используется вариант «Автоматический и управляемый»), то такое проведение приведет
• вся транзакция будет выполнена в автоматическом режиме
416. При проведении документа по какому-либо регистру в случае если у документа установлен автоматический режим управления транзакционными блокировками, а у регистра управляемый (в свойствах конфигурации используется вариант «Управляемый»), то такое проведение приведет:
• вся транзакция будет выполнена в управляемом режиме
417. При проведении документа по какому-либо регистру в случае если у документа установлен управляемый режим управления транзакционными блокировками, а у регистра автоматический (в свойствах конфигурации используется вариант «Автоматический и управляемый»), то такое проведение приведет
• к возникновению ошибочной ситуации
418. Процедура, используемая подпиской на событие, должна располагаться в модуле с установленными (взведенными) флажками:
• обязательно Клиент, Сервер и Внешнее соединение
419. Пусть Переменная1 имеет тип Дата (состав даты — «Дата») и значение, равное 1 марта 2005 года. Чему будет равно значение выражения «Переменная1+20»?
• 1 марта 2005 г 00 ч 00 мин 20 сек
420. С какого значения начинается индексирование элементов коллекций?
• 0 (с нуля)
421. С какой целью используется встроенный язык?
• Для описания (на стадии разработки конфигурации) алгоритмов функционирования прикладной задачи
422. С какой целью тексты конфигурации и базы данных хранятся в формате UNICODE?
• Формате UNICODE позволяет поддерживать различные языки в системе 1С:Предприятие
423. С помощью команды «ДобавитьОбработчик» можно назначить обработчик события на:
• СОМ объект
• экземпляр объекта 1С:Предприятие (назначать на события модуля объекта)
424. С помощью объекта какого типа можно перебирать элементы справочника?
• СправочникВыборка
425. Создание многоязыковых прикладных решений.
• возможно благодаря тому, что существует возможность создания нескольких языков в конфигурации и локализованных интерфейсов платформы
426. Существует ли в 1С:Предприятии 8 возможность настроить конкретное прикладное решение на использование региональных настроек чисел, дат и времени?
• Да, в региональных установках информационной базы можно настроить эти параметры
427. Тип анализа «Дерево решений» подразумевает:
• Построение иерархической структуры классифицирующих правил
428. Тип анализа «Кластерный анализ» подразумевает:
• Разделение исходного набора на группы объектов
429. Тип анализа «Поиск ассоциаций» подразумевает:
• Поиск часто встречаемых вместе групп объектов или значений характеристик
430. Тип анализа «Поиск последовательностей» подразумевает:
• Поиск цепочек событий
431. Типизация переменных во встроенном языке «1С:Предприятие
• не жесткая, т.к. неявным определением переменной является ее первое упоминание в левой части оператора присваивания
• не жесткая, т.к. тип переменной определяется ее значением
432. Только определения процедур и функций может содержать только следующий вид модуля:
• модуль сеанса
• общий модуль
433. У регистра сведений установлен режим записи «Независимый». Редактирование осуществляется в диалоге, ни одна из форм регистра не определена. При попытке интерактивного добавления в него «Записи» со значениями измерений, комбинация которых уже прописана в регистре:
• Возникает ошибочная ситуация
434. Что необходимо выполнить в процедуре «ОбработкаПроведения» в модуле документа для отмены проведения?
• Отказ = Истина
435. Что необходимо для того, чтобы написанная программистом процедура дополнила контекст документа (объекта типа ДокументОбъект)?
• Она должна быть определена в модуле документа
• Она должна быть определена с ключевым словом Экспорт
436. Что обозначает параметр Л(L) в форматной строке функции форматирования ЧислоПрописью()?
• Код локализации
437. Что произойдет, если удалить запись регистра сведений и создать новую с такими же полями (измерениями, ресурсами, реквизитами)?
• Ничего, на логику программы это никак не повлияет
438. Что такое «системные перечисления»?
• Перечень значений, заданный в платформе «1С:Предприятие 8.0»
439. Что такое код локализации?
• Строка, состоящая из кода языка и кода страны и идентифицирующая некоторый регион мира
440. Что такое локализация?
• Адаптация программы под конкретные национальные требования
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Вопрос 8 Какой должен быть порядок определения процедур и функций в программном модуле?
1. Описание функций должно идти выше описания процедур и раздела основной программы 2. Описание вызываемых процедур и функций должно идти выше вызывающих 3. Порядок следования процедур и функций не имеет значения 4. Порядок следования процедур и функций зависит от типа модуля Вопрос 9 Какое высказывание о модуле приложения верно? 1. Модуль приложения используется для обработки событий, связанных с началом и завершением работы системы 2. Модуль приложения используется для объявления глобальных переменных 3. Модуль приложения используется для объявления глобальных процедур и функций, доступных в любых других модулях 4. Верны все вышеперечисленные высказывания 5. Верны ответы 1 и 2 Вопрос 10 Только определения процедур и функций может содержать только следующий вид модуля: 1. модуль приложения 2. общий модуль 3. модуль сеанса 4. модуль объекта 5. верны ответы 2,3 6. верны ответы 2,4 Вопрос 11 Модуль сеанса (выберите наиболее полный правильный ответ): 1. предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы 2. не содержит экспортируемых процедур и функций 3. в кластере серверов 1С:Предприприятия 8 исполняется в привилегированном режиме 4. исполнение происходит после начала исполнения модуля приложения (модуля внешнего соединения) 5. верны ответы 1,3 6. верны ответы 1,2,3,4 Вопрос 12 Имя общего модуля может совпадать с именем свойства гло бального контекста (например «Отчеты»): 1. может в любом случае 2. может, но только если модуль глобальный 3. может, но только если модуль не глобальный Вопрос 13 Какие функции отсутствуют во встроенном языке «1С:Предприятие 8»: 1. Функции работы со значениями типа Дата 2. Функции работы со значениями типа Время 3. Функции работы со значениями типа Строка 4. Функции работы со значениями типа Число 5. Все вышеперечисленные функции имеются во встроенном языке Вопрос 14 Ключ может быть произвольного типа. 1. у структуры 2. у соответствия 3. у массива 4. ни у одного из вышеперечисленных Вопрос 15 Что произойдет, если удалить запись регистра сведений и создать новую с такими же полями (измерениями, ресурсами, реквизитами)? 1. Ничего, на логику программы это никак не повлияет 2. У этой записи будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы 3. Возникнет исключительная ситуация Вопрос 16 Как повлияет удаление элемента справочника, который уже используется в других объектах, а потом создать новый с такими же реквизитами, на поведение программы? 1. Ничего, на логику программы это никак не повлияет 2. У элемента будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы 3. Возникнет исключительная ситуация Вопрос 17 В каком свойстве хранится дата документа? 1. Дата 2. ДатаДок 3. ДатаДокумента 4. Нет правильного ответа Вопрос 18 С помощью объекта какого типа можно перебирать элементы справочника? 1. СправочникиМенеджер 2. СправочникМенеджер 3. СправочникВыборка 4. СправочникОбъект 5. СггравочникСписок Вопрос 19 Где располагаются процедуры-обработчики событий при кладных объектов, например, ПриЗаписи, ПередУдалением? 1. В модуле формы 2. В модуле объекта 3. В модуле приложения 4. Таких событий у прикладных объектов нет Вопрос 20 Что такое «системные перечисления»? 1. Перечень значений, заданный на этапе разработки конфигурации (ветвь Перечисления в дереве конфигурации) 2. Перечень значений, заданный в платформе «1С:Предприятие 8.0» 3. Конструкция встроенного языка, используемая разработчиком для объ-явления перечислимых типов данных 4. Системные перечисления отсутствуют в системе «1С:Предприятие 8.0» Вопрос 21 Какая коллекция из нижеперечисленных не относится к универсальным? 1. Массив 2. СписокЗначений 3. ДеревоЗначений 4. Коллекция строк табличной части документа 5. Верны ответы 3 и 4 Вопрос 22 Что необходимо для того, чтобы написанная программистом процедура дополнила контекст документа (объекта типа ДокументОбъект)? 1. Она должна быть определена в модуле документа 2. Она должна быть определена в общем модуле 3. Она должна быть определена с ключевым словом Экспорт 4. Одновременно должны выполняться условия 1 и 3 5. Одновременно должны выполняться условия 2 и 3 Вопрос 23 В каком свойстве хранится время документа? 1. Время 2. ВремяДок 3. Дата 4. Нет правильного ответа Вопрос 24 Для чего предназначен объект ДокументСписок? 1. Для перебора (выборки) документов средствами встроенного языка 2. Для управления списком документов, выводимых в табличное поле, т.е. для решения интерфейсных задач 3. Для операций над документами как объектами базы данных, создания и удаления документов 4. Верны ответы 1 и 2 Вопрос 25 С какого значения начинается индексирование элементов коллекций? 1. О (с нуля) 2. 1 (с единицы) 3. С начального индекса, заданного программистом при создании коллекции 4. Элементы коллекций не индексируются Вопрос 26 Объект какого типа позволяет изменить элемент справочника в базе данных? 1. СправочникМенеджер 2. СправочникОбъект 3. СправочникСсылка 4. Все перечисленные объекты 5. Верны ответы 1 и 2 Вопрос 27 Какие утверждения относительно NULL справедливы? 1. NULL — это литерал 2. NULL — относится к примитивным типам данных 3. NULL — обозначает отсутствующее значение 4. Верны все перечисленные ответы 5. Верны ответы 2 и 3 Вопрос 28 В выражении использована конструкция: ( Сумма 1. 1200 2. 1440 3.0.12 4. 2000 5. Данная конструкция использована некорректно Вопрос.29 Какого типа является свойство глобального контекста «Справочники»? 1. СправочникиМенеджер 2. СправочникМенеджер 3. СправочникОбъект 4. СправочникВыборка 5. СправочникСсылка Вопрос 30 Какой литерал представляет значение типа «дата» по умолчанию (пустая дата)? 1.01010001 2.01010001000000 3.00010101 4.00010101000000 5. Верны ответы 1 и 2 6. Верны ответы 3 и 4 Вопрос 31 Как можно обратиться к менеджеру справочника «Номенклатура»? 1. Спр = СоздатьОбъект(«Справочник.Номенклатура») 2. Спр = Справочники.Номенклатура 3. Спр = Новый Справочник.Номенклатура 4. Верны ответы 2 и 3 Вопрос 32 Где может размещаться процедура-обработчик события «Нажатие» кнопки диалога? 1. В модуле формы 2. В модуле объекта 3. В общем модуле 4. В модуле приложения 5. Возможно либо в модуле формы, либо в модуле объекта. Определяется разработчиком Вопрос.33 Что необходимо выполнить в процедуре «ОбработкаПроведения» в модуле документа для отмены проведения? 1. СтатусВозврата(О) 2. Отказ = Истина 3. Отказ = Ложь 4. Режим = Ложь 5. РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Вопрос.34 Пусть Переменная1 имеет тип Дата (состав даты — «Дата») и значение, равное 1 марта 2005 года. Чему будет равно значение выражения «Переменная1+20»? 1.21 марта 2005 г 00 ч 00 мин 00 сек 2. 1 марта 2005 г 00 ч 00 мин 20 сек 3. 1 марта 2005 г 20 ч 00 мин 00 сек 4. 21 марта 2005 г 00 ч 00 мин 20 сек 5. Возникнет ошибка преобразования типов
01.11.2018 228.86 Кб 3 история экономики.doc
17.04.2019 182.78 Кб 6 История. 25.doc
27.03.2015 70.71 Кб 7 история.docx
27.03.2015 90.21 Кб 3 ИсторияНапару.docx
27.03.2015 441.79 Кб 19 Истороия.pdf
27.03.2015 23.55 Mб 409 источник_Вопросы с ответами 2010_8.2.docx
27.03.2015 174.59 Кб 39 Источники гражданского права (1).doc
27.03.2015 67.85 Кб 102 источниковедение.docx
29.09.2019 42.84 Кб 5 ису — магазин горящих путевок.docx
14.08.2019 900.1 Кб 6 ИСЭ(ч.2).doc
24.11.2019 688.23 Кб 8 ИТ лекции.docx
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Описание процедур и функций
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Описание процедур и функций рекомендуется выполнять в виде комментария к ним. Необходимость комментирования отдельных участков кода процедур и функций должна определяться разработчиком исходя из сложности и нестандартности конкретного участка кода.
При разработке на платформе 1С:Предприятие 8.3 текст комментария также выводится в контекстной подсказке процедур, функций и их параметров. Подробнее см. раздел «Контекстная подсказка при вводе текстов модулей» главы 27 «Инструменты разработки» в документации к платформе.
При разработке в 1C:Enterprise Development Tools (EDT) текст комментария также используется для уточнения типизации параметров и возвращаемого значения процедур и функций, и тем самым помогает выявлять ошибки кодирования на этапе разработки.
3. Прочие процедуры и функции (в том числе обработчики событий модулей форм, объектов, наборов записей, менеджеров значений и т.п.) рекомендуется комментировать, если требуется пояснить назначение процедуры (функции) или особенности её работы. Также рекомендуется описывать причины невыполнения некоторых действий, если они кажутся неочевидными для данной процедуры или функции.
Но если процедура (функция) не сложна для понимания и ее назначение и порядок работы следуют из ее названия и имен формальных параметров, комментарий допускается не писать.
4. Следует избегать комментариев, не дающих дополнительных пояснений о работе не-экспортной процедуры (функции).
Например, неправильно:
В этих примерах комментарии избыточны, так как из названий процедур очевидно, что это обработчики событий. А с их описанием и назначением параметров можно ознакомиться в синтакс-помощнике.
Этот комментарий не дает никакой дополнительной информации о функции.
5. Комментарий размещается перед объявлением процедуры (функции) и имеет следующий вид.
5.1. Секция «Описание» (англ. «Description» ) содержит описание назначения процедуры (функции), достаточное для понимания сценариев ее использования без просмотра ее исходного кода. Также может содержать краткое описание принципов работы и перекрестные ссылки на связанные процедуры и функции.
Может быть единственной секцией для процедур без параметров. Описание не должно совпадать с именем процедуры (функции). Для процедур и функций секция должна начинаться с глагола. Для функций это, как правило: «Возвращает…». В тех случаях, когда возвращаемый результат является не основным в работе функции, – то с основного действия, например: «Проверяет…», «Сравнивает…», «Вычисляет…» и т.п. Не рекомендуется начинать описание с избыточных слов «Процедура. », «Функция. », а также с имени самой процедуры (функции), от удаления которых смысл не меняется.
5.2. Секция «Параметры» (англ. «Parameters» ) описывает параметры процедуры (функции). Если их нет, секция пропускается. Предваряется строкой «Параметры:», затем с новой строки размещаются описания всех параметров.
5.2.1. Описание параметра начинается с новой строки, далее имя параметра, затем дефис и список типов (*), далее дефис и текстовое описание параметра.
Имя параметра необходимо стремиться выбирать таким образом, чтобы его назначение было понятно в контексте функции без дополнительных пояснений
Текстовое описание параметра рекомендуется заполнять в том случае, когда только имени параметра в контексте функции не достаточно для понимания его назначения, либо требуется дать дополнительную информацию о типе, поясняющие назначение параметра, а также может приводиться наглядный пример с ожидаемым значением параметра.
В данном примере текстовое описание для параметра «Адреса» нужно чтобы
Текстовое описание для параметра ЗадачаИсполнителя не нужно.
5.2.2. Для параметров типа Структура и ТаблицаЗначений также задается описание их свойств и колонок, которые начинаются с новой строки и предваряются символом *.
Например:
При этом текстовое описание свойства (колонки) рекомендуется заполнять в том случае, когда только имени свойства в контексте параметра не достаточно для понимания назначения свойства или требуется дать дополнительную информацию о типе.
5.2.3. Для параметров типа Массив следует указывать тип элементов с помощью ключевого слова «из» (англ. «of» ):
В описании массивов, структур и таблиц значений могут быть вложенные описания, при этом перед именами вложенных свойств число звездочек увеличивается: для первого уровня вложенности 2 звездочки, для второго 3 и т.д.
5.2.4. Также для параметра типа СтрокаТаблицыЗначений ( СтрокаДереваЗначений ) возможно задать состав свойств, соответствующий колонкам его таблицы-владельца (дерева-владельца):
Например:
// СведенияОРегионе – СтрокаТаблицыЗначений: см. РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ
5.2.5. Также для каждого параметра можно задать одно или несколько дополнительных описаний типов параметра. Каждое дополнительное описание начинается с новой строки, затем обязательный дефис, далее список типов параметра далее дефис и текстовое описание.
Например:
5.2.6. Описание также могут быть заданы с помощью ссылки на функцию-конструктор в формате «см. ПутьКФункции» (англ «see MethodPath» ).
Например:
При разработке кода, обращающегося к реквизитам конкретного объекта метаданных или формы, можно ссылаться на типы реквизитов этого объекта (формы):
Также в редких случаях, когда подходящей функции-конструктора не существует и ее невозможно создать, допустимо указывать ссылку на другую процедуру (при полном совпадении параметров) или на параметр другой процедуры или функции, например:
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту
//
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
5.3. Секция «Возвращаемое значение» (англ. «Returns» ) описывает тип и содержание возвращаемого значения функции. Для процедур эта секция отсутствует. Предваряется строкой «Возвращаемое значение:». Затем с новой строки тип возвращаемого значения, дефис и текст описания. При использовании возвращаемого значения составного типа следует каждый тип писать с новой строки и с дефиса. Например:
Текстовое описание возвращаемого значения рекомендуется заполнять в том случае, когда только одного описания функции не достаточно, либо требуется дать дополнительную информацию о типе, например, о составе свойств или колонок возвращаемого значения. Также может быть приведен пример с ожидаемым значением возвращаемого значения, либо сквозной пример размещается в секции «Пример» ниже.
Для возвращаемых значений также действуют требования п.5.2.2 и 5.2.3.
5.4. Секция «Пример» (англ. «Example» ) содержит пример использования процедуры, или функции. Предваряется строкой «Пример:». Далее с новой строки пример использования. Имя процедуры (функции) следует писать вместе с именем общего модуля, в котором она расположена. Из примера должно быть понятно, что передается на входе и что возвращается на выходе.
Например, неправильно:
5.4.1. В переопределяемых модулях в секции «Пример» следует размещать пример реализации переопределяемой процедуры, а не пример ее вызова. Например, для процедуры ПриОпределенииОбщихПараметровБазовойФункциональности(ОбщиеПараметры):
5.5. В редких случаях, когда сразу несколько параметров имеют дополнительные типы, рекомендуется добавить секцию «Варианты вызова» (англ. «Сall options» ), в которой дать описания наиболее частых или всех возможных вариантов вызова функции с различными комбинациями типов параметров. Секция начинается фразой «Варианты вызова:» с новой строки, затем идут описания вариантов, каждое начинается с новой строки. Каждый вариант вызова представляется в виде имени функции со списком типов, перечисленных через запятую в круглых скобках, затем следует дефис и текстовое описание варианта.
5.6. В любом месте документирующего комментария можно добавить переход к другим объектам конфигурации, процедурам и функциям (в частности, для перехода к функциям-конструкторам структур). При использовании 1C:Enterprise Development Tools среда оформит такие переходы в виде гиперссылки.
Например:
5.7. В случаях когда возникает необходимость отметить процедуру (функцию) как устаревшую, в первой строке ее описания размещается слово «Устарела» (англ. «Deprecated» )..
Например:
7. Код процедур и функций должен отделяться друг от друга в тексте модуля пустыми строками.
Примеры описания процедур и функций
Пример описания функции с одним параметром:
Пример описания процедуры без параметров:
Структура модуля
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1.1. В программном модуле (общие модули, модули объектов, модули менеджеров объектов, модули форм, команд и т.п.) в общем случае могут присутствовать следующие разделы в приведенной ниже последовательности:
Некоторые разделы могут присутствовать только в модулях определенного вида. Например, обработчики событий элементов форм могут присутствовать только в модулях форм, а раздел описания переменных и раздел инициализации не могут быть определены в неглобальных общих модулях, модулях менеджеров объектов, наборов записей, значений констант и модуле сеанса.
Требование о разделении кода модуля на разделы призвано повысить читаемость кода и упростить внесение изменений в код разными авторами (разработчиками) как при коллективной разработке, так и при доработке прикладных решений на конкретных внедрениях.
1.2. Объемные разделы модулей рекомендуется разбивать на подразделы по функциональному признаку.
1.3. Разделы и подразделы оформляются в виде областей. При этом имена областей должны удовлетворять требованиям стандарта Правила образования имен переменных
1.4. Шаблон (заготовка для копирования) разделов для общих модулей:
1.5. Шаблон оформления разделов для модулей объектов, менеджеров, наборов записей, обработок, отчетов и т.п.:
1.6. Шаблон оформления разделов для модулей форм:
1.7. Шаблон оформления разделов для модулей команд:
1.8. В модуле не должно быть пустых областей.
2. Общие требования к разделам программных модулей.
2.1. Заголовок модуля представляет собой комментарий в самом начале модуля. В заголовке модуля приводится его краткое описание и условия применения.
Например:
Для модулей форм в заголовке рекомендуется размещать описание параметров формы.
Все переменные модуля должны быть снабжены комментарием, достаточным для понимания их назначения. Комментарий рекомендуется размещать в той же строке, где объявляется переменная.
Пример:
Методическая рекомендация (полезный совет)
2.4.2. Рекомендуется обработчики одного элемента формы располагать вместе, придерживаясь, при этом, порядка их следования в панели свойств редактора формы в конфигураторе.
2.4.3. У каждого события должна быть назначена своя процедура-обработчик. Если одинаковые действия должны выполняться при возникновении событий в разных элементах формы следует:
Методическая рекомендация (полезный совет)
2.5.1. Рекомендуется располагать обработчики, придерживаясь порядка их следования в описании встроенного языка.
В тех случаях когда общий модуль является частью некоторой функциональной подсистемы, включающей в себя несколько объектов метаданных, в этом разделе также могут быть размещены служебные экспортные процедуры и функции, предназначенные только для вызова из других объектов данной подсистемы.
Процедуры и функции, связанные между собой по характеру или по логике работы рекомендуется располагать вместе. В модулях форм не рекомендуется явно группировать процедуры и функции модуля на серверные, клиентские и функции без контекста, так как такое «технологическое» упорядочивание затрудняет понимание логики модуля, отвлекая внимание разработчика на детали ее реализации.
2.7. Раздел инициализации содержит операторы, инициализирующие переменные модуля или объект (форму).
Например:
Для оформления разделов кода в виде областей рекомендуется воспользоваться приложенной обработкой.
Комплект вопросов сертификационного экзамена на знание основных механизмов платформы «1С: Предприятие 8» (стр. 15 )
| Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |

5.67 Если конфигурация уже запущена в режиме «1С:Предприятие», для ее отладки.
5.68 В конфигурацию внесены изменения. Можно ли для контроля их работоспособности запустить программу в режиме отладки при наличии подключенных к базе данных пользовательских сеансов?
1. Нельзя, так как при этом придется выполнить обновление конфигурации базы данных
3. Можно, если не выполнять обновление конфигурации базы данных
4. Можно, если изменения не связаны с изменением структуры таблиц информационной базы
5.69 Хранилище конфигурации.
1. является основным элементом механизма групповой разработки и обеспечиваем синхронизацию работ нескольких разработчиков
2. используется для разделения доступа к объектам конфигурации
3. место, в которое средствами конфигуратора помещается конфигурация
4. верны ответы 1 и 3
5. все варианты верны
6. нет правильного ответа
5.70 Можно ли управлять включением/отключением точек останова?
1. Нет, можно только управлять установкой/удалением точек останова
4. Да, программно, посредством объекта «Метаданные»
6. Объектная модель прикладного решения
6.1 Какие виды программных модулей существуют в «1С:Предприятие 8»?
1. Общие модули, модуль сеанса, модули форм
2. Модуль обычного приложения, модуль управляемого приложения, общие модули, модуль сеанса, модули объектов, модули форм
3. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули и модули форм
4. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм и модули макетов
5. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, модуль команды, общие модули, модули менеджера, модули форм, модули объектов и модули набора записей
6. Модуль приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм, модули макетов, модули объектов и модули набора записей
6.2 Какие разделы существуют в общем модуле?
1. Раздел объявления переменных, раздел процедур и функций, раздел основной программы
2. Только раздел процедур и функций
3. Только раздел основной программы
4. Только раздел объявления переменных и раздел описания процедур и функций
6.3 В каком случае рекомендуется использовать общий модуль для описания только экспортных функций?
1. Для общих раздел объявления переменных, раздел процедур и функций, раздел основной программы
2. Только раздел процедур и функций
3. Только раздел основной программы
4. Только раздел объявления переменных и раздел описания процедур и функций
6.4 Модуль приложения рекомендуется использовать.
1. для определения предопределенных процедур «При11ачалеРаботыСисте-мы» и т. п.
2. как место определения процедур и функций, используемых во всей конфигурации
3. как место определения предопределенных процедур, которые инициализируются при старте и окончании работы системы в режиме внешнего соединения
4. верны ответы 1 и 2
6.5 В общих модулях.
1. нет ограничений на описание переменных, процедур, функций
2. нельзя описывать переменные
3. нельзя описывать переменные, процедуры и функции без ключевого слова «Экспорт»
6.6 Типизация переменных во встроенном языке «1С:Предприятие 8».
1. не жесткая, т. к. тип переменной определяется ее значением
2. не жесткая, т. к. неявным определением переменной является ее первое упоминание в левой части оператора присваивания
3. жесткая, т. к. обязательным является объявление переменной в явном виде
4. жесткая, т. к. неявным определением переменной является ее первое упоминание в левой части оператора присваивания
5. верны утверждения 1 и 2
6. верны утверждения 3 и 4
6.7 В модуле приложения.
1. нет ограничений на описание переменных, процедур, функций
2. нельзя описывать переменные
3. нельзя описывать процедуры и функции без ключевого слова «Экспорт»
6.8 Какой должен быть порядок определения процедур и функций в программном модуле?
1. Описание функций должно идти выше описания процедур и раздела основной программы
2. Описание вызываемых процедур и функций должно идти выше вызывающих
3. Порядок следования процедур и функций не имеет значения
4. Порядок следования процедур и функций зависит от типа модуля
6.9 Какое высказывание о модуле приложения верно?
1. Модуль приложения используется для обработки событий, связанных с началом и завершением работы системы
2. Модуль приложения используется для объявления глобальных переменных
3. Модуль приложения используется для объявления глобальных процедур и функций, доступных в любых других модулях
4. Верны все вышеперечисленные высказывания
5. Верны ответы 1 и 2
6.10 Только определения процедур и функций может содержать только следующий вид модуля:
1. модуль приложения
6.11 Модуль сеанса (выберите наиболее полный правильный ответ):
1. предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы
2. не содержит экспортируемых процедур и функций
3. в кластере серверов 1С:Предприприятия 8 исполняется в привилегированном режиме
4. исполнение происходит после начала исполнения модуля приложения (модуля внешнего соединения)
6.12 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):
1. может в любом случае
2. может, но только если модуль глобальный
3. может, но только если модуль пе глобальный
6.13 Какие функции отсутствуют во встроенном языке «1С:Предприятие 8»:
1. Функции работы со значениями типа Дата
2. Функции работы со значениями типа Время
3. Функции работы со значениями типа Строка
4. Функции работы со значениями типа Число
5. Все вышеперечисленные функции имеются во встроенном языке
6.14 Ключ может быть произвольного типа.
4. ни у одного из вышеперечисленных
6.15 Что произойдет, если удалить запись регистра сведений и создать новую с такими же полями (измерениями, ресурсами, реквизитами)?
1. Ничего, на логику программы это никак не повлияет
2. У этой записи будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
3. Возникнет исключительная ситуация
6.16 Как повлияет удаление элемента справочника, который уже используется в других объектах, а потом создать новый с такими же реквизитами, на поведение программы?
1. Ничего, на логику программы это никак не повлияет
2. У элемента будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
3. Возникнет исключительная ситуация
6.17 В каком свойстве хранится дата документа?
4. Нет правильного ответа
6.18 С помощью объекта какого типа можно перебирать элементы справочника?
6.19 Где располагаются процедуры-обработчики событий прикладных объектов, например, ПриЗаписи, ПередУдалением?
3. В модуле приложения
4. Таких событий у прикладных объектов нет
6.20 Что такое «системные перечисления»?
1. Перечень значений, заданный на этапе разработки конфигурации (ветвь Перечисления в дереве конфигурации)
2. Перечень значений, заданный в платформе » 1 С:Предириятие 8.0″
3. Конструкция встроенного языка, используемая разработчиком для объявления перечислимых типов данных
4. Системные перечисления отсутствуют в системе «1С:Предприятие 8.0»
6.21 Какая коллекция из нижеперечисленных не относится к универсальным?
Процедуры и функции (бесплатная статья по Программированию 1С)
из цикла статей «Первые шаги в разработке на 1С»
О чем эта статья
Эта статья продолжает цикл статей «Первые шаги в разработке на 1С». В ней будут рассмотрены следующие вопросы:
Применимость
Материал полностью актуален для платформы «1С:Предприятие 8» редакций 8.2. и 8.3.
Процедуры и функции
В отдельные процедуры и функции можно выносить общие алгоритмы. Одинаковый программный код из разных модулей (какой-то общий алгоритм) разумно выносить в процедуру или функцию какого-нибудь модуля и обращаться к ней.
При этом мы избавляемся от дублирования кода, заменив его вызовом процедуры (функции). Если возникает потребность внести изменения в алгоритм, то эти изменения будет достаточно внести в одном месте.
Кроме того, процедуры и функции повышают читаемость программного кода. Гораздо проще просмотреть, что выполняет данный код, особенно, если вызовы процедур имеют осмысленные названия.
В итоге облегчается сопровождение прикладного решения.
Следует отметить, что начинающие разработчики иногда для названия процедуры или функции пытаются использовать зарезервированное слово Выполнить.
Зарезервированные слова использовать для этих целей нельзя, и, естественно, в этом случае система будет сообщать об ошибке.
Функция, в отличии от процедуры, может иметь возвращаемое значение. В теле функции для того, чтобы вернуть значение, нужно использовать оператор Возврат и указать то значение, которое будет возвращаться.
Процедура, в отличии от функции, не может иметь возвращаемое значение. Она просто вызывается и выполняет какие-то действия.
Если функция не будет иметь ключевого слова Возврат, то она вернет несуществующее значение, т.е. значение типа данных Неопределено. Вместе с тем, ключевое слово Возврат можно использовать и в процедуре, но в этом случае возвращаемое значение не указывается, а само ключевое слово будет означать: прекратить выполнение процедуры.
Процедура или функция начинает описываться со слова Процедура (Функция). Далее следует Имя процедуры (функции). После имени обязательно указываются круглые скобки. Внутри скобок могут находиться описываемые параметры.
Данные параметры нужно будет передавать при вызове (при обращении к процедуре). После круглых скобок может стоять слово Экспорт (экспортная функция).
Потом следует тело процедуры (функции), т.е. последовательность из любого количества операторов.
В теле могут находиться вызовы других процедур и функций данного модуля или других модулей, которые доступны из текущего программного модуля. Обязательным является наличие заключительного слова КонецПроцедуры (КонецФункции).
После описания процедуры или функции точку с запятой ставить не нужно. При этом Платформа не считает ошибкой, если точка с запятой стоит после последней процедуры (функции) в модуле.
Однако со временем эта процедура (функция) в результате действий программиста может стать не последней, и тогда будет выдаваться сообщение об ошибке. Примерный вид процедуры и функции представлен на рисунке.

Параметры, переданные в процедуру (функцию) при ее вызове, могут быть использованы при формировании возвращаемого результата функцией или при выборе используемого алгоритма в процедуре.
При описании процедуры или функции мы можем указать, что для какого-либо параметра по умолчанию должно использоваться некоторое значение. Для этого справа от параметра через знак равенства указывается требуемое значение.
В том случае, если при вызове процедуры (функции) значение параметра будет не задано, то оно примет значение, используемое по умолчанию.
Таким образом, параметры, для которых указано значение по умолчанию, являются необязательными для указания при вызове. В описании процедуры(функции) вначале следуют обязательные параметры, а потом необязательные.
Кроме этого, существует передача параметров по ссылке и по значению. Внутри процедуры (функции) параметр может анализироваться, а также может изменяться. Все данные хранятся в оперативной памяти компьютера.
При передаче по ссылке система сообщает, что нужно обратиться к переменной, которая хранится в данной области памяти. В том случае, если значение параметра изменяется, оно меняется именно в указанной области памяти.
Т.е. при вызове процедуры (функции) мы передавали параметр с одним значением, а после отработки вызываемой процедуры (функции) значение параметра изменилось.
В случае передачи по значению указывается, что параметр нужно передавать по значению.
В этом случае вызывается новая область памяти, отличная от предыдущей, и меняется именно она. Исходное значение параметра не меняется.
По умолчанию все параметры передаются по ссылке. Чтобы передать параметр по значению, в описании процедуры перед параметром нужно поставить ключевое слово Знач.
Следует сказать, что в некоторые процедуры-обработчики передается такой параметр, как Отказ. Значение данного параметра по умолчанию – Ложь.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то процедура не отработает.
Порядок следования процедур и функций в модуле 1С:Предприятие 8 значения не имеет. Из любой процедуры (функции) модуля можно вызывать любую другую процедуру или функцию данного модуля.
Чтобы обратиться к списку процедур текущего модуля в панели конфигуратора можно нажать на кнопку в виде лупы с надписью «PROC» или использовать горячие клавиши (Ctrl+Alt+P).
Откроется диалоговое окно, в котором описаны функции F(x) и процедуры P( ). К ним возможно обращаться.
Список может быть отсортирован в алфавитном порядке (для этого устанавливается галочка «Сортировка»).
При снятой галочке процедуры и функции в списке размещены в соответствии с их следованием в модуле.

Кроме процедур и функций в списке для разных модулей будут доступны разные стандартные обработчики. При выборе обработчика двойным кликом мыши в модуле создается шаблон соответствующей процедуры (обработчика события).
Если в диалоговом окне «Процедуры и функции» выбрать процедуру и нажать на кнопку Перейти, то мы окажемся в начале выбранной процедуры (функции).
Справа от кнопки с надписью «PROC» располагается поле. В этом поле указано имя текущей процедуры (функции).
Первичное знакомство с процедурами и функциями будем считать завершенным. Однако отметим, что платформа содержит множество стандартных процедур и функций, логику которых вам не нужно писать самостоятельно. Достаточно только в случае необходимости вызвать их в нужном месте вашего программного кода. Изучением этих стандартных функций мы и займемся в нашей следующей статье

PDF-версия статьи
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

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