1C 엔터프라이즈 언어로 프로그래밍 8. 변수를 사용한 사이클 - 사이클 카운터

일반적으로 프로그래밍 언어를 배우는 것은 첫 번째 작성 예제로 시작됩니다. 가장 간단한 프로그램(“안녕하세요!”). 이는 기본 구문 구조를 사용하여 작업을 명확하게 보여주기 위해 수행됩니다. 우리는 새로운 개발 환경을 탐색할 때 일반적으로 받아들여지는 자료 제시 방식에 예외를 두지 않을 것이므로 첫 번째 기사도 같은 관점에서 보아야 합니다. 여기에서는 1C:Enterprise 8 플랫폼 프로그래밍과 관련된 다음 질문에 대한 답변을 자세히 분석합니다.

  • 내장된 1C 언어로 프로그램 코드를 작성하려면 어디서 어떤 도움을 받아야 합니까?
  • 소프트웨어 모듈이란 무엇이며, 이를 사용하는 규칙은 무엇입니까?
  • 변수란 무엇이며, 어떻게 작업하고, 어떻게 선언해야 합니까?
  • 어떤 비교, 할당 및 조건 연산자가 있으며 어떻게 사용합니까?
  • 부울 연산 - 부울 연산이란 무엇이며 어떻게 사용하나요?
  • 루프가 필요한 이유와 루프를 사용하는 방법은 무엇입니까?

이 기사는 아직 1C:Enterprise 8 플랫폼 개발에 익숙하지 않지만 1C에서 프로그래밍하는 방법을 배우고 싶은 모든 사람들에게 유용할 것입니다.

적용 가능성

이 자료는 1C:Enterprise 8 플랫폼, 에디션 8.2와 관련이 있습니다. 그리고 8.3.

변수 및 연산자

이 기사에서는 내장 언어 1C:Enterprise 8에 대해 연구하기 시작합니다. 실행 가능한 코드는 프로그램 모듈에 포함되어 있습니다.

다양한 이벤트를 처리하도록 설계된 꽤 많은 모듈이 있습니다.

따라서 사용자의 시스템 로그인은 하나의 모듈에서 처리되고, 사용자의 특정 버튼 클릭 처리는 완전히 다른 모듈에서 처리됩니다.

따라서 각 모듈은 특정 지점의 구성 동작을 설명합니다. 모듈에는 우선 변수를 설명하는 섹션이 포함되어 있습니다. 저것들. 모듈에서 일부 변수를 선언할 수 있습니다.

앞으로는 이 모듈의 절차와 기능에서 사용될 수 있습니다. 변수가 내보내기 키워드로 정의되면 외부에서 사용할 수 있습니다. 이 모듈의. 변수 선언 줄의 예:

Perem 창고, 부서, 점주 수출;

변수 선언 뒤에는 프로시저와 함수 섹션이 있습니다.

그 뒤에는 이 모듈에 액세스할 때 실행될 기본 프로그램의 섹션이 있습니다.

예를 들어, 메인 프로그램의 한 섹션에서 변수를 초기화할 수 있습니다. 몇 가지 초기 값을 제공하십시오.

상태=1;
NewExpression=2;
결과=3;

모듈은 필요한 다양한 작업을 수행하는 다양한 연산자의 조합으로 생각할 수 있습니다.

연산자 구분 기호는 ";"입니다. (세미콜론). 이 표시는 성명서의 끝을 표시합니다. 저것들. 연산자는 다음과 같이 작성할 수 있습니다.

결과=100X200
+400
-600;

명령문이 몇 줄에 있는지는 중요하지 않습니다.

물론, 연산자를 한 줄에 배치하는 것이 더 편리하고 명확한 경우가 많지만 때로는 연산자가 꽤 길 때도 ​​있습니다(줄 수가 합리적으로 수십 개에 달할 수 있음).

프로시저와 같은 특정 구조의 최종 명령문에는 세미콜론을 사용할 수 없습니다. 저것들. 다음 코드가 작동합니다.

프로시저 CalculateValue()

초기값 = 100;
중간값 = 초기값/5;
최종값 = 초기값+중간값

