Основные свойства языка программирования 1с. Это больше, чем бухгалтерия

В этой статье рассмотрим такую конструкцию языка прогрммирования 1С как Циклы .

Существует три способа организации циклов.

  1. Циклы с использование логического выражения (выполняются до тех пор пока логическое выражение истинно)
  2. Обход коллекций в цикле

Рассмотрим каждый из этих способов.

Циклы с использованием переменной — счетчика цикла

Синтаксис:

Для < Переменная> = < НачальноеЗначение> По < КонечноеЗначение> Цикл КонецЦикла ;

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

С каждой итерацией значение счетчика увеличивается на единицу. Вот самый элементарный пример такого цикла:

Для Счетчик = 0 По 1000 Цикл КонецЦикла ;

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

Для Счетчик = 0 По 1000 Цикл Счетчик = Счетчик + 10 ; КонецЦикла ;

Циклы с использование логического выражения

Синтаксис:

Пока < ЛогическоеВыражение> Цикл КонецЦикла ;

Отказ = Ложь ; ГенераторСЧ = Новый ГенераторСлучайныхЧисел(1 ) ; Пока НЕ Отказ Цикл СлучайноеЧисло = ГенераторСЧ. СлучайноеЧисло(0 , 10 ) ; Если СлучайноеЧисло > 5 Тогда Отказ = Истина ; КонецЕсли ; КонецЦикла ;

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

Обход коллекций в цикле

В языке программирования 1С существует такое понятие как коллекция. Она представляет собой набор элементов, содержащихся внутри какого-то объекта.

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

Для каждого < ЭлементКоллекции> Из < Коллекция> Цикл КонецЦикла ;

Здесь <ЭлементКоллекции> — это переменная в которую последовательно помещаются элементы из коллекции. И внутри цикла она соответствующим образом обрабатывается.
В качестве примера приведу обход в цикле строк таблицы значений. Пусть она называется ТаблицаТовары и выглядит вот таким образом:

Обойдем в цикле эту таблицу и для каждой строки выведем сообщение с наименованием и ценой товара:

Для каждого СтрокаТаблицы Из ТаблицаТовары Цикл Наименование = СтрокаТаблицы. Наименование; Цена = СтрокаТаблицы. Цена; Сообщение = Новый СообщениеПользователю; Сообщение. Текст = "Наименование товара: "

На самом деле то же самое можно проделать и воспользовавшись первым вариантом, т.е в цикле с использованием счетчика:

КоличествоСтрок = ТаблицаТовары. Количество() ; Для Счетчик = 0 По КоличествоСтрок - 1 Цикл СтрокаТаблицы = ТаблицаТовары[ Счетчик] ; Наименование = СтрокаТаблицы. Наименование; Цена = СтрокаТаблицы. Цена; Сообщение = Новый СообщениеПользователю; Сообщение. Текст = "Наименование товара: " + Наименование + "; Цена: " + Цена; Сообщение. Сообщить() ; КонецЦикла ;

Но как видим использовать обход элементов коллекции гораздо проще и удобней

Вспомогательные операторы

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

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

Для Счетчик = 0 По 100 Цикл Если Счетчик = 0 Тогда Продолжить ; КонецЕсли ; Если Счетчик = 4 Тогда Прервать ; КонецЕсли ; Результат = 1 / Счетчик; Сообщение = Новый СообщениеПользователю; Сообщение. Текст = Строка(Результат) ; Сообщение. Сообщить() ; КонецЦикла ;

Ноль пропускаем, т.к. на ноль делить нельзя. И всего цикл выполниться пять раз, для значений переменной Счетчик от 0 до 4

Войдите на сайт как ученик

Внутренний язык программирования 1С 8.3 для начинающих программистов: установка 1С и ваша первая программа на языке 1С

Если вы не читали введение к урокам - пожалуйста, прочтите его: .

Установка учебной версии 1С

Для обучения программированию нам понадобится 1С 8.3 (не ниже 8.3.13.1644 ) .

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

Задание №1 : скачать и установить учебную версию 1С 8.3.

После выполнения Задания №1 на вашем рабочем столе должен появиться вот такой ярлык:

Поздравляю! Платформа 1С установлена и очень скоро вы сможете написать первую программу.

