Разделы презентаций


ИС и технологии на предприятии. Язык 1С

Содержание

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

Слайды и текст этой презентации

Слайд 1Преподаватель:
Глотов Александр Владимирович
ИС и технологии на предприятии. Язык 1С

Преподаватель:Глотов Александр ВладимировичИС и технологии на предприятии. Язык 1С

Слайд 2Вступление
Просьба выключить мобильные телефоны
Включить внимание
Вопросы задавать сразу по ходу занятия
Если

вопросы будут сильно объемными, то могут быть отложены для решения

в индивидуальном порядке
Эксперименты приветствуются при выполнении необходимой программы
ВступлениеПросьба выключить мобильные телефоныВключить вниманиеВопросы задавать сразу по ходу занятияЕсли вопросы будут сильно объемными, то могут быть

Слайд 3Структура темы
Общие сведения о языке 1С
Синтаксис языка
Типы данных
Условные операторы и

операторы цикла
Коллекции значений

Структура темыОбщие сведения о языке 1ССинтаксис языкаТипы данныхУсловные операторы и операторы циклаКоллекции значений

Слайд 4Событийная зависимость модулей

Событийная зависимость модулей

Слайд 5Общие сведения об языке 1С
ПеременнаяА идентично переменнаяа
Идентификаторы: НДС_20, _СчетчикЦикла

НДС_20 = 20; _СчетчикЦикла = 0;
// Текст программы, предваряемый

символами «//» считается комментарием.
значения не имеет процедур, функций между собой порядок описания
Встроенные процедуры и функции: Сообщить(), ТекущаяДата(), …
Системные перечисления: ВидСчета.Активный, ИспользованиеСреза.Первые, …
Встроенные классы: Файл, Форма, ТабличныйДокумент, …
Обращение к методам через «.»
Обращение к свойствам через «.» или «[ ]»
Разыменование через «.»: Сотр.Адрес.Дом, Запр.Выполнить().Выбрать()
Различный контекст исполнения (сервер, клиент, модуль)
Общие сведения об языке 1С ПеременнаяА идентично переменнаяаИдентификаторы: НДС_20, _СчетчикЦикла НДС_20 = 20; _СчетчикЦикла = 0; //

Слайд 6Тип встроенного языка 1С
Предметно-ориентирован

Элементом ООП в 1С являются наследование встроенных

методов прикладных объектов создаваемым разработчиком
все методы объекта «Документ» наследуется документом

«Реализация товаров», если он создается в конфигурации

У программиста нет возможности создавать собственные классы, свойства, методы объектов.
Но можно создавать свойства и методы «подобъектов».
Тип встроенного языка 1СПредметно-ориентированЭлементом ООП в 1С являются наследование встроенных методов прикладных объектов создаваемым разработчикомвсе методы объекта

Слайд 7Структура программного модуля
Раздел объявления переменных
Раздел объявления процедур и функций
Основной раздел

модуля

Структура программного модуляРаздел объявления переменныхРаздел объявления процедур и функцийОсновной раздел модуля

Слайд 8Виды программных модулей
Модуль приложения. В нем располагаются процедуры-обработчики событий, которые

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

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

Слайд 9Область видимости переменных, процедур, функций или «контекст»
Глобальный контекст. Доступен в

любом модуле.
Встроенные функции, системные перечисления
Переменные, процедуры и функции модуля приложения

с ключевым словом «Экспорт»
Переменные, процедуры и функции общих модулей с ключевым словом «Экспорт»

Локальный контекст. Доступен только в локальных участках конкретных модулей
Область видимости переменных, процедур, функций или «контекст»Глобальный контекст. Доступен в любом модуле.Встроенные функции, системные перечисленияПеременные, процедуры и

Слайд 10Типы значений
Мягкая типизация
Но! В каждый момент времени тип значения переменных

всегда однозначен.