절차 종료

그러나 최종문에는 세미콜론을 사용하는 것이 좋습니다. 시간이 지남에 따라 건설이 계속되고 최종 진술이 더 이상 최종적이지 않을 수도 있습니다. 우리는 이 상황을 구체적으로 모니터링해야 할 것입니다.

변수는 모든 데이터 유형의 일부 값을 저장하도록 설계되었습니다. 처리를 위한 정보의 중간 저장에 사용됩니다.

어떤 작업을 수행하는 거의 모든 소프트웨어 모듈에는 다양한 변수가 있습니다. Platform 1C:Enterprise 8에서 값으로 변수를 입력하는 것은 소프트합니다.

예를 들어, 변수는 한 데이터 유형의 값을 포함할 수 있고 그 다음에는 몇 줄 뒤에 다른 유형의 값을 포함할 수 있습니다.

생성됨 = 거짓;
생성됨 = True;
생성됨 =100;

처음 두 연산자에서 변수 값은 부울이고 세 번째 연산자에서는 다음과 같이 변경됩니다. 숫자 값. 저것들. 입력은 주어진 변수에 할당된 값에 따라 달라집니다.
변수는 두 가지 방법으로 설명할 수 있습니다.

  • 암시적 방법(대입 연산자의 왼쪽에 있는 언급은 이 변수를 설명합니다. Variable이라는 단어로 변수에 대한 사전 설명이 없습니다. 즉, 변수를 설명하기 위한 특별한 섹션이 없습니다).
  • 변수에 대한 명시적인 설명(변수 제어 데이터;) 예를 들어, 이후에 이 변수를 함수에 전달하려는 경우 변수의 명시적 선언이 사용됩니다.

변수의 이름은 클래식 식별자 설명을 사용하여 지정됩니다. 식별자는 문자, 숫자, 밑줄로 구성됩니다. 식별자는 문자나 밑줄로 시작해야 합니다.

이 경우 변수 이름은 해당 변수의 의미를 반영해야 합니다. 단일 문자 변수 이름(예: A, B, C)은 나쁜 예입니다. 변수의 본질을 반영하지 않습니다.

올바른 변수 이름의 예: Counter(루프의 변수 증가), Counterparty. 변수 이름에 여러 단어가 포함된 경우 명확성을 위해 각 새 단어는 대문자로 시작해야 합니다.

변수 이름에는 Procedure, Function, Loop, EndLoop 등의 예약어를 사용할 수 없습니다. (이러한 구조는 프로그램 모듈에서 빨간색으로 강조 표시됩니다).

예약어는 내장된 언어 연산자이며 그 수가 상당히 적습니다. 그들 모두는 구문 도우미.

데이터 유형은 예약어(예: Array, Boolean, True, False)가 아닙니다. 시스템은 이러한 변수 이름을 올바르게 받아들입니다.

글쓰기를 위해 프로그램 코드경우는 중요하지 않습니다. 예를 들어, Procedure라는 단어는 대문자나 소문자로 쓸 수 있습니다. 또한, 한 단어 내에서 큰 글자와 작은 글자가 번갈아 사용될 수 있습니다.

이는 플랫폼에 중요하지 않습니다. 단, 예의범절에 따라 단어의 시작은 대문자로 하고, 그 외의 글자는 모두 소문자로 쓴다.

언어에 관해서. 러시아어, 영어 또는 두 언어의 조합을 사용할 수 있습니다. 누군가에게 편리하다면 영어를 사용하여 안전하게 프로그램 코드를 작성할 수 있을 뿐만 아니라 러시아어와 영어를 결합할 수도 있습니다. 이는 플랫폼에 중요하지 않습니다.

많은 타이틀 영어기억하기가 꽤 어렵습니다. 두 가지 언어를 조합하여 사용할 경우 프로그램 코드의 가독성이 저하됩니다.

부울 연산

비교 연산자는 종종 True 또는 False를 반환하는 부울 논리를 사용합니다.

예를 들어, 조건부 연산자에서 다음을 비교할 수 있습니다. 이벤트 = 판매인 경우 알고리즘은 한 분기를 따르고(즉, 값이 True인 경우) 조건이 False이면 알고리즘의 다른 분기가 실행됩니다.

조건은 매우 복잡할 수 있으며 결합될 수 있으며 AND, OR 및 NOT 연산자가 사용됩니다. 따라서 AND 연산자의 경우:

진실과 진실 = 진실;
참과 거짓 = 거짓;
거짓과 참 = 거짓;
거짓 AND 거짓 = 거짓.

OR 연산자의 경우 피연산자 중 하나가 True이면 충분하며 조합 값은 True가 됩니다. False 값은 두 피연산자가 모두 False인 경우에만 얻어집니다.

NOT 연산자는 단순히 현재 값을 반전합니다(False를 True로, True를 False로).

이러한 연산자의 조합을 사용하면 매우 복잡한 조건을 구축할 수 있습니다. 복잡한 조건문을 작성할 때는 우선순위를 고려해야 합니다.

NOT 연산자의 우선순위가 가장 높고 그 다음은 AND 연산자, 그 다음은 OR 연산자입니다. 괄호 안에 있는 내용은 무엇이든 우선순위가 가장 높으며 먼저 실행됩니다.

예를 들어, 주어진 표현식의 작업에 대한 우선순위(실행 순서)를 설정해 보겠습니다.

NOT(조건1 OR 조건2) AND 조건3 OR ​​조건4
1.결과1 = (조건1 OR 조건2);
2. 결과2 = 결과1 아님;
3. 결과3 = 결과2 AND 조건1;
4. 결과 = 결과3 또는 조건4;

변환 규칙이 있습니다:

NOT(조건1 OR 조건2) = 조건1이 아니고 조건2가 아닙니다.

그러나 항상 표현을 단순화하려고 노력해서는 안 됩니다. 왜냐하면 종종 논리적으로 확장된 표현이 읽기 더 쉽기 때문입니다.

할당 연산자

할당 연산자는 철자가 동일하더라도 같음 연산자와 혼동해서는 안 됩니다.

할당 연산자의 원리는 왼쪽 값(왼쪽에 있는 변수)에 등호 오른쪽에 있는 값을 할당하는 것입니다. 예를 살펴보겠습니다:

변수1 = 변수2 = 변수3;

Variable1에는 부울 논리의 동등 값이 할당됩니다. 즉, Variable2 = Variable3이면 True이고, 그렇지 않으면 False입니다.

초보 프로그래머의 위치를 ​​테스트할 때 자주 사용되는 작업은 두 변수의 값을 바꾸는 것입니다.

이 문제는 할당 연산자를 사용하여 해결되며 두 가지 솔루션이 있습니다.

임시 변수를 사용하는 솔루션 #1:
임시변수 = 변수1;
변수1 = 변수2;
변수2 = 임시변수;

해결책 #2:
변수1 = 변수1 + 변수2;
변수2 = 변수1 – 변수2;
변수1 = 변수1 – 변수2;

조건부 연산자

그러한 연산자 If가 있으며 그 후에는 일부 조건을 설명해야 합니다(조건 자체가 상당히 클 수 있음). 조건 뒤에는 Then 단어와 실행할 명령문이 옵니다.

그 뒤에 Else 키워드와 일련의 다른 문이 올 수 있습니다. 조건이 여러 개인 경우 일련의 키워드를 사용할 수 있습니다. 그렇지 않으면(아래 예 참조). 전체 구성은 키워드로 끝나야 합니다. 종료, 그 뒤에 세미콜론이 옵니다.

단순 및 다중 조건 외에도 조건부 연산자의 축약형이 있습니다. ?(Condition, Expression1, Expression2);

조건이 참이면 실행된다. 표현식1, 그렇지 않으면 - 식2. 예제 코드: ExpensiveProduct = ?(Product.Price>100000, True, False);

실제로는 값을 비교 기록하는 대신 진실 (거짓말하다) 유형:

변수 = True이면
그리고
변수 = False인 경우

실제로 사용되는 동등한 표기법은 다음과 같습니다.

변수라면
그리고
가변적이지 않다면

순환 연산자

모든 유형의 루프에 대해 다음을 사용하여 이 루프의 끝을 명시적으로 표시해야 합니다. 예어 사이클의 끝. 주기에는 여러 가지 유형이 있습니다.

카운터에 루프– 반복 횟수가 고정된 사이클입니다. 사이클 종료 조건이 한계값을 초과했습니다. A! 값 계산을 위한 사용 예!

A = 5;
계승 = 1;
카운터의 경우 = 1사이클
계승 = 계승 * 카운터;
엔드사이클;

조건별 루프– 주어진 루프의 조건이 참인 한 충족됩니다. 예:

남은 금액 = 1000;
추가 제품 가격 = 243;
수량 = 0;
남은 양>0주기 동안
수량 = 수량+1;
남은 금액 = 남은 금액 - 수량 * 추가 ​​제품 가격;
추가 상품 가격 = 추가 상품 가격 * 0.8;
사이클의 끝
수량 = 수량-1;

이 주기는 각 제품 단위를 구매한 후 이전 가격에 0.8을 곱한 경우 특정 금액(1000루블)으로 구매할 수 있는 제품 단위 수를 계산합니다. 제품의 원래 가격은 243 루블입니다.

초보자가 이러한 유형의 루프를 사용할 때 발생하는 오류의 예로는 루프 조건이 처음에는 true이지만 루프 자체 내에서는 어떤 식으로든 변경되지 않는 영구 루프가 있습니다.

컬렉션을 순환합니다(모든 사람의 또 다른 이름).

플랫폼에는 상당히 많은 컬렉션이 있습니다(특정 유형의 요소를 포함하는 컨테이너입니다).

특별한 유형의 루프를 사용하여 컬렉션의 요소를 반복할 수 있습니다.

예를 들어, 숫자 배열이 있으면 배열의 모든 요소의 합계를 계산해야 합니다.

금액 = 0;
배열 루프의 각 요소에 대해
합계=합계+항목;
엔드사이클;

사이클에는 다음이 있습니다. 특수 연산자: 계속하다그리고 중단.

주기의 어느 시점에서 특정 루프의 추가 연산자 실행이 의미가 없게 되면 해당 연산자를 사용하여 루프의 시작 부분으로 돌아가 다음 루프를 구성합니다. 계속하다.

운영자 중단루프 조건이 true인 경우에도 루프 실행을 종료할 수 있습니다.

이것으로 내부 1C 언어 개발에 대한 첫 번째 지식을 마칩니다.

헬로 월드는 어떻습니까? 우리는 아직 그것을 쓰지 않았어요, 그렇죠? 예, 하지만 스스로 하는 것을 방해하는 것은 없습니다. 왜냐하면... 지식은 이미 충분합니다. 그래도 문제가 해결되지 않으면 여기를 살펴보세요.

1C:Enterprise 프로그램의 내장 프로그래밍 언어는 1C:Enterprise 회계 자동화 프로그램 제품군에서 사용되는 프로그래밍 언어입니다. 이 언어는 미리 컴파일된 고급 도메인별 언어 클래스에 속합니다. 실행 환경은 1C:Enterprise 플랫폼(1C:회계 포함)입니다. 시각적 개발 환경은 "Configurator"라고 하며 1C:Enterprise 패키지의 일부입니다.

이 언어는 러시아어와 영어로 명령 구문을 지원합니다. 버전 1C:7.0, 1C:7.5 및 1C:7.7의 내장 언어 방언은 사소한 예외를 제외하고 상향식과 호환됩니다. 1C:7x용 방언은 주요 연산자 측면에서 1C:8x와 호환되지만 응용 프로그램 개체와 작동하는 방식이 크게 다르기 때문에 1C:7x 플랫폼에서 1C로 코드를 전송하는 것은 사실상 의미가 없습니다. :8x 플랫폼.

구문에서 1C:8 프로그래밍 언어는 다음과 유사합니다. 시각적 언어기초적인. 플랫폼은 해당 애플리케이션 영역의 일반적인 문제를 해결하도록 설계된 고정된 기본 클래스 세트를 제공합니다. 일부 기본 클래스:

  • 문서,
  • 문서 기록,
  • 끊임없는,
  • 치료,
  • 보고서,
  • 옮기다,
  • 계정 목록,
  • 디렉토리 등

이러한 기본 클래스에서 시각적 구성 도구를 사용하여 파생 클래스를 원하는 만큼 만들 수 있습니다. 게다가 프로그래밍 방식으로 결정할 방법도 없습니다. 새로운 수업. 클래스 상속에서는 명시적인 단계만 허용됩니다. 파생 클래스의 개체는 일반적으로 데이터베이스 레코드 또는 레코드 집합입니다. 1C 언어에서는 메타데이터 개체라고 하며 소위 "메타데이터 트리"를 형성합니다.

이러한 메타데이터 개체의 유형은 비즈니스 프로세스, 문서, 작업, 처리, 보고서, 계산 유형 및 특성 계획, 계정 차트, 누적 기록, 계산 및 정보, 디렉터리입니다. 1C:Enterprise 언어로 작성된 프로젝트를 구성이라고 합니다. 1C 및 해당 구성의 판매, 구현 및 유지 관리는 1C 파트너 회사의 주요 상업 활동입니다.

또한 기본 클래스를 확장하는 추가 구성 요소도 있습니다. 자유로운 창작그리고 변화. 그러나 이러한 구성 요소는 개발자가 사용하도록 권장되지 않습니다. 실제로, 이들의 사용은 다음을 포기하는 것을 수반합니다. 기술적 지원 1C 회사 및 파트너로부터.

예를 들어, 1C++ 구성 요소는 완전한 OOP를 사용하여 언어를 확장합니다. 이를 사용하면 1C 구성 가능성이 확장됩니다. 이것은 공개 GNU GPL 라이센스에 따라 배포되는 무료 제품입니다.

1C 및 기타 소프트웨어 제조업체의 독점 모듈을 사용하지 않는 무료 2C 프로젝트도 있습니다. 이것은 GNU GPL 라이센스에 따라 무료로 배포되는 처음부터 다시 작성된 1C와 유사한 시스템의 확장 가능한 코어입니다. 레지스터 및 디렉토리와 같은 "내장 개체" 1C는 애플리케이션 프로그래머가 재정의할 수 있는 클래스입니다.

처음에 1C 언어는 "odynesik"으로 발음되는 "1Sik"이라는 작업 이름을 가졌습니다. 그러나 공식 소스에서는 사용이 빠르게 사라졌습니다. 이 내장 언어가 문서에서 언급되면 이제 "1C 프로그래밍 언어"라고 부르는 것이 일반적입니다. ~에 이 순간구두 발음에 편리한 자체 이름이 없습니다. 1C:Enterprise 패키지를 논의하는 맥락에서 간단히 "내장 언어"라고 부르는 경우가 많습니다.

프로그래밍 언어를 배우는 초보자를 위한 전통적인 인사말을 표시하는 예제 프로그램으로 리뷰를 완료하고 싶습니다.

Report("안녕하세요, 월드!");

이 코드는 1C:Enterprise 버전 7.7에서 작동합니다.

21.12.2010

이전 출판물:

프로그래밍을 시작하려는 모든 사람들에게 모든 프로그래밍 교과서에서 언급되지 않은 몇 가지 간단한 사항을 설명하고 싶지만 처음부터 1C 언어로 프로그래밍을 마스터하려는 사람들은 이에 대해 알아야 합니다.

1. 프로그래밍 언어는 우선 언어입니다.

언어 학습을 시작하기 전에 이 과정이 빠르지 않다는 사실을 정신적으로 준비하십시오. 프로그래밍 언어를 배우는 것이 무엇인지 구체적으로 상상할 수 있도록 외국어를 배우는 것과 거의 같습니다. 우리는 학교에서 모든 것을 공부했습니다. 외국어그리고 언어를 아는 것만으로는 사전에 있는 단어를 외국어에서 모국어로 번역하는 것만으로는 충분하지 않다는 것을 모두가 완벽하게 이해합니다. 예를 들어, "I can English"라는 문구는 영어로 텍스트를 읽고, 번역하고, 오류 없이 문장을 작성하고, 구두로 표현할 수 있는 사람이 말할 수 있습니다. 문장을 올바르게 구성하는 능력(프로그래밍 언어의 구문을 읽는 능력) 없이 외국어를 번역한다고 해서 확실히 외국어에 대한 지식을 의미하는 것은 아닙니다. 따라서 레슨 1 - 프로그래밍 언어 학습을 외국어 학습과 동일한 방식으로 처리하여 완전히 마스터하는 것을 목표로 합니다.

2. 연습하세요.

확실히 당신은 외국어를 잘 아는 일부 사람들이 그것을 사용하는 연습을 하지 않고 점차 그것을 잊어버렸다는 것을 들어보았을 것입니다. 1C에서 프로그래밍의 기초를 공부한 후, 이전에 습득한 지식을 잃지 않고 점차적으로 더 복잡한 작업을 수행하기 위해 간단한 작업을 수행하는 연습을 매일 수행하세요. 당신의 기술을 향상 시키십시오.

동기가 있으면 모든 사업이 더 잘 진행됩니다.미래의 당신에게 프로그래밍 기술은 금전적인 보상입니다. 잘했어요, 쉬운 소셜 엘리베이터 등 1C Enterprise 소프트웨어 제품이 소련 이후 공간에서 매우 인기가 있다는 것은 비밀이 아닙니다. 10개 회사 중 8개 회사는 1C 프로그램을 사용하여 비즈니스 활동을 기록합니다. 따라서 프로그램을 유지 관리하고 수정할 관리자 또는 1C 프로그래머가 필요합니다. 당연히 그러한 시장에는 1C 전문가가 필요합니다. 때때로 회사는 자기 개선을 조건으로 적절한 급여를 받기 위해 프로그래밍 기술을 갖춘 자격이 그리 높지 않은 직원을 고용할 준비가 되어 있습니다. 그리고 상업 회사나 프랜차이즈에서 일하고 싶지 않더라도, 자격을 갖춘 프로그래머라면 프리랜서 교환 작업을 찾거나 맞춤형 프로젝트를 수행할 수 있습니다. 일반적으로 1C 프로그래머는 일하지 않고 방치되지 않습니다.

소개 부분과 함께 프로그래밍의 기본우리는 끝났습니다. 나머지 자료는 1C 언어 코드의 기본을 익히는 데 전념합니다. 몇몇 부분은 너무 간략하게 설명할 수도 있겠지만, 이 자료의독자가 언어 구문에 완전히 몰입하는 것이 아니라 모든 지식이 매달릴 사용자 머리에 특정 뼈대(기반)를 형성하기 위해 전문가가 1C 언어 아키텍처에 처음 익숙해지는 것입니다. 미래에.

이 기사에서는 다음과 같은 1C 프로그래밍 언어 구성을 고려할 것입니다. 사이클.

루프를 구성하는 방법에는 세 가지가 있습니다.

  1. 논리 표현식을 사용하여 루프(다음까지 실행됨) 논리식진실)
  2. 컬렉션을 통한 반복

각 방법을 살펴보겠습니다.

루프 카운터 변수를 사용한 루프

통사론:

을 위한< Переменная> = < НачальноеЗначение>에 의해< КонечноеЗначение>CycleEndCycle;

루프를 구성하는 이 방법을 사용하면 카운터 변수에 특정 초기 값이 할당되고 카운터 변수의 값이 지정된 최종 값보다 작거나 같을 때까지 실행됩니다.

반복할 때마다 카운터 값이 1씩 증가합니다. 다음은 이러한 루프의 가장 기본적인 예입니다.

카운터 = 0 ~ 1000 Cycle EndCycle의 경우;

다른 많은 프로그래밍 언어와 달리 1C는 사이클의 단계를 지정하는 기능을 제공하지 않습니다. 필요한 경우 루프 내부의 카운터에 원하는 값을 추가하여 수행할 수 있습니다.

카운터의 경우 = 0 ~ 1000 사이클 카운터 = 카운터 + 10; 엔드사이클 ;

부울 표현식을 사용한 루프

통사론:

안녕< ЛогическоеВыражение>CycleEndCycle;

