Главная Материалы Язык 1С: общие конструкции встроенного языка

Язык 1С: общие конструкции встроенного языка

Главная фишка языка 1С - весь программный код пишется на русском языке! Цветовое оформление в примерах полностью соответствует раскраске программного кода в среде 1С: Предприятие 8.

КОНСТРУКЦИЯ ЯЗЫКА 1С ПРИМЕЧАНИЕ
//Это комментарий Так оформляются комментарии. Комментарий - это подсказки, пометки разработчика, которые помогают разобраться или вспомнить логику работы программного кода. Каждая новая строка комментария должна начинаться с символов //.
   
Перем ФИО; Явное объявление переменной. ФИО - имя переменной.
   
А = 3; Переменную можно не объявлять явно. При первом присвоении значения система создает данную переменную.
   
ЭтоЧисло = 23.5+12*2; Переменной ЭтоЧисло присваивается числовое значение.  С данными числового типа можно выполнять арифметические операции: сложение, вычитание, умножение и деление. В качестве разделителя целой и дробной части используется точка! 
   

А = -0.123

Числовые значения могут быть отрицательными.
   

А = (2+7) * 3;   // в результате А=27

 

В = 2 * ((2+7) - 4); // в результате В = 10
 

Приоритет выполнения арифметических операций:

А = Сначала вычисляем 2 + 7, затем полученное значение умножаем на 3;

В = Сначала вычисляем 2 + 7, затем от полученного значения отнимаем 4, затем полученное значение умножаем на 2.

   
ЭтоСтрока = "Пугачева"; Переменной ЭтоСтрока присваиваем строковое значение. Значение строкового типа пишется в кавычках.
   

ФИО = "Пугачёва" + " " + "Алла" + " "+"Борисовна";

// результат: ФИО = "Пугачёва Алла Борисовна"

Сложение строк. Символ " " мы прибавляем, чтобы между фамилией, именем и отчеством были пробелы. Вторая строчка кода это просто комментарий.
   
ДатаОтчета = '2013.01.01'; Переменная, которая хранит дату. Значение типа Дата записывается в одинарных кавычках.
   
ЧислоСекунд = '2013.01.02' '2013.01.01';
// ЧислоСекунд = 86400
Даты можно вычитать одну из другой. В результате получим разницу между датами, измеренную в секундах. В сутках 86 400 секунд (60 сек * 60 мин * 24 ч).

НоваяДата = '2013.01.01'+86400;
//НоваяДата = '2013.01.02'
К дате можно прибавлять и вычитать число. В результате к дате либо прибавится, либо отнимется число секунд.
   
Процедура РассчитатьЦену (Товар)
КонецПроцедуры
Простая процедура. Между словами Процедура и КонецПроцедуры записывается текст процедуры. 
   
Функция РассчитатьНалог(Сотрудник, НекаяДата)
   Возврат Налог;
КонецФункции
Функция должна возвращать результат в место ее вызова.
   
Если Доход > 20000 Тогда
    Результат = "Жить можно";
Иначе
    Результат = "Так жить нельзя!";
КонецЕсли;
Простое условие. После слова КонецЕсли должна быть точка с запятой, потому что так заканчивается оператор Если.
   