1. Примитивные типы
Число
Строка (фиксированной или неограниченной длины)
Дата (может хранить и

дату, и время)
Булево (два значения: Истина и Ложь)
Null (константное значение)
Неопределено (константное значение)
Тип (может быть получен встроенными функциями Тип() и ТипЗнч())
Типы значенийМягкая типизацияНо! В каждый момент времени тип значения переменных всегда однозначен. 1. Примитивные типыЧислоСтрока	(фиксированной или неограниченной

Слайд 11Типы значений
2. Универсальные коллекции значений
Массив
Структура
Соответствие
Таблица значений
Дерево значений и др.

3. Общие

типы
Текстовый документ
Табличный документ
Файл
COM-объект

Типы значений2. Универсальные коллекции значенийМассивСтруктураСоответствиеТаблица значенийДерево значений и др.3. Общие типыТекстовый документТабличный документФайлCOM-объект

Слайд 12Типы значений
4. Интерфейсные типы
Форма
Кнопка
Поле ввода
Цвет
Линия
5. Типы значений, создаваемые в конфигурации
Справочники
Документы
Планы

видов характеристик
Планы счетов
Планы видов расчета
Перечисления
Регистры сведений
Регистры накопления

Типы значений4. Интерфейсные типыФормаКнопкаПоле вводаЦветЛиния5. Типы значений, создаваемые в конфигурацииСправочникиДокументыПланы видов характеристикПланы счетовПланы видов расчетаПеречисленияРегистры сведенийРегистры накопления

Слайд 13Примитивные типы
Литералы примитивных типов
Операции с примитивными типами

Примитивные типыЛитералы примитивных типовОперации с примитивными типами

Слайд 14Типы, образуемые в прикладном решении
В зависимости от объектов конфигурации, будут

добавляться различные типы данных:
Справочник «Сотрудники» (Ссылочные типы):
Тип СправочникМенеджер.Сотрудники
Тип СправочникСсылка.Сотрудники
Тип СправочникОбъект.Сотрудники
Тип

СправочникВыборка.Сотрудники
Тип СправочникСписок.Сотрудники
Регистр сведений «Курсы валют» (Нессылочные типы):
Тип РегистрСведенийМенеджер.КурсыВалют
Тип РегистрСведенийВыборка.КурсыВалют
Тип РегистрСведенийСписок.КурсыВалют
Тип РегистрСведенийМенеджерЗаписи.КурсыВалют
Тип РегистрСведенийНаборЗаписей.КурсыВалют
Тип РегистрСведенийЗапись.КурсыВалют
Тип РегистрСведенийКлючЗаписи.КурсыВалют

Типы, образуемые в прикладном решенииВ зависимости от объектов конфигурации, будут добавляться различные типы данных:Справочник «Сотрудники» (Ссылочные типы):Тип

Слайд 15Типы, образуемые в прикладном решении
Краткое описание создаваемых типов:
Менеджер. Объекты этого

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

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

Типы, образуемые в прикладном решенииКраткое описание создаваемых типов:Менеджер. Объекты этого типа предоставляют доступ к общим действиям, относящимся

Слайд 16Операторы языка 1С
Операторы языка

Операторы языка 1СОператоры языка

Слайд 17Операторы языка 1С
Операторы языка

Операторы языка 1СОператоры языка

Слайд 18Операторы языка 1С
Операторы языка

Операторы языка 1СОператоры языка

Слайд 19Встроенные функции языка 1С
Встроенные функции работы со строками

Встроенные функции языка 1СВстроенные функции работы со строками

Слайд 20Встроенные функции языка 1С
Встроенные функции работы с датами

Встроенные функции языка 1СВстроенные функции работы с датами

Слайд 21Встроенные функции языка 1С
Прочие встроенные функции

Встроенные функции языка 1СПрочие встроенные функции

Слайд 22Встроенные функции языка 1С
Процедуры и функции интерактивной работы

Встроенные функции языка 1СПроцедуры и функции интерактивной работы

Слайд 23Описание собственных процедур и функций
Собственные процедуры и функции

Виды передачи параметров

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

приводит к изменению фактического параметра. Пример:

Функция ВыделитьСловаВТексте(УчастокТекста)

По значению. Изменение формального параметра внутри процедуры/функции не влияет на фактический параметр. Для этого перед именем процедуры/функции необходимо записать ключевое слово Знач. Пример:

Функция ВыделитьСловаВТексте(Знач УчастокТекста)



Описание собственных процедур и функцийСобственные процедуры и функцииВиды передачи параметров в процедуры/функции:По ссылке (по умолчанию). Изменение формального

Слайд 24Описание собственных процедур и функций
Значения параметров процедуры/функции «по умолчанию»
Если параметру

задано значение по умолчанию, и он является последним в списке,

то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром. Пример:
Функция МассивЧиселВСтроку(МассивЧисел, Разделитель = “;”)
………………………………………………………………………………………………………………
МассивЧиселВСтроку(МассивЧисел, “!”); МассивЧиселВСтроку(МассивЧисел);
Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.
Функция МассивЧиселВСтроку(МассивЧисел, Разделитель)
………………………………………………………………………………………………………………
МассивЧиселВСтроку(МассивЧисел,);
Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо значение Неопределено.

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



Описание собственных процедур и функцийЗначения параметров процедуры/функции «по умолчанию»Если параметру задано значение по умолчанию, и он является

Слайд 25Описание собственных процедур и функций
Пример описания и вызова процедуры
Процедура ПолучитьФИО(ФИО,Фамилия,Имя,Отчество)
ПозицияПробела

= Найти(ФИО,« »);
Фамилия = Лев(ФИО, ПозицияПробела-1);
ФИО = Прав(ФИО, СтрДлина(ФИО)

- ПозицияПробела);
ПозицияПробела = Найти(ФИО,« »);
Имя = Лев(ФИО, ПозицияПробела-1);
Отчество = Прав(ФИО, СтрДлина(ФИО) - ПозицияПробела);
КонецПроцедуры

ФИО = «Иванов Иван Иванович»;
Фамилия = «»; Имя = «»; Отчество = «»;
ПолучитьФИО(ФИО,Фамилия,Имя,Отчество);
Сообщить(«Фамилия = » + Фамилия + «, имя = » + Имя + «, отчество = » + Отчество);
Пример описания и вызова функции
Функция МодульЧисла(Значение)
Возврат Макс(Значение,-Значение);
КонецФункции

Значение = -5;
Модуль = МодульЧисла(Значение);



Описание собственных процедур и функцийПример описания и вызова процедуры	Процедура ПолучитьФИО(ФИО,Фамилия,Имя,Отчество)		ПозицияПробела = Найти(ФИО,« »);		Фамилия = Лев(ФИО, ПозицияПробела-1); 		ФИО

Слайд 26Универсальные коллекции значений
Массив Упорядоченная последовательность значений любого типа

А[0] = 1; А[1] = “25”; А[2] =

‘20090503’

Структура Каждый элемент коллекции содержит пару “Ключ” (строка) и “Значение” (произвольный тип)
А[“Цвет волос”] = “блондин”; А[“Рост”] = 186

Соответствие Каждый элемент коллекции содержит пару “Ключ” (произвольный тип) и “Значение” (произвольный тип)
КурсВалют[‘20090510’] = 10.19; КурсВалют[‘20090513’] = 10.22

Список значений Как правило, используется для визуализации списка значений

Таблица значений Используется для хранения двумерных данных

Дерево значений Используется для хранения иерархических двумерных данных
Универсальные коллекции значенийМассив   Упорядоченная последовательность значений любого типа   А[0] = 1; А[1] =

Слайд 27Универсальные коллекции значений
Создание значения типа массив
// массив с 0 элементами


А = Новый Массив();

// одномерный массив
// из 10 элементов
А

= Новый Массив(10);

// двумерный массив
А = Новый Массив(10,5);








Заполнение массива
// через индексы массива
А = Новый Массив(5);
А[0] = 1;
A[1] = “второй элемент”;

// с использованием
// метода Добавить()
А = Новый Массив();
А.Добавить(1);
А.Добавить(«Второй элемент»);








Перебор массива
А = Новый Массив(2);
А[0] = 1;
А[1] = 2;
Сумма = 0;
Для Каждого Б Из А Цикл
Сумма = Сумма + Б;
КонецЦикла;

Универсальные коллекции значенийСоздание значения типа массив// массив с 0 элементами  А = Новый Массив();// одномерный массив//

Слайд 28Универсальные коллекции значений
Создание значения типа структура
// без указания ключей и

значений
А = Новый Структура();
// ключи указаны в констукторе
А = Новый

Структура(«Цвет волос, Рост»);
// ключи и значения указаны в конструкторе
А = Новый Структура(«Цвет волос, Рост», «Блондин», 186);
Заполнение структуры
// через ключи структуры
А = Новый Структура(«Цвет волос, Рост»);
А[«Цвет волос»] = «Блондин»; А[«Рост»] = 186;
// с использованием метода Добавить()
А = Новый Структура();
А.Вставить(«Цвет волос», «Блондин»);
А.Вставить(«Рост», 186);
Перебор структуры
А = Новый Структура(«Цвет волос, Рост», «Блондин», 186);
Для Каждого ЭлементСтруктуры Из А Цикл
Сообщить(ЭлементСтруктуры.Значение); Сообщить(ЭлементСтруктуры.Ключ);
КонецЦикла;

Универсальные коллекции значенийСоздание значения типа структура	// без указания ключей и значений	А = Новый Структура();	// ключи указаны в

Слайд 29Универсальные коллекции значений
Создание значения типа таблица значений
тзСотрудники = Новый ТаблицаЗначений;
//

определение колонок
тзСотрудники.Колонки.Добавить(«Сотрудник»,Новый ОписаниеТипов(«Строка»,,Новый КвалификаторыСтроки(100)));
тзСотрудники.Колонки.Добавить(«Рост»,Новый ОписаниеТипов(«Число»,Новый КвалификаторыЧисла(5,2)));
Заполнение таблицы значений
// тзСотрудники

– таблица значений (Колонки – «Сотрудник», «Рост»)
// добавление одной строки в таблицу
НоваяСтрока = тзСотрудники.Добавить();
НоваяСтрока.Сотрудник = «Иванов Иван Иванович»;
НоваяСтрока.Рост = 186;
Перебор таблицы значений
// тзСотрудники – таблица значений (Колонки – «Сотрудник», «Рост»)
СреднийРост = 0; МаксРост = 0; МинРост = 999;
Для Каждого СтрокаТзСотрудники Из тзСотрудники Цикл
МаксРост = Макс(МаксРост, СтрокаТзСотрудники.Рост);
МинРост = Мин(МинРост, СтрокаТзСотрудники.Рост);
СреднийРост = СреднийРост + СтрокаТзСотрудники.Рост;
КонецЦикла;
СреднийРост = СреднийРост / тзСотрудники.Количество().
Сообщить(«Средний=» + СреднийРост + «,макс = » + МаксРост + «, мин = » + МинРост);
.

Универсальные коллекции значенийСоздание значения типа таблица значений	тзСотрудники = Новый ТаблицаЗначений;	// определение колонок	тзСотрудники.Колонки.Добавить(«Сотрудник»,Новый ОписаниеТипов(«Строка»,,Новый КвалификаторыСтроки(100)));	тзСотрудники.Колонки.Добавить(«Рост»,Новый ОписаниеТипов(«Число»,Новый 	КвалификаторыЧисла(5,2)));Заполнение таблицы

Слайд 30Универсальные коллекции значений
Создание значения типа дерево значений
деревоЗаказов = Новый ДеревоЗначений;
//

определение колонок
деревоЗаказов.Колонки.Добавить(«Заказ»,Новый ОписаниеТипов(«Строка»,,Новый КвалификаторыСтроки(100)));
деревоЗаказов.Колонки.Добавить(«Сумма»,Новый ОписаниеТипов(«Число»,Новый КвалификаторыЧисла(5,2)));
Заполнение дерева значений
// деревоЗаказов

– дерево значений (Колонки – «Заказ», «Сумма»)
// добавление строки первого уровня
Строка1 = деревоЗаказов.Строки.Добавить();
Строка1.Заказ = «Контрагент1»;
// добавление строки второго уровня
Строка2 = Строка1.Строки.Добавить();
Строка2.Заказ = «Заказ №1»;
// добавление строки третьего уровня
Строка3 = Строка2.Строки.Добавить();
Строка3.Заказ = «Накладная №1»; Строка3.Сумма = 1000.45;
Универсальные коллекции значенийСоздание значения типа дерево значений	деревоЗаказов = Новый ДеревоЗначений;	// определение колонок	деревоЗаказов.Колонки.Добавить(«Заказ»,Новый ОписаниеТипов(«Строка»,,Новый КвалификаторыСтроки(100)));	деревоЗаказов.Колонки.Добавить(«Сумма»,Новый ОписаниеТипов(«Число»,Новый 	КвалификаторыЧисла(5,2)));Заполнение дерева

Слайд 31Инструкции препроцессора
Синтаксис:
#Если Тогда
#ИначеЕсли Тогда
#КонецЕсли

В качестве < ЛогическоеВыражение> используются:
НаКлиенте
Клиент
ТонкийКлиент
ВебКлиент
НаСервере
Сервер
ВнешнееСоединение

Перед

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

препроцессора, находящихся в модуле. Текст, который не выполняется на стороне клиента, удаляется.



Инструкции препроцессораСинтаксис:	#Если Тогда	#ИначеЕсли Тогда	#КонецЕслиВ качестве < ЛогическоеВыражение> используются:НаКлиентеКлиентТонкийКлиентВебКлиентНаСервереСерверВнешнееСоединениеПеред передачей программного модуля сервером на клиент, сервер выполняет обработку

Слайд 32Директивы компиляции
Синтаксис:
&


В качестве используются:
НаКлиенте
НаСервере
НаСервереБезКонтекста
НаКлиентеНаСервереБезКонтекста
НаКлиентеНаСервере

Директивы компиляции

используются только в модулях форм и в модулях команд. Компиляция

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



Директивы компиляцииСинтаксис:	& 	В качестве  используются:НаКлиентеНаСервереНаСервереБезКонтекстаНаКлиентеНаСервереБезКонтекстаНаКлиентеНаСервереДирективы компиляции используются только в модулях форм и в модулях команд. Компиляция

Слайд 33Рекомендации по написанию текстов программ
Не обязательно заучивать все процедуры и

функции языка 1С. Достаточно научиться работать с синтакс-помощником.
Основной «язык» языка

1С – русский. Однако поддерживаются и английские эквиваленты операторов и функций.
Если A > B Тогда If A > B Then
Сообщить(A); Message(A);
КонецЕсли; EndIf;
Рекомендация: использовать русские эквиваленты.
Идентификаторы ключевых слов, встроенных процедур и функций, объявленных ранее собственных процедур и функций, переменных система «подсказывает» по «Ctrl+пробел».
Часто повторяющиеся языковые конструкции можно оформлять в шаблоны текста. Вставить шаблон текста можно по «Ctrl-Q».
Большинство ошибок ввода в тексте программы можно устранить, используя «Синтаксический контроль» (или «Ctrl-F7»).
Рекомендации по написанию текстов программНе обязательно заучивать все процедуры и функции языка 1С. Достаточно научиться работать с

Слайд 34Рекомендации по написанию текстов программ
Правило №1. Всем идентификаторам переменных, процедур,

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

переменные типа А, x, i и т.д. Тот же принцип должен использоваться при именовании элементов формы (недопустимо использовать имена Кнопка1, ТабличноеПоле1 и т.д.)








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

Рекомендации по написанию текстов программПравило №1. Всем идентификаторам переменных, процедур, функций, объектов системы необходимо давать осмысленные имена,

Слайд 35Рекомендации по написанию текстов программ
Правило №2. Текст программы необходимо форматировать

в едином стиле, максимально используя при этом стандартное форматирование системы

(Alt+Shift+F).
Рекомендация. Операторы и переменные лучше дополнительно разделять пробелами










Правило №3. Текст программы должен быть понятен другому программисту.
Рекомендация. Сложные или неочевидные участки лучше дополнять строками комментария


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

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика