Мегаобучалка Главная | О нас | Обратная связь


Описания элементов языка



2019-07-03 297 Обсуждений (0)
Описания элементов языка 0.00 из 5.00 0 оценок




 

В программах 1С: Предприятие существующие элементы (конструкции) языка можно разделить на:

- Структурные конструкции

- Системные конструкции

- Управляющие операторы

- Выражения и операторы присваивания

- Системные константы

- Системные процедуры и функции

- Системные предопределенные процедуры

Мы рассмотрим «структурные конструкции и управляющие операторы»

- Структурные конструкции

- Процедура

- Секция описания процедуры.

Синтаксис:

Процедура <Имя_проц>([[Знач] <Парам1>[=<ДефЗнач>],

... , [Знач] <ПapaмN>[=<ДeфЗнaч>]]) [Экспорт]

//Объявления локальных переменных;

//Операторы;

...

[Возврат;]

//Операторы;

...

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

Параметры:

 

<Имя_проц> Назначает имя процедуры.
Знач Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т. е. изменение значения формального параметра при выполнении процедуры никак не повлияет на фактический параметр, переданный при вызове процедуры. Если это ключевое слово не указано, то параметр процедуры передается по ссылке, то есть изменение внутри процедуры значения формального параметра приведет к изменению значения соответствующего фактического параметра.
<Парам1>, ..., <ПарамN> Необязательный список формальных параметров, разделяемых запятыми. Значения формальных параметров должны соответствовать значениям передаваемых при вызове процедуры фактических параметров. В этом списке определяются имена каждого из параметров так, как они используются в тексте процедуры. Список формальных параметров может быть пуст. См. также: «Передача параметров».
=<ДефЗнач> Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров. Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа). Если параметру не задано значение по умолчанию, и он является последним в списке передаваемых параметров, то при вызове процедуры его нельзя опускать. Если параметру задано значение по умолчанию, и он является последним в списке, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром. Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.
Экспорт Необязательное ключевое слово, которое указывает на то, что данная процедура является доступной из других программных модулей. Имеет смысл только в глобальном программном модуле.
//Объявления локальных переменных Объявляются локальные переменные, на которые можно ссылаться только в рамках этой процедуры (см. оператор Перем).
//Операторы Исполняемые операторы процедуры.
Возврат Необязательное ключевое слово, которое завершает выполнение процедуры и осуществляет возврат в точку программы, из которой было обращение к процедуре. Использование данного оператора в процедуре не обязательно.
КонецПроцедуры Обязательное ключевое слово, обозначающее конец исходного текста процедуры, завершение выполнения процедуры. Возврат в точку, из которой было обращение к процедуре.

 

Описание:

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

Функция

Секция описания функции.

Синтаксис:

Функция<Имя_функции>([[Знач]<Парам1>[=<ДефЗнач>], ...

,[Знач]<ПарамN>[=<ДефЗнач>]])[Экспорт]

//Объявлениялокальных переменных;

//Операторы;

...

Возврат<ВозвращаемоеЗначение>;

//Операторы;

...

КонецФункции

Параметры:

 

<Имя_функции> Назначает имя функции.
Знач Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т.е. изменение значения формального параметра при выполнении функции никак не повлияет на значение фактического параметра, переданного при вызове функции. Если это ключевое слово не указано, то параметр функции передается по ссылке, то есть изменение внутри функции значения формального параметра приведет к изменению значения соответствующего фактического параметра.
<Парам1>,...,<ПарамN> Необязательный список формальных параметров, разделяемых запятыми. Значения формальных параметров должны соответствовать значениям передаваемых при вызове функции фактических параметров. В этом списке определяются имена каждого из параметров так, как они используются в тексте функции. Список формальных параметров может быть пуст.
=<ДефЗнач> Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров. Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое»значение (значение неопределенного типа). Если параметру не задано значение по умолчанию, и он является последним в списке передаваемых параметров, то при вызове процедуры его нельзя опускать. Если параметру задано значение по умолчанию, и он является последним в списке, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром. Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.
Экспорт Необязательное ключевое слово, которое указывает на то, что данная функция является доступной из других программных модулей. Данное ключевое слово имеет смысл использовать только в глобальном программном модуле.
//Объявлениялокальных переменных Объявляются локальные переменные, на которые можно ссылаться только в рамках этой функции.
//Операторы Исполняемые операторы функции.
Возврат Ключевое слово, которое завершает выполнение функции и возвращает Возвращаемое Значение в выражение, в котором используется функция. Использование данного ключевого слова в функции обязательно.
<ВозвращаемоеЗначение> Выражение, значение которого содержит результат обращения к функции.
КонецФункции Обязательное ключевое слово, обозначающее конец исходного текста функции.

 

Описание

Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля, просто указав Имя_функции со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в глобальном программном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех других программных модулей конфигурации. Ключевое слово Экспорт имеет смысл использовать только в глобальном программном модуле.

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

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

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