거부 = 거짓 ; GeneratorRandom = NewRandomNumberGenerator(1) ; 실패주기까지 RandomNumber = GeneratorRank. 난수(0, 10); RandomNumber > 5이면 Failure = True ; 종료If ; 엔드사이클 ;

즉, 5보다 큰 난수가 생성될 때까지 루프가 실행됩니다.

컬렉션을 통한 반복

1C 프로그래밍 언어에는 컬렉션과 같은 것이 있습니다. 객체 내에 포함된 요소 집합입니다.

배열, 값 테이블, 쿼리 결과의 선택 항목, 메타데이터 등 컬렉션과 같은 개체를 포함할 수 있습니다. 이 개념은 매우 일반적이지만 구문 도우미의 모든 단계에 나타납니다. 컬렉션의 모든 요소에 대해 일부 작업을 수행하기 위해 순차적으로 반복해야 하는 작업에 자주 직면합니다. 이에 대한 구문 구조는 다음과 같습니다.

각각< ЭлементКоллекции>에서< Коллекция>CycleEndCycle;

여기 <ЭлементКоллекции> 컬렉션의 요소가 순차적으로 배치되는 변수입니다. 그리고 루프 내부에서는 그에 따라 처리됩니다.
예를 들어, 값 테이블의 행을 순회하는 루프를 제공하겠습니다. 라고 부르자 테이블제품그리고 다음과 같이 보입니다:

이 테이블을 반복적으로 살펴보고 각 행에 대해 제품 이름과 가격이 포함된 메시지를 표시합니다.

테이블 제품 주기 이름의 각 테이블 행에 대해 = 테이블 행. 이름; 가격 = TableRow. 가격; 메시지 = 새 MessageToUser; 메시지. 텍스트 = "제품명: "

실제로 첫 번째 옵션, 즉 카운터를 사용하는 루프를 사용하여 동일한 작업을 수행할 수 있습니다.

행 수 = TableProducts. 수량() ; 카운터 = 0 행 수 기준 - 1 주기 테이블 행 = TableProducts[ 카운터] ; 이름 = 테이블 행. 이름; 가격 = TableRow. 가격; 메시지 = 새 MessageToUser; 메시지. 텍스트 = "제품명: "+ 이름 + "; 가격: " + 가격; 메시지. 신고하기() ; 엔드사이클 ;

그러나 우리가 볼 수 있듯이 컬렉션 요소 순회를 사용하는 것이 훨씬 더 간단하고 편리합니다.

보조 운영자

어떤 것에 따라 루프 실행을 중단하거나 다음 반복으로 넘어가야 하는 상황이 종종 있습니다.

중단은 연산자를 사용하여 수행됩니다. 중단. 이 경우 루프 실행이 중단되고 루프를 따르는 언어 구성으로 제어가 전달됩니다. 다음 반복으로 이동해야 하는 경우 연산자를 사용해야 합니다. 계속하다. 그런 다음 제어가 루프의 시작 부분으로 전달됩니다. 작은 예를 들어 설명해 보겠습니다.

카운터 = 0인 경우 100사이클씩 카운터 = 0인 경우 계속 진행합니다. 종료If ; 카운터 = 4이면 중단합니다. 종료If ; 결과 = 1 / 카운터; 메시지 = 새 MessageToUser; 메시지. 텍스트 = 문자열(결과) ; 메시지. 신고하기() ; 엔드사이클 ;

우리는 0을 건너뜁니다. 왜냐하면 0으로 나눌 수 없습니다. 그리고 변수의 값에 대해 루프가 총 5번 실행됩니다. 카운터 0에서 4까지

1. 1C 언어란 무엇입니까?
2. 메소드, 변수, 기타 언어 구성.

1C 언어는 무엇입니까?

모든 프로그래밍 언어는 필요한 작업을 수행하도록 프로그램에 지시하도록 설계되었습니다. 코드 작성은 지침 작성과 같습니다. 그 안에서 수행할 작업과 순서를 지정합니다. 모든 실행 가능한 구성 코드는 모듈에만 위치할 수 있습니다. 주요 4가지 유형을 고려해 보겠습니다.

