Оглавление
2.1 Создание демо-базы для опытов. 2
2.2 Создание пустой обработки для опытов. 2
3.6 Использование форм для ввода/вывода данных. 4
3.6.1 Создание формы обработки. 4
3.6.2 Добавление элементов управления. 5
3.6.3 Настройка элементов управления. 5
3.6.4 Настройка поведения формы.. 5
3.6.5 Элементы для вывода данных. 5
3.7.1 Запись строковых констант. 6
4 Классическое программирование. 7
6.1 Общие принципы работы с объектами. 8
7.5 Группировка, агрегатные функции и псевдонимы имен. 9
1 Пошаговые уроки 1С8
Если даже вы не знакомы с программированием, то благодаря этому руководству постепенно, за шагом шаг, сможете изучить 1С.
2 Создание рабочей среды
Для начала работы вам нужно создать рабочую среду. Для этого вы должны:
- Создать любую из типовых демо-баз БП, УТ, где вы будете упражняться.
- Научиться заходить в 1С в режиме Предприятие и Конфигуратор.
Демо-база должна быть с заполненными документами и справочниками, чтобы вам не заниматься вводом данных, а сосредоточиться на изучении программирования., чтобы вам не заниматься вводом данных, а сосредоточиться на изучении программирования.
2.1 Создание демо-базы для опытов
!!!дописать
Пока что раздел не написан. Предполагается, что создавать новую базу вы умеете или попросите знакомых.
2.2 Создание пустой обработки для опытов
В Конфигураторе создайте новую внешнюю обработку через меню «Файл – Новый – Внешняя обработка». Откроется форма настройки новой внешней обработки.
Код для опытов будем писать непосредственно в модуле обработки. Модуль можно открыть через меню «Действия – Открыть модуль объекта» в форме настройки обработки.
После внесения изменений в код не забывайте сохранить обработку. Для этого активизируйте форму настройки внешней обработки и нажмите «Действия – Открыть модуль объекта».
Обработку можно запустить на выполнение, открыв ее файл в режиме 1С-предприятия через «Файл – Открыть». Она сразу же выполнится.
3 Первые шаги
3.1 Hello world
Для вывода сообщения нужно написать следующий код:
Сообщить("Hello Wold");
Вместо Hello World можно написать произвольный текст.
Задание: Напишите код, который выводит последовательно следующие два сообщения:
Hello World
Привет 1С
Сообщить выводит не только текст, но и перевод строки, поэтому каждое сообщение выводится в новой строке.
Если вы не увидели сообщения, возможно у вас скрыто окно сообщений, его можно показать через «Сервис – Служебные окна – Служебные сообщения».
Если запустить обработку несколько раз, можно увидеть, что старые сообщения не удаляются. Чтобы старые сообщения удалялись, нужно использовать код:
ОчиститьСообщения();
Обратите внимание, что код состоит из операторов, каждый из которых заканчивается точкой с запятой.
Сообщить и ОчиститьСообщения – это функции. Оператор, вызывающий функцию состоит из имени функции, за которым следует круглая скобка, затем параметры функции, закрывающая круглая скобка и обязательная точка с запятой в конце.
В одной строке можно размещать несколько операторов, но так не принято у программистов 1С:
Сообщить("Hello Wold"); Сообщить("И снова привет!");
3.2 Помощь по функциям
3.3 Переменные
Рассмотрим использование переменных в 1С.
Модифицируем обработку «Hello World» следующим образом:
Сообщение = "Hello Wold";
Сообщить(Сообщение);
В коде создалась переменная Сообщение, ей присвоилось значение с помощью оператора равно и вызов Сообщить вывел уже не просто строку, а значение переменной.
Значение переменной можно менять многократно, посмотрите как работает этот код:
Сообщение = "Hello Wold";
Сообщить(Сообщение);
Сообщение = "Привет 1С";
Сообщить(Сообщение);
3.4 Комментарии
В коде можно использовать комментарии. Они не выполняются, а просто содержат описание того, что выполняется в коде или служат для заметок, чтобы не забыть какие-либо важные вещи. Комментарии важны, чтобы другой человек, или вы сами, спустя какое-то время могли разобраться, что и зачем вы делали в коде.
Изменим предыдущий код:
//Выводим приветствие миру
Сообщение = "Hello Wold";
Сообщить(Сообщение); //Собственно, сам вызов функции
Сообщение = "Привет 1С";
Сообщить(Сообщение);
Комментарий начинается с символов // и длится до конца строки. Начинать комментарий можно в любом месте.
Комментарии можно использовать, чтобы какой-то участок кода не выполнялся. Для этого нужно просто закомментировать этот участок.
Попробуйте выделить следующие строки с помощью мышки или курсорных клавиш, а затем выбрать команду «Текст – Блок – Добавить комментарий»:
Сообщение = "Hello Wold";
Сообщить(Сообщение); //Собственно, сам вызов функции
Вы увидите, что текст изменится на:
//Сообщение = "Hello Wold";
//Сообщить(Сообщение); //Собственно, сам вызов функции
Соответственно, можно выделить участок кода и выполнить обратную команду «Текст – Блок – Удалить комментарий», при этом текст раскомментируется.
3.5 Арифметика
Рассмотрим использование арифметических операций в 1С.
Числа в 1С записываются интуитивно понятным образом:
А = 1; //Единица
Б = 10.2; //Десять целых, ноль десятых
В = -0.123; //Минус ноль целых сто двадцать три тысячных
Порядки вещественных чисел и отличные от десятичной системы счисления числа не используются.
Математические операции выполняются тоже просто:
А = 4/2; //4 разделить на 2
Б = А * 10; //Значение из переменной А умножаем на 10
В = А % 10; //Берем остаток от деления из переменной А на 2
Г = А + Б - В; //В Г помещаем А + Б – В
Д = (А+Б) * Б //Сначала вычисляем А + Б, затем полученное значение умножаем на Б
Е = ((А+Б)-Г) * Б //Сначала вычисляем А + Б, затем от полученного значения отнимаем Г, затем полученное значение умножаем на Б
Можно использовать также арифметические функции:
А = 1;
Б = Окр(А/3); //Округление при делении А на 3
3.6 Использование форм для ввода/вывода данных
3.6.1 Создание формы обработки
У обработки можно создать форму. Для этого в форме настройки обработки нужно ПКМ на пункте «Формы» и выбрать «Добавить», затем нажать «Готово». Будет создана основная форма обработки и открыта в Конфигураторе для редактирования.
Если щелкнуть на синем заголовке формы, откроются свойства формы.
3.6.2 Добавление элементов управления
Команда «Форма – Вставить элемент управления» позволяет разместить на форме элемент управления.
Попробуем разместить на форме поле для ввода целого числа, и заголовок для него.
Команда «Форма – Вставить элемент управления – Поле ввода – ОК» добавляет новое поле ввода.
Команда «Форма – Вставить элемент управления – Надпись – ОК» добавляет надпись.
3.6.3 Настройка элементов управления
Разместим надпись справа от поля ввода.
Если щелкнуть на элементе управления, открываются его свойства.
Для надписи установим заголовок «Число».
Для поля ввода установим значение свойств «Имя» и «Данные» в «Число». Обычно «Имя» и «Данные» всегда совпадают.
3.6.4 Настройка поведения формы
Внизу формы есть три закладки «Диалог», «Модуль» и «Реквизиты».
Перейдем на закладку «Модуль». Мы увидим код модуля формы. В модуле есть только такой код:
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
КонецПроцедуры
Изменим его следующим образом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Сообщить(Число*2);
КонецПроцедуры
Сохраним обработку, откроем ее в режиме Предприятия. Введем значение в поле «Число», нажмем кнопку «Выполнить». В окно сообщений выведется значение, умноженное на два.
Так происходит потому, что у кнопки «Выполнить» в свойстве «Действие» указано «КнопкаВыполнитьНажатие».
3.6.5 Элементы для вывода данных
Неудобно, что результат выводится в окне сообщений, а не в форме.
Добавим еще одно поле, дадим ему имя «Результат». В свойствах укажем «Только просмотр» в «Истина». Теперь это поле доступно только для просмотра.
Изменим процедуру на такую:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Результат = Число*2;
КонецПроцедуры
Теперь при нажатии кнопки «Выполнить» результат выводится не в окно сообщений, а в поле «Результат».
В дальнейшем все задачи решаются с применением форм. Данные вводятся в форму и выводятся на форму или в окно сообщений.
3.6.6 Сохранение значений
В реальных формах может быть очень много полей. Чтобы постоянно не вводить все значения, в свойствах формы поставим галочку «Сохранять значения» и в списке «Сохраняемые значения» выберем поле «Число».
Теперь зайдем в 1С, введем в поле «Число» значение 2. Выполним «Действия – Сохранить значения». Сохраним в настройку «Основная», установим галочку «Использовать при открытии».
Теперь закроем обработку и откроем ее еще раз. В поле «Число» окажется значение 2. Таким образом, можно сохранять значения для любого количества элементов формы, чтобы не заполнять их повторно.
Можно использовать несколько настроек и перезаписывать существующие настройки.
3.7 Строки
Рассмотрим работу со строками в 1С.
3.7.1 Запись строковых констант
Строки записываются в двойных кавычках, пример мы уже видели: "Hello World!"
Если нужно записать кавычку внутри строки, она повторяется два раза: "Я использую для бизнеса программы фирм ""1С"" и ""Микрософт""".
Строка может быть помещена в переменную так:
А = "Привет мир";
Если в строке встречается перевод строки, то она записывается с помощью символа вертикальной черты:
С =
"Съешь конфеточку, дружок!
|Или хочешь пирожок?";
3.7.2 Конкатенация
Простейшая операция над строками – склейка (конкатенация).
А = "Привет ";
Б = "мир";
В = А + Б;
Сообщить(В);
В результате в переменную В будет помещена строка "Привет мир".
3.7.3 Строковые функции
Рассмотрим основные строковые функции:
С = "Привет мир";
Длина = СтрДлина(С); //10 - длина строки
С1 = Лев(С, 2); //Пр - левые 2 символа
С2 = Прав(С, 3); //мир - правые 3 символа
С3 = Сред(С, 5, 2); //ет - два символа, начиная с 5-й позиции
Задача:
Используя только функции Лев, Прав и Сред, получите из строки «Привет мир» строки «веер», «Пирр» и «ветер ветер».
3.7.4 Служебные символы
Не все символы можно включать в строку. Некоторые символы можно получить только по их коду.
В данном примере мы выводим символ табуляции между строками «Поз1» и «Поз2».
Сообщить("Поз1" + Символ(9) + "Поз2");
Но для наиболее часто используемых служебных символов в 1С существуют специальные константы:
Сообщить("Поз1" + Символы.Таб + "Поз2"); //Табуляция
Сообщить("Поз1" + Символы.ПС + "Поз2"); //Перевод строки
Задача:
Выведите строки «Хлеб», «Батон», «Булочка», «Пирожок», каждую с новой строки. Решить задачу двумя способами – с помощью символа вертикальной черты и конкатенацией с символом перевода строки.
4 Классическое программирование
В разделе будут рассмотрены классические задачи по программированию.
4.1 Условия
4.2 Циклы
4.3 Функции
4.3.1 Понятие функций
4.3.2 Передача параметров
4.3.3 Рекурсия
5 Коллекции
В разделе будет рассмотрена работа с коллекциями – списками, структурами, соответствиями, таблицами, деревьями.
6 Прикладные объекты
После завершения курса по прикладным объектам у Вас будет демо-база, где будет некоторый набор товаров и документов по ним. Если вы пропустили этот курс, можете вместо этой демо-базы использовать любую типовую демо-базу от 1С.
6.1 Общие принципы работы с объектами
6.2 Справочники
6.3 Документы
6.4 Регистры
7 Запросы
Для работы с запросами скачайте Консоль запросов. Это внешняя обработка, которая позволяет писать запросы непосредственно в режиме 1С: Предприятия. Все задачи в этом разделе только извлекают, но не меняют данные, поэтому экспериментировать можно даже в рабочей базе.
7.1 Первый запрос
В консоли запроса напишите текст запроса, как на картинке. Затем нажмите кнопку «Выполнить». Запрос выполнится и результат будет выведен на закладке «Результат»:
Сохраните свой первый запрос в файле с расширением SEL.
7.2 Разбор первого запроса
Наш первый запрос был обращен к справочнику «Номенклатура».
ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура
Рассмотрим, из чего он состоит.
- ВЫБРАТЬ – первое ключевое слово, указывает, что мы будем выбирать информацию. В 1С все запросы начинаются с этого слова, потому что запросов на изменение (ИЗМЕНИТЬ) или удаление данных (УДАЛИТЬ) нет.
- Наименование – поле или список полей, разделенных запятыми, которые нужно выбрать из таблицы.
- Справочник.Номенклатура – таблица, из которой излекать данные.
Результат запроса – таблица с несколькими колонками. В нашем случае в таблице получилась одна колонка «Наименование».
Чтобы извлечь несколько полей, перепишем запрос так:
ВЫБРАТЬ Код, Артикул, Наименование ИЗ Справочник.Номенклатура
Задание: Напишите запрос, который извлекает наименование, код и ИНН из справочника Контрагенты.
7.3 Отбор по условию
Для отбора используется ключевое слово ГДЕ. Построим запрос, который извлекает наименования и артикул товаров, которые начинаются на русскую букву «а»:
ВЫБРАТЬ Наименование, Артикул ИЗ Справочник.Номенклатура ГДЕ Наименование Подобно "а%"
- Подобно – это функция, которая сравнивает строку с заданным шаблоном.
Как видно, в результат запроса попали значения с прописной и строчной буквы А, отбор по функции Подобно не делает различий между ними.
7.4 Сортировка
Для того, чтобы упорядочить запрос, используется ключевое слово УПОРЯДОЧИТЬ ПО.
Выполните запрос:
ВЫБРАТЬ ВидНоменклатуры, Наименование ИЗ Справочник.Номенклатура
УПОРЯДОЧИТЬ ПО ВидНоменклатуры Убыв, Наименование Возр
Как видно, результирующую таблицу можно сортировать по нескольким полям.
- Убыв – означает сортировку по Убыванию,
- Возр – по возрастанию.
Можно не писать порядок сортировки, тогда сортировка идет по возрастанию.
Задание: Переберите различные варианты сортировки предыдущего запроса, посмотрите, в каком порядке сортируются данные:
- ВидНоменклатуры Убыв, Наименование
- ВидНоменклатуры Возр, Наименование Возр
- ВидНоменклатуры, Наименование Убыв
7.5 Группировка, агрегатные функции и псевдонимы имен
Запросы удобно использовать для группировки данных и подсчета сумм и других агрегатных функций.