Управляющие операторы

Если

Оператор условного выполнения.

Синтаксис:

Если <Логическое_выражение> Тогда

//операторы;

[ИначеЕсли <Логическое_выражение> Тогда]

//операторы;

[Иначе]

//операторы;

КонецЕсли;

 

<Логическое_выражение> Логическое выражение.
Тогда Операторы следующие за Тогда выполняются, если результатом логического выражения в конструкции Если является истина.
//операторы Исполняемый оператор или последовательность таких операторов.
ИначеЕсли Логическое выражение, следующее за ключевым словом ИначеЕсли вычисляется только тогда, когда условия в Если и всех предшествующих ИначеЕсли оказались ложными. Операторы следующие за конструкцией ИначеЕсли — Тогда выполняются, если результатом логического выражения в данном ИначеЕсли является истина.
Иначе Операторы, следующие за ключевым словом Иначе выполняются, если результаты логических выражений в конструкции Если и всех предшествующих конструкциях ИначеЕсли оказались ложными.
КонецЕсли Ключевое слово, которое завершает структуру оператора условного выполнения.

 

Описание:

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

ИначеЕсли — Тогда.

Пока

Оператор выполнения цикла.

Синтаксис:

Пока <Логическое_выражение> Цикл

//операторы;

КонецЦикла;

Параметры:

 

<Логическое_выражение> Логическое выражение.
Цикл Операторы, следующие за ключевым словом Цикл, выполняются, пока результатом логического выражения является истина.
//операторы; Исполняемый оператор или последовательность таких операторов.
КонецЦикла Ключевое слово, которое завершает структуру оператора цикла.

 

Описание:

Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Цикл выполняется пока логическое выражение — истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Для

Оператор выполнения цикла.

Синтаксис:

Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл

//Операторы;

КонецЦикла;

Параметры:


 

<Имя_переменной> Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла.
<Выражение 1> Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.
По Синтаксическая связка для параметра <Выражение2>.
<Выражение 2> Максимальное значение счетчика цикла. Когда переменная Имя_переменной становится больше чем <Выражение2>, выполнение оператора цикла Для прекращается. Величина приращения счетчика при каждом выполнении цикла равна 1.
Цикл Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной меньше значения <Выражение2>.
//Операторы Исполняемый оператор или последовательность таких операторов.
КонецЦикла Ключевое слово, которое завершает структуру оператора цикла.

Описание

Оператор цикла Для предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Перед началом выполнения цикла значение <Выражение1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Попытка

Обработка исключительных ситуаций.

Синтаксис:

Попытка

// Некоторые действия;

Исключение

// Обработка исключительной ситуации;

КонецПопытки;

Параметры:

// Некоторые действия Исполняемый оператор или последовательность таких операторов.
// Обработка исключительной ситуации Исполняемый оператор или последовательность операторов, которые обрабатывают исключительную ситуацию.
Исключение Операторы, следующие за ключевым словом Исключение выполняются, если при выполнении последовательности операторов <// Некоторые действия> произошла ошибка времени выполнения.
Конец Попытки Ключевое слово, которое завершает структуру оператора обработки исключительных ситуаций.

 

Описание

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

В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.

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

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

В выдаче диагностики помощь может оказать встроенная функция Описание Ошибки () (англоязычный синоним Get Error Description). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов <// Обработка исключительной ситуации>, так как в ином случае она вернет пустую строку.

Перейти

Безусловная передача управления на другой оператор программы.

Синтаксис:

Перейти <Метка>;

Параметры:


 

<Метка> Метка другого исполняемого оператора в программе.

 

 

Описание:

Безусловная передача управления на другой оператор программы. Оператор Перейти передает управление от одного оператора к другому. <Метка> в этом операторе не должна быть меткой перехода на оператор Процедура или Функция.

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

Оператор безусловного перехода не может быть использован для передачи управления на операторы, находящиеся внутри конструкций: Пока ... Конец Цикла, Для ... Конец Цикла, Если ... Иначе Если ... Иначе ... Конец Если, Попытка ... Исключение ... Конец Попытки извне этих конструкций.

Продолжить

Передача управления в начало цикла.

Описание:

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

Прервать

Прерывает выполнение цикла.

Синтаксис:

Прервать

Описание:

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

Возврат

Завершение процедуры или функции.

Синтаксис:

Возврат [<Выражение>]

Параметры:

 

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

 

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

Символы

 

Символ Значение
[ ] В квадратных скобках заключаются необязательные синтаксические элементы.
( ) Круглые скобки заключают в себе список параметров.
| Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один.

 


Специальные символы, используемые в исходном тексте