Первая программа

Это уже стало традицией для программистов - изучая новый язык, первое, что на нём пишут это программу, печатающую на экране фразу "Hello, World!".

Не станем исключением и мы. Но, будучи русскими программистами, заставим компьютер вывести на экран фразу "Привет, Мир!".

Задание №2: написать программу на языке 1С 8.3, которая при запуске выводит на экран фразу "Привет, Мир!".

Инструкция для выполнения:

1. Запустите ярлык "1С:Предприятие" на вашем рабочем столе.

2. Перед вами открылся список баз 1С. Как видите, он пуст. Давайте создадим учебную базу, в которой и будем программировать. Нажмите кнопку "Добавить ".

3. Выберите пункт "Создание новой информационной базы " и нажмите кнопку "Далее ".

4. Выберите пункт "Создание информационной базы без конфигурации... " и нажмите кнопку "Далее ".

5. В качестве имени базы укажите "Учебная " и нажмите кнопку "Далее ".

6. В качестве каталога базы укажите любую пустую папку (в данном случае это папка "Учебная" в моих документах). Нажмите кнопку "Далее".

7. Укажите вариант аутентификации "Выбирать автоматически ", режим запуска "Толстый клиент ". В качестве версии 1С:Предприятия ничего не указывайте, нажмите кнопку "Готово".

8. Как видите, в списке, наконец, появилась первая база, которую мы только что создали сами! Начнем писать код. Нажмите кнопку "Конфигуратор ".

9. В открывшемся окне, выберите через меню "Конфигурация "->"Открыть конфигурацию ".

10. В открывшейся слева панели нажмите правой кнопкой мыши на слове "Конфигурация " и выберите из списка "Открыть модуль управляемого приложения ".

11. Открылось окно с редактором. Сюда можно писать текст! С ним мы и будем работать в дальнейшем.

12. Теперь, не задумываясь, просто перепишите в это окно следующий текст:

Сообщить("Привет, Мир!" ) ;

13. Отлично! Код нашей первой программы готов. Запустим его на выполнение. Через меню "Отладка "->"Начать отладку " (или клавиша F5 ).

14. На вопрос ответим утвердительно.

15. Спустя секунду или две запустится 1С и в окне снизу появится надпись "Привет, Мир!". Мы добились от компьютера того, чего хотели. Поздравляю вас с первой программой!

Что-то не получилось? Остались вопросы? Задайте их мне на почту [email protected] и я отвечу вам сегодня же. Ваш преподаватель: Владимир Милькин .

Обращение преподавателя

Уровень сложности уроков идёт снизу вверх. Поэтому старайтесь заниматься последовательно, ничего не пропуская и не откладывая на потом.

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

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Даже если вы заранее изучали другие языки программирования, например, C++, PHP, Java, стоит помнить, что 1С хоть и во многом сходе, но все-таки имеет много принципиальных различий.

Самое главное в 1С – то, что не нужно придумывать свои виды объектов. Все они уже есть в конфигурации.

Установите технологическую платформу 1С себе на компьютер, и откройте в конфигураторе новую или уже существующую базу. Для начала можно использовать абсолютно для обучения программированию.

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

Данные так же хранятся в СУБД, но разработчик обычно не работает с ними напрямую. При помощи технологической платформы программист обращается уже к объектам конфигурации или информационной базы.

В 1С, как и во многих других языках программирования, очень часто используются запросы. схож с языком T-SQL. Запросы можно писать как на английском, так и на русском, в прочем, как и остальной код.

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

В плане работы для 1С программистов существуют две основные ветви: франчайзи или работа «на себя» и работа в качестве штатного программиста it-отдела какой-либо организации. Данный выбор зависит только от ваших предпочтений.

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

Если вы решите работать на фрилансе, либо открыть собственный бизнес, не нужно будет ни с кем «делиться» своим заработком (кроме государства и фрилансовой площадки естественно). Но в таком случае и клиентов будет необходимо искать самостоятельно.

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

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

Что хорошо у 1С программистов, так это то, что у вас может не быть технического образование (например, вы экономист, бухгалтер и т. п.). Для подтверждения своих знаний перед клиентами или работодателем вы можете предоставить свои сертификаты 1С.

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

Книги по 1С