1. 애플리케이션 모듈

2. 공통 모듈

3. 객체 모듈

4. 모듈을 형성합니다.

다양한 유형의 모듈에서 코드는 프로그램 실행의 다양한 단계에서 실행됩니다. 애플리케이션 모듈에서는 프로그램이 시작되거나 닫힐 때, 공통 모듈에서 다른 모듈의 호출 중, 개체 모듈에서 - 개체에 대한 작업(생성, 수정, 삭제) 중, 양식 모듈에서 - 실행 중에 코드가 실행될 수 있습니다. 양식에 대한 작업. 코드를 작성할 때 사용할 수 있는 것:
변수, 개체 및 해당 세부 사항, 우리(1C 프로그래머)가 만든 메서드 및 시스템 메서드(플랫폼에 내장됨) 및 내장된 언어 구성입니다.

메소드, 변수, 언어 구성

변수사용자 세션 중에 데이터를 저장하는 데 사용됩니다. 변수는 문자(러시아어 또는 영어) 또는 밑줄 "_"로 시작하는 단어로 문자, 숫자, 밑줄로 구성됩니다.
예를 들어 :

  • 이것은 변수입니다
  • _이것은 변수입니다
  • _이것은 1_변수입니다

글자가 러시아어와 영어일 수 있다는 사실은 다른 언어의 비슷한 디자인의 글자를 사용할 때 잔인한 농담이 될 수 있습니다.

코드의 문자 대소문자는 고려되지 않습니다. 프로그램의 코드를 실행할 때 변수 "Variable1"과 "VARIABLE1"은 동일합니다. 변수 이름은 의미가 있는 것이 바람직합니다. 이렇게 하면 코드의 가독성이 향상됩니다.

개체 및 세부정보 데이터 작업 중에 읽고 변경됩니다.
객체는 특정 특성에 따라 그룹화된 데이터 집합입니다. 일반적으로 정보 기반그것은 문서, 데이터 목록, 물질 세계의 열거를 반영합니다. 개체 세부정보는 기본적으로 데이터를 저장합니다.

예: "2005년 1월 1일자 판매 영수증 번호 00018" 개체.
이 판매 영수증은 포함된 세부 정보를 기준으로 다른 판매 영수증과 구별할 수 있습니다. 이는 "00018" 값을 갖는 "숫자" 속성입니다( 문자열을 입력하세요 ) 및 '날짜' 속성( 날짜를 입력하세요 ) 값은 "01/01/2005"입니다. 세부 사항의 값을 알지 못한 채 개체에서 확인할 수 있는 유일한 것은 "판매 영수증" 유형이었습니다.
행동 양식작고 일반적으로 완전한 지침입니다.

예를 들어, 시스템 메소드 "CurrentDate ()"는 이름에서 반환할 것이 분명합니다. 현재 날짜컴퓨터. 아니면 메소드를 만들 수 있다고 가정해 보겠습니다. 문자열포함번호(검사 중인 문자열)" 그러면 답변이 반환됩니다. 진실또는 거짓말하다, 여기서는 괄호 안에 매개변수를 전달합니다. 메소드가 일부 작업을 수행해야 하는 작동 데이터입니다. 고려된 두 가지 방법 모두 함수이며 언어에도 프로시저 방법이 있습니다. 둘 사이에는 한 가지 차이점이 있는데, 함수는 값을 반환해야 한다는 것입니다.

기타 언어 구성 (연산자, 값 모음 등)은 데이터 조작을 돕기 위해 1C 시스템에서 예약된 단어입니다.

예를 들어 :

컬렉션 이름 Cycle EndCycle의 각 컬렉션 요소에 대해;

이 예에서는 컬렉션의 요소를 반복하기 위한 디자인을 보여줍니다. 이 디자인은 이렇게 불린다. 주기 . 대부분의 개체 유형과 해당 세부 정보는 위의 방식으로 반복할 수 있고 해당 인덱스(CollectionName[0])를 지정하여 컬렉션의 요소에 액세스할 수 있는 컬렉션입니다. 모든 컬렉션은 인덱스 = 0인 요소로 시작합니다.