// Двумя знаками «косая черта» начинается комментарий. Комментарием считается весь текст от знака "//" до конца текущей строки.
| Вертикальная черта в начале строки используется только в строковых константах и означает, что данная строка является продолжением предыдущей (перенос строки), (см. «Строковые константы»).
~ Знаком тильда начинается метка оператора.
: Двоеточием заканчивается метка оператора.
; Точка с запятой является символом разделения операторов.
( ) В круглые скобки заключается список параметров методов, процедур и функций.
[ ] В квадратные скобки заключается размерность массивов.
, Запятая разделяет параметры в списке параметров методов, процедур и функций.
" " В двойные кавычки заключаются строковые константы.
' ' В одинарные кавычки заключаются константы даты.
. Десятичная точка в числовых константах. Разделитель, используемый в описаниях агрегатных типов данных.
+ Символ «плюс» обозначает операцию сложения.
- Символ «минус» обозначает операцию вычитания.
* Символ «звездочка» обозначает операцию умножения.
/ Символ «косая черта» обозначает операцию деления.
> Правая угловая скобка обозначает логическую операцию «больше».
>= Логическая операция «больше или равно».
< Левая угловая скобка обозначает логическую операцию «меньше».
<= Логическая операция «меньше или равно».
= Знак равенства обозначает присвоение или логическую операцию «равно».
<> Две угловые скобки обозначают логическую операцию «не равно».

 

Пример

Рассмотрим часть модуля документа «Счет» в программе «1С: Бухгалтерия»

 


Процедура «Печать» - создание печатной формы документа.

 

Процедура Печать()

    Таб = Создать Объект ("Таблица");

    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbs.mxl";

    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда

              Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);

    Иначе

              Таб.ИсходнаяТаблица("Таблица");

    КонецЕсли;

    Таб.ВывестиСекцию("Шапка");

 

    ВыбратьСтроки();

    Ном = 0;

    Пока ПолучитьСтроку()=1 Цикл

              Ном = Ном + 1;

    Таб.ВывестиСекцию("Строка");

    КонецЦикла;

 

    Таб.ВывестиСекцию("Итого");

    Таб.ВывестиСекцию("НДС");

    Если УчитыватьНП = 1 Тогда

              Таб.ВывестиСекцию("НП");

    КонецЕсли;

    Таб.ВывестиСекцию("Подвал");

 

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

Процедура «Ввод на основании» - документ будет выводиться на основании другого документа.

Процедура ВводНаОсновании(ДокОсн) //предопределенная

    Новый = 1;

    Если ДокОсн.Вид() = "РасходнаяНакладная" Тогда

              РасчетныйСчет = ДокОсн.РасчетныйСчет;

              Контрагент = ДокОсн.Контрагент;

              Договор = ДокОсн.Договор;

              Плательщик = ДокОсн.Контрагент;

              ВариантРасчетаНалогов = ДокОсн.ВариантРасчетаНалогов;

              ДокОсн.ВыбратьСтроки();

              Пока ДокОсн.ПолучитьСтроку() = 1 Цикл

                       НоваяСтрока();

                       Товар = ДокОсн.Товар;

                       Количество = ДокОсн.Количество;

                       Цена = ДокОсн.Цена;

                       Сумма = ДокОсн.Сумма;

                       НДС = ДокОсн.НДС;

                       НП = ДокОсн.НП;

                       Всего = ДокОсн.Всего;

              КонецЦикла;

    КонецЕсли;

    КонецПроцедуры //ВводНаОсновании

 

Средства администрирования

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


Аутентификация

 

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

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

аутентификация средствами 1С:Предприятия;

аутентификация средствами Windows.

25.1 Аутентификация средствами 1С:Предприятия

 

 

Для выполнения аутентификации средствами 1С:Предприятия пользователь, при начале работы с прикладным решением, должен выбрать (или ввести) имя пользователя и соответствующий этому имени пароль:

 

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

 

 

25.2 Аутентификация средствами Windows

 

 

При выполнении аутентификации средствами Windows, от пользователя не требуется каких-либо действий по вводу логина и пароля. Система анализирует, от имени какого Windows-пользователя выполняется подключение к прикладному решению, и на основании этого определяет соответствующего пользователя 1С:Предприятия. При этом диалог аутентификации 1С:Предприятия не отображается, если не указан специальный параметр командной строки. Аутентификацию средствами Windows имеет смысл использовать для NT-подобных операционных систем, например NT, 2000, XP.

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

25.3 Список пользователей

 

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

 

 

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

 

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

 


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

25.4 Активные пользователи

 

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

 

 

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


25.5 Журнал регистрации

 

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

 

 

Журнал регистрации доступен как в режиме 1С:Предприятие, так и в режиме Конфигуратор.

В режиме 1С: Предприятие по щелчку мыши в полях Данные и Представление данных можно перейти к тому объекту прикладного решения, который указан в записи журнала регистрации.

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

 

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

Существует возможность настройки уровня событий, отображаемых в журнале регистрации:

 

 

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

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

 

 

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




2019-07-03 297 Обсуждений (0)
Описания элементов языка 0.00 из 5.00 0 оценок









Обсуждение в статье: Описания элементов языка

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (297)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.012 сек.)