Лучше всего изучать 1С по книгам, которые были изданы фирмой 1С. Так сказать, от первоисточника. Некоторые из них идут с поставками типовых конфигураций. Так же вы можете купить отдельные книги.

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

«Hello, 1C» показывает самые простые, основные возможности разработки прикладных решений в системе 1С:Предприятие 8.

В «101 совете» описаны различные способы решения одних и тех же задач.

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

В данном пособии описывается язык запросов с нуля для тех, кто не знаком даже с SQL.

Всем, кто хочет заняться программированием мы хотим объяснить некоторые простые вещи о которых сказано не во всех учебниках по программированию, но об этом следует знать тому, кто с нуля хочет освоить программирование на языке 1С.

1. Язык программирования - это прежде всего Язык.

Прежде чем приступить к изучению языка морально будьте готовы к тому что это процесс не быстрый. Чтобы вы конкретно представили что такое изучение языка программирования - это почти то же самое как изучение иностранного языка. Все в школе изучали иностранный язык и все прекрасно понимают, чтобы знать язык недостаточно просто выучить перевод слов по словарю с иностранного на родной язык. Например, фразу "Я знаю английский язык" может сказать человек, который в состоянии: прочитать текст на английском языке, перевести, составить предложение без ошибок, выразится устно. Перевод иностранных слов без умения грамотно составить предложение (читай синтаксис языка программирования) точно не означает знание иностранного языка. Поэтому, Урок 1 - относитесь к изучению языка программирования так, как относились бы к изучению иностранного языка с целью полностью его освоить.

2. Практика.

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

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

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

1. Что из себя представляет язык 1с.
2. Методы, переменные, другие конструкции языка.

Что из себя представляет язык 1с.

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

1. модуль приложения

2. общие модули

3. модуль объекта

4. модуль формы.

В разных видах модулей код исполняется на разных этапах выполнения программы. В модуле приложения код может исполняться при запуске программы или при закрытии, в общих модулях во время вызова из других модулей, в модуле объекта – при действиях над объектом (создание, изменение, удаление), в модуле формы – во время действий над формой. Что можно использовать при написании кода:
Переменные, объекты и их реквизиты, методы созданные нами (программистами 1С) и системные (встроенные в платформу), а также конструкции встроенного языка.

Методы, переменные, конструкции языка

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

  • ЭтоПеременная
  • _ЭтоПеременная
  • _Это1_Переменная

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

Регистр букв в коде не учитывается, т.е. переменные «Переменная1 » и «пЕрЕмЕннАя1 » при выполнения кода для программы являются одинаковыми. Желательно чтобы названия переменных были осмысленные. Это улучшает читабельность кода.

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

Например : Объект «Товарный чек № 00018 от 01.01.2005».
Мы можем отличить этот товарный чек от других товарных чеков по данным реквизитов, которые он содержит. Это реквизит «Номер» со значением «00018»(тип строка ) и реквизит «Дата»(тип дата ) со значением «01.01.2005». Единственное что, мы могли определить по объекту, не зная значений его реквизитов - это его тип «Товарный чек».
Методы являются маленькими и как правило законченными инструкциями.

Например , системный метод «ТекущаяДата () » из названия понятно, что он будет возвращать текущую дату компьютера. Или допустим можно создать метод «СтрокаСодержитЦифру (ПроверяемаяСтрока ) » который вернет ответ Истина или Ложь , здесь мы в скобках передаем параметры т.е. данные оперируя которыми метод должен сделать какие-то действия. Оба рассмотренных метода являются функциями, также в языке есть методы-процедуры. Отличие между ними одно Функция обязательно должна возвращать значение.

Другие конструкции языка (операторы, коллекции значений и т.д.) - это зарезервированные системой 1с слова которые помогают производить манипуляции над данными.

Например :

Для каждого ЭлементКоллекции Из ИмяКоллекции Цикл КонецЦикла;

В примере приведена конструкция перебора элементов коллекции. Эта конструкция называется цикл . Большинство типов объектов, а также их реквизитов являются коллекциями, которые можно перебирать вышеуказанным способом и обращаться к элементу коллекции указывая его индекс (ИмяКоллекции [ 0] ). Все коллекции начинаются с элемента, у которого индекс = 0.