Пошаговые уроки 1С8

13.03.12

Разработка - Механизмы платформы 1С

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

Оглавление

1 Пошаговые уроки 1С8. 2

2 Создание рабочей среды.. 2

    2.1 Создание демо-базы для опытов. 2

    2.2 Создание пустой обработки для опытов. 2

3 Первые шаги. 3

    3.1 Hello world. 3

    3.2 Помощь по функциям.. 3

    3.3 Переменные. 3

    3.4 Комментарии. 3

    3.5 Арифметика. 4

    3.6 Использование форм для ввода/вывода данных. 4

        3.6.1 Создание формы обработки. 4

        3.6.2 Добавление элементов управления. 5

        3.6.3 Настройка элементов управления. 5

        3.6.4 Настройка поведения формы.. 5

        3.6.5 Элементы для вывода данных. 5

        3.6.6 Сохранение значений. 6

    3.7 Строки. 6

        3.7.1 Запись строковых констант. 6

        3.7.2 Конкатенация. 6

        3.7.3 Строковые функции. 6

        3.7.4 Служебные символы.. 7

4 Классическое программирование. 7

    4.1 Условия. 7

    4.2 Циклы.. 7

    4.3 Функции. 7

    4.3.1 Понятие функций. 7

    4.3.2 Передача параметров. 7

    4.3.3 Рекурсия. 7

5 Коллекции. 7

6 Прикладные объекты.. 7

    6.1 Общие принципы работы с объектами. 8

    6.2 Справочники. 8

    6.3 Документы.. 8

    6.4 Регистры.. 8

7 Запросы.. 8

    7.1 Первый запрос. 8

    7.2 Разбор первого запроса. 8

    7.3 Отбор по условию.. 9

    7.4 Сортировка. 9

    7.5 Группировка, агрегатные функции и псевдонимы имен. 9

8 Макеты.. 9

9 Формы.. 9

 

1 Пошаговые уроки 1С8

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

2 Создание рабочей среды

Для начала работы вам нужно создать рабочую среду. Для этого вы должны:

  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 Группировка, агрегатные функции и псевдонимы имен

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

8 Макеты

9 Формы

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    3640    dsdred    48    

66

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5045    YA_418728146    25    

62

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6175    dsdred    36    

110

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18206    SeiOkami    46    

116

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    11784    human_new    27    

72

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    8568    YA_418728146    6    

139

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6207    sebekerga    54    

93

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15553    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 16.10.20 16:57
Сообщение было скрыто модератором.
...
2. пользователь 16.10.20 16:58
Сообщение было скрыто модератором.
...
3. пользователь 10.03.21 16:12
Сообщение было скрыто модератором.
...
4. andrey1508 107 26.01.24 13:56 Сейчас в теме
Оглавление ценнее содержания
Оставьте свое сообщение