Результат = ?(Доход > 20000, "Жить можно ""Так

жить нельзя!");

Сокращенное Если. Краткая запись предыдущего простого условия.
   
Если Доход > 20000 Тогда
    Результат = "Жить можно";

ИначеЕсли Доход > 10000 Тогда
    Результат = "Плохо";

Иначе
    Результат = "Так жить нельзя!";
КонецЕсли;

Множественное условие. Если первое условие не выполняется, то проверяется второе. Если ни одно из условий не выполняется то выполняется блок Иначе.
   
Если (Доход > 20000) И (КодКатегории = 2) Тогда
КонецЕсли;
Составное логическое выражение.
   
Пока Номер <= 15 Цикл
КонецЦикла;
Простой цикл Пока (с неизвестным числом повторений). После слова КонецЦикла должна быть точка с запятой, потому что так заканчивается оператор Пока.
   
Для Номер = 1 По 15 Цикл
КонецЦикла;
Простой цикл Для (цикл с известным числом повторений).
   
Для каждого  СтрокаТаблицы Из Таблицы Цикл

КонецЦикла;
 

Еще одна разновидность цикла. Оператор цикла Для каждого предназначен для циклического обхода коллекций значений (табличных частей справочников, документов и т.д.). При каждой итерации цикла возвращается новый элемент коллекции. Обход осуществляется до тех пор, пока не будут перебраны все элементы коллекции.
   
Пока <условие> Цикл
   Если <условие> Тогда
       Продолжить;
   КонецЕсли;
КонецЦикла;
Оператор Продолжить передает управление в начало цикла.
   
Пока <условие> Цикл
   Если <условие> Тогда
       Прервать;
   КонецЕсли;
КонецЦикла;
Оператор Прервать производит досрочный выход из цикла. Управление передается на операторы после цикла.

Количество просмотров: 72972

Комментарии

  • <p>Влад, а есть литература, более подробная по конструкциям встроенного языка? Синтаксис-помощник - штука хорошая, но для начинающих не совсем понятная. Вот, к примеру: как в документе доход при выборе кошелька указать, что цвет кошелька красный (если бы такой реквизит был у объекта кошелек в справочнике кошельки)?</p>
    23 августа 2013 , 20:38
  • <p>Единственная нормальная литература по языку 1С - Это руководство разработчика часть 1 и 2. Эти книги входят в поставку продуктов 1С и их часто называют ЖКК (желто-красные книги) :) Язык изложения тут конечно далек от художественного. Именно поэтому мне и хочется раскрыть тему Языка 1С наиболее доступно, полно и понятно, потому как особых альтернатив нет. Маркетологи 1С вообще от версии к версии все больше говорят, что язык 1С это что-то неважное, что почти всего можно добиться настройками конфигурации. Конечно же это не так :) Реклама есть реклама :) И в любой разработке минимум 90 % времени занимает написание программного кода.</p>
    26 августа 2013 , 10:34
  • Спасибо,читал эти ЖКК,но,видимо,ни чего не понял...Ждем урок:)
    26 августа 2013 , 17:05
  • <h1 class="fn" itemprop="name" style="font-weight: 500; font-size: 29px; overflow: hidden; font-family: Arial, Helvetica, sans-serif;">1С:Предприятие 8.2. Версия для обучения программированию (комплект из 4 книг + 2 CD-ROM)Влад, ты это имел ввиду?</h1>
    29 августа 2013 , 20:45
  • <p>Игорь в любой коробке с продуктом 1С Предприятие идут 4 книги, в том числе и в версии для обучения. Они трудно читаемые, но там описано все по языку 1С и системе вообще. Самый дешевый вариант приобретения этих книг - купить учебную версию. Ввобще после 7.7 объяснения языка 1С стали даже в этих книгах слишком замудренными. Новичкам трудно въезжать во все эти вещи: контекст, коллекции, директивы и т.д. Я и сам уже голову сломал как бы по-проще все эти радости преподнести, чтобы понял каждый :)&nbsp;</p>
    30 августа 2013 , 09:35
  • <p>Эти книги у нас есть на предприятии, могу взять почитать в любое время. Спасибо за старания. Ваши уроки очень доходчивы.</p><p>&nbsp;</p>
    30 августа 2013 , 20:01
  • <p>Я прошел только 1 урок...</p><p>Спасибо большое!</p><p>Все просто, понятно и без воды....</p>
    15 сентября 2013 , 12:26
  • <p>Влад пожалуйста боле детально про то что и как передается в процедурах и функциях и что должны получить пример <span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:14px;"><span style="color:#ff0000;">Процедура</span> <span style="color:#0000ff;">РассчитатьЦену</span> <span style="color:#ff0000;">(</span><span style="color:#0000ff;">Товар</span><span style="color:#ff0000;">)</span><br /><span style="color:#ff0000;">КонецПроцедуры</span></span></span></p><p><span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:14px;"><span style="color:#0000ff;">Товар .....</span></span></span></p><p><span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:14px;"><span style="color:#ff0000;">Функция</span> <span style="color:#0000ff;">РассчитатьНалог</span><span style="color:#ff0000;">(</span><span style="color:#0000ff;">Сотрудник</span><span style="color:#ff0000;">, </span><span style="color:#0000ff;">НекаяДата</span><span style="color:#ff0000;">)</span><br /><span style="color:#ff0000;">&nbsp; &nbsp;Возврат </span><span style="color:#0000ff;">Налог</span><span style="color:#ff0000;">;</span><br /><span style="color:#ff0000;">КонецФункции</span></span></span></p><p><span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:14px;"><span style="color:#0000ff;">Сотрудник</span><span style="color:#ff0000;">, </span><span style="color:#0000ff;">НекаяДата ....</span></span></span></p><p><span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:14px;"><span style="color:#ff0000;">Спасибо. </span></span></span></p><p>&nbsp;</p><p>&nbsp;</p>
    26 сентября 2013 , 17:26
  • <p>Постараюсь!</p>
    27 сентября 2013 , 09:09
  • <p>Скажите пожалуйста можно ли в программе 1С предприятие8. автоматизировать учёт коммунальных услуг. в том числе по счётчику.Примерно так. чтобы отображалась информация: показание счётчика; при введении значения &quot;текущее показание&quot; в графе &quot;расход&quot;- записывалась разность= (показание счётчика-текущее показание счётчика). &quot;расход&quot; х цену(тариф) = сумме. После проведения документа к показанию счётчика &nbsp;прибавлялся вычисленный программой расход. При новом создании документа графа &nbsp;&quot;текущее показание&quot; была свободной.</p>
    19 декабря 2013 , 17:08