1C 8에서 인쇄 가능한 양식 만들기. 데이터베이스에 외부 인쇄 가능한 양식 추가. 외부 인쇄 양식을 베이스에 연결

표준 레이아웃에 따라 수행됨 인쇄된 형태, 개발자가 애플리케이션에 내장한 것입니다(이를 "제공된" 레이아웃이라고 함).

필요한 경우 표준 레이아웃을 변경하고 나중에 개인("사용자 정의") 레이아웃을 기반으로 문서를 인쇄할 수 있습니다. 인쇄된 양식의 레이아웃을 편집하기 위해 로컬 컴퓨터에 업로드할 수 있는 메커니즘이 제공됩니다. 레이아웃 편집은 1C:Enterprise 시스템 응용 프로그램의 로컬 버전에서 수행됩니다(특히 다음을 사용할 수 있습니다). 무료 신청 1C:Enterprise - 파일 작업).


인쇄 가능한 레이아웃을 변경하려면:




인쇄된 양식의 레이아웃 편집이 완료되었으며, 문서 인쇄 시 변경된 레이아웃이 사용됩니다.

이전 인쇄 가능한 레이아웃으로 돌아가려면 버튼을 클릭하세요. 표준 레이아웃 사용. 이 경우 편집된 레이아웃은 서버에 계속 남아 있으며 버튼을 눌러 다시 켤 수 있습니다. 변화.

즐거운 일을 기원합니다!

인쇄된 양식 레이아웃에 회사 로고를 삽입하는 방법은 무엇입니까?

다음은 인쇄된 양식 레이아웃을 편집하는 구체적인 예입니다. 지불 송장, 즉 회사 로고와 같은 이미지를 삽입하는 방법을 고려합니다(이 이미지는 먼저 png 또는 jpg 형식과 같은 그래픽 파일로 준비하고 저장해야 합니다).


따라서 이제 상대방에게 전송하기 위해 준비하는 송장에는 회사 로고가 포함됩니다. 다른 문서에 로고를 추가하려면 해당 문서의 해당 인쇄 양식에 대해 설명된 단계를 반복해야 합니다.

즐거운 일을 기원합니다!

일반 응용 프로그램(Enterprise Accounting 2.0, Salary and Human Resources Management 2.5, Trade Management 10.3 등 구성)에 대한 외부 인쇄 양식은 관리 응용 프로그램에 대한 외부 인쇄 양식에 비해 매우 간단하게 생성됩니다.

외부 인쇄 양식을 만드는 이유는 무엇입니까?

기존 인쇄판에 비해 외부 인쇄판의 장점은 구성 변경을 피할 수 있다는 것입니다. 정보 베이스. 이는 후속 구성 업데이트 프로세스가 복잡하지 않음을 의미합니다. 또한 외부 처리와 함께 외부 인쇄 양식은 기능 확장을 위한 유일한 옵션입니다. 기본 버전전혀 변경할 수 없는 1C 구성입니다.

마지막으로, 외부 인쇄 양식은 복제하기가 더 쉽습니다. 정보베이스에 빠르게 연결할 수 있는 별도의 파일입니다.

외부 인쇄 양식을 만드는 방법

외부 1C 인쇄 양식을 만드는 과정을 단계별로 살펴보겠습니다.

  1. 우리는 외부 처리를 생성합니다. 이렇게 하려면 구성기에서 메뉴 항목을 선택하십시오. 파일 - 새로 만들기...그리고 열리는 대화 상자에서 - 외부 처리.
  2. 이름을 사용하여 외부 처리 속성을 생성합니다. 객체 참조. 속성 유형은 외부 인쇄 양식이 생성되는 디렉토리나 문서에 대한 링크입니다. 여러 유형의 객체(이 경우 속성 데이터 유형)에 동일한 형식을 사용할 수 있습니다. 객체 참조복합적이어야 합니다.
  3. 객체 모듈에서 다음과 같은 이름의 내보내기 함수를 생성합니다. 밀봉하다, 이미 만들어진 인쇄된 스프레드시트 문서를 반환해야 합니다.

기존 인쇄된 양식의 레이아웃을 약간 조정하여 외부로 만들어야 하는 경우가 종종 있습니다. 예를 들어 조직의 인장과 관리자의 서명을 레이아웃에 추가합니다.

약간의 변경이 있는 표준 인쇄 양식을 기반으로 외부 인쇄 양식 만들기

문서에 대한 범용 전송 문서의 외부 인쇄 양식을 생성하는 예를 사용하여 이 절차를 고려해 보겠습니다. 상품 및 서비스 판매 1C: 회계. 조직의 직인이 있는지 여부에 따라 표준 인쇄 양식과 다릅니다.

  1. 소품을 사용하여 외부 처리 생성 객체 참조,데이터 형식 - DocumentLink 상품 및 서비스 판매.
  2. 표준 UPD 인쇄 양식(일반 레이아웃에 있음)의 레이아웃을 찾아 외부 처리 창으로 복사(드래그)합니다. 다른 인쇄된 양식의 레이아웃은 문서나 참고서 자체에 있을 수 있습니다.
  3. 인쇄된 양식의 복사된 레이아웃에 필요한 변경을 수행합니다.
  4. 인쇄된 양식을 생성하는 기능을 찾습니다. 이 함수는 생성된 스프레드시트 문서를 반환해야 합니다. 내용을 내보내기 기능에 복사하세요. 밀봉하다()외부 처리 개체 모듈에서.
    우리의 경우 이것이 기능입니다 PrintUniversalTransferDocument() 내보내기문서 개체 모듈에서 상품 및 서비스 판매.
    레이아웃 변경이 중요한 경우(영역 및/또는 매개변수 변경) 인쇄 기능을 적절하게 조정해야 합니다.
  5. 외부 처리를 저장하려고 합니다. 그러나 인쇄 기능에서 호출한 일부 프로시저와 기능이 누락되었음을 나타내는 오류 메시지를 받게 될 수 있습니다. 이러한 기능과 절차는 소스 문서에서 찾아야 하며 외부 처리 개체 모듈에도 복사되어야 합니다. 또는 원래 함수나 프로시저를 내보낸 경우 링크를 조정하세요.
  6. (필요하지 않음).외부 프린팅 폼을 테스트하려면 소품을 놓을 폼을 만들어 놓으면 편리합니다. 객체 참조. 단추 실행하다프로시저를 호출해야 합니다 밀봉하다()개체 모듈에서. 이를 위해 버튼 클릭 이벤트에 프로시저가 제공됩니다.

그래서! 구성(예: "Trade Management", 10.3판)이 있으며 이를 위해서는 외부 인쇄 양식을 개발해야 합니다. 예를 들어, "구매자에게 지불하기 위한 송장"이라는 표준 문서를 살펴보겠습니다(문서뿐만 아니라 디렉토리에 대해서도 외부 인쇄 양식을 생성할 수 있음).

1C 8.3의 예(관리 양식)

관리되는 애플리케이션에 대한 외부 인쇄 양식을 개발하는 예를 볼 수 있습니다.

"구매자 지불 송장"문서에서 사용할 수 있고 조직 이름, 거래 상대방 및 가격, 금액 및 수량과 함께 상품 목록이 포함되는 외부 인쇄 양식을 개발하십시오.

가다!

가장 먼저 해야 할 일은 외부 처리 파일을 만드는 것입니다. 처리에는 세 가지 주요 사항이 포함되어야 합니다.
  1. "DocumentLink.Invoice for Payment to Buyer" 유형의 "개체 링크" 속성
  2. 인쇄될 레이아웃
  3. 스프레드시트 문서를 반환하는 내보내기 함수 "Print()"
이러한 작업은 그림 1에 표시되어 있습니다.

"레이아웃 그리기"

레이아웃에는 두 가지 영역이 포함됩니다.
  1. 문서 제목(헤더)(이 영역에는 조직 및 상대방의 이름이 표시됨) 및 테이블 헤더(열 이름 포함)
  2. 상품이 포함된 테이블(이름, 수량, 금액이 포함된 열)
그림 2는 외부 인쇄 양식의 레이아웃을 보여줍니다. 테이블과 헤더 셀에는 텍스트뿐만 아니라 매개변수도 포함되어 있습니다.

함수 "인쇄()"

양식이 거의 준비되었습니다. 남은 것은 스프레드시트 문서의 필드를 프로그래밍 방식으로 작성하는 것뿐입니다. 이러한 작업은 처리 개체 모듈에서 내보낼 수 있어야 하는 "인쇄"라는 기능에서 수행됩니다.
1단계. 헤더에 대한 데이터 수신, 헤더 매개변수 작성 및 스프레드시트 문서로 출력 TabularDocument = 새 TabularDocument; Layout = GetLayout("우리 레이아웃"); 데이터 요청 = 새 요청("SELECT | REPRESENTATION(구매자에게 지불하기 위한 송장. 상대방) AS 상대방, | REPRESENTATION(구매자에게 지불하기 위한 송장. 조직) AS 조직 | FROM | 문서. 구매자에게 지불하기 위한 송장 AS 송장 구매자에게 지불하기 위한 송장 | WHERE | 구매자에게 지불하기 위한 송장. 링크 = &링크"); 데이터 Request.SetParameter("Link", ObjectLink); 헤더 = DataRequest.Execute().Select(); Cap.Next(); Area = Layout.GetArea("헤더"); Area.Options.Fill(헤더); TabularDocument.Output(Area); 2단계. 표 형식의 데이터 및 제품의 라인별 출력 수신
Data Request.Text = "SELECT | _Products.Line Number, | REPRESENTATION(_Products.Nomenclature) AS 명명법, | _Products.Quantity, | _Products.Price, | _Products.Amount |FROM | 구매자에게 지불하기 위한 Document.Invoice.Products AS _Products |WHERE | _Products.Link = &링크"; 가져오기 = DataRequest.Execute().Select(); Area = Layout.GetArea("데이터"); While Selection.Next() 루프 Area.Parameters.Fill(선택); TabularDocument.Output(Area); 엔드사이클; 3단계. 스프레드시트 문서 반환 및 인쇄 기능 TabularDocument를 반환합니다.

1C에 외부 인쇄 양식 추가

"서비스 - 외부 인쇄 양식 및 처리 - 외부 인쇄 양식" 메뉴로 이동합니다.

열리는 요소 생성 창에서 다음 작업을 수행합니다.

  1. 외부 처리 파일 로드
  2. 인쇄된 양식이 어떤 구성 문서(또는 디렉토리)에 사용될 것인지 표시합니다.
  3. 변경사항 기록

인쇄하자!

"구매자에게 지불하기 위한 송장" 문서를 열고(표 형식의 "제품" 부분이 채워져 있음) "인쇄" 버튼을 클릭하고 열리는 창에서 인쇄된 항목을 선택합니다. 양식을 작성하고 '인쇄'를 클릭하세요.


주목!이 개발 알고리즘은 "일반 애플리케이션"에만 적합합니다. "모드" 구성을 위한 인쇄 가능한 양식 관리형 애플리케이션"다른!

예시에 표시된 인쇄된 양식의 파일은 다음과 같습니다.

인생은 계속되고, 법률이 변경되고, 개발자가 구성 업데이트를 출시하면 우리는 다시 선택할 수 있습니다. 직접 업데이트를 설치하거나 프로그래머에게 다시 전화하여 "새 릴리스 설치"를 요청하는 것입니다...

구성을 변경하지 않고 인쇄 양식을 변경하는 메커니즘에 대해 알아 보겠습니다.


1C를 사용하는 모든 회계사의 실무에서 누군가는 송장 가격이나 금액의 정확성을 조정했고, 누군가는 로고를 삽입하고 조정했습니다. 모습송장. 모든 것이 괜찮을 것이지만 시간이 지남에 따라 그러한 변경 사항이 많이 누적되고 릴리스를 업데이트할 때가 되면 딜레마가 발생합니다. 모든 변경 사항을 잃거나 프로그래머에게 전화하여 모든 변경 사항을 새 릴리스로 전송해야 합니다. 추가 비용이 부과되는 코스). 어떻게 될까요? 구성 업데이트를 단순화하기 위해 개발자는 "외부 처리, 인쇄된 양식, 표 형식 작성 처리"라는 새로운 메커니즘을 만들었습니다. 오늘 우리는 이 메커니즘의 일부인 인쇄 양식만 살펴보겠습니다.


모든 주제는 예를 통해 가장 잘 배울 수 있습니다. 다음 작업을 직접 설정해 보겠습니다. 구성에 송장 인쇄 기능을 추가합니다(문서 “상품 및 서비스 판매”) 회사 로고가 포함되어 있습니다. 또한 문서 헤더에 비문이 필요합니다. "공급자"그리고 "사는 사람"굵게 강조 표시되었으며 마지막으로 문서 하단에 배송을 승인한 보안 서비스의 서명을 위한 공간이 있어야 합니다.


두 가지 추가 조건을 소개하겠습니다.

  • 새로운 인쇄된 양식이 이전 양식을 대체해야 합니다. "송장"
  • 나중에 구성 자동 업데이트를 사용하려고 하므로 구성을 변경할 수 없습니다.

글쎄, 임무가 뭐야? 너무 복잡해 보이죠? 글쎄요, 복잡할수록 더 흥미롭고, 해결하고 싶은 마음이 더 커집니다. 그럼 일하러 가세요.


구성자 모드에서 데이터베이스를 시작합니다. 기본 메뉴에서 명령을 선택하여 구성을 엽니다. "구성 > 구성 열기". 어떠한 경우에도 구성 자체를 변경하지 않습니다. 우리는 그것을 프로토타입으로 사용할 것입니다. 여기서 주요 작업을 수행하지만 외부 처리를 편집합니다. 메인 메뉴의 명령으로 외부 처리를 생성합니다. "파일 > 새로 만들기". 문서 유형 선택 "외부 처리". 첫 번째 처리를 위해 이름을 설정하자 "브랜드 송장"


중요한! 처리 이름에는 변수 이름과 마찬가지로 공백이 포함되어서는 안 됩니다.


이제 좀 해보자 "표절". 레이아웃을 복사해 봅시다 "송장"문서에서 "상품 및 서비스 판매". 이를 위해 지점에서 찾을 것입니다. "선적 서류 비치"구성 트리. 아이콘을 클릭하여 이 스레드를 확장하세요. «+» 필요한 레이아웃을 찾으세요 "송장"(스레드에 있어요 "레이아웃"). 이 개체를 복사하려면 트리에서 이 레이아웃을 선택하고 명령을 실행해야 합니다. "편집 > 복사"(동일한 동작이 조합으로 발생합니다. Ctrl+C). 이제 우리가 생성한 처리로 이동하여 트리에서 라벨을 선택해 보겠습니다. "레이아웃"메인 메뉴에서 항목을 선택하십시오 - "편집 > 붙여넣기"(CTRL+V). 결과는 그림 1과 같아야 합니다.


이제 두 번 클릭하여 레이아웃을 엽니다.

"레이아웃"이란 무엇입니까?

레이아웃의 목적에 대해 몇 마디 말해 보겠습니다.

공들여 나열한 것- 저장 "빌딩 블록", 벽돌처럼 우리가 인쇄된 양식이라고 부르는 데 익숙한 표 형식의 문서가 작성되는 영역입니다. 영역은 수평 및 수직 단면이나 교차점을 사용하여 정의됩니다. 우리 레이아웃에는 가로 섹션만 있습니다. "헤더", "공급자", "구매자", "테이블 헤더", "행"(그림 2 참조). 영역은 셀 집합입니다. MS Excel과 마찬가지로 셀을 병합할 수 있고, 텍스트와 배경색, 글꼴 등을 변경할 수 있습니다. 모든 셀 설정은 셀 속성 창에서 확인하고 변경할 수 있습니다. 셀을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴 항목을 선택하여 설정 창을 호출할 수 있습니다. "속성"(키보드 단축키를 사용해도 동일한 결과를 얻을 수 있습니다. Alt+Enter).


셀에는 다음 세 가지 유형의 값 중 하나가 포함될 수 있습니다.

  1. 텍스트– 이 유형의 값은 동일한 형식으로 인쇄됩니다.
  2. 매개변수– 이 유형의 셀에는 값이 인쇄될 변수의 이름이 포함됩니다.
  3. 견본– 이 유형의 셀은 첫 번째 옵션과 두 번째 옵션의 조합입니다. 셀에는 텍스트와 변수가 포함될 수 있습니다. 프로그램이 텍스트와 변수를 구별하려면 변수를 대괄호로 묶어야 합니다. "오늘은 [날짜]입니다.".

중요한!테이블 편집기에는 두 번째 및 세 번째 유형의 셀 값이 삼각 괄호 안에 표시됩니다. 그림 2에는 텍스트가 있는 셀이 있습니다. "사는 사람"- 텍스트처럼 보이고 셀 오른쪽에 표시됩니다. "바이어 프리젠테이션"- 매개변수.

내가 왜 이 모든 것을 말하고 있는 걸까요? 이제 내용을 쉽게 변경할 수 있는 셀과 인쇄 알고리즘을 변경해야 하므로 변경이 바람직하지 않은 셀을 알 수 있습니다.

이제 우리의 임무로 돌아가겠습니다. 우리는 프로세싱을 생성하고 레이아웃을 복사하여 우리 자신에게 맞게 수정할 준비가 되었습니다. 먼저 자세히 살펴 보겠습니다.

인쇄 가능한 레이아웃에 포함되는 내용

모든 문서의 레이아웃 구조는 매우 유사합니다. 하나의 문서를 주의 깊게 살펴보면 다른 문서도 이해할 수 있습니다. 첫 번째 섹션 "제목". 이 섹션이 표시되면 유형, 날짜 및 문서 번호로 구성된 문서 헤더가 생성됩니다. 섹션이 이어집니다. "공급자"와 "구매자", 프로그램은 각각 공급자와 구매자에 대한 정보를 표시합니다. 다음은 좀 더 흥미로운 섹션입니다. "추가 정보", 개발자는 문서에 다른 정보(예: 번호 및 날짜가 포함된 계약 정보)를 표시하는 데 사용합니다. 이 섹션의 특징은 여러 번 표시할 수 있고 매번 다른 정보를 포함할 수 있다는 것입니다. 정확히 인쇄할 내용과 시기는 인쇄 알고리즘에 설명되어 있습니다.

이것으로 문서의 헤더가 완성됩니다. 헤더 다음에는 일반적으로 표 형식의 섹션이 옵니다. 흥미롭게도 레이아웃은 표 형식 부분을 표시하는 두 가지 옵션을 설명합니다. "테이블 헤더", "문자열" 및 "헤더 테이블 장소"그리고 "스트링플레이스". 컬럼이 채워졌는지 여부에 따라 "메스트"문서에서는 문서의 표 형식 부분을 표시하기 위한 첫 번째 또는 두 번째 옵션이 사용됩니다. 호기심 많은 독자는 아마도 이미 궁금해했을 것입니다. 왜 헤더 출력 섹션에 "가격"그리고 "합집합"변수인 것처럼 삼각 괄호 안에 표시됩니까? 맞습니다. 문서 설정에 따라 비문이 표시되는 변수입니다. "가격", "VAT 포함 가격"또는 "부가세 별도 가격"금액도 마찬가지입니다.

글쎄, 레이아웃 아래에는 문서 및 서명 결과가 표시되는 섹션이 있습니다.

레이아웃 편집

공급자와 구매자에 대한 정보 위에 로고를 배치하면 좋을 것 같습니다. 레이아웃 영역을 편집하는 것이 좋습니다 "제목". 내용을 담고 있는 셀의 크기를 줄여야 합니다. "제목텍스트". 이 셀은 여러 개의 병합된 셀로 구성됩니다. 크기 조정 가능 다음과 같은 방법으로:

  1. 병합된 셀의 내용을 꼼꼼히 복사해 봅시다 "제목텍스트"(이렇게 하려면 셀을 선택하고 명령을 사용해야 합니다. “편집 > 복사” 또는 키보드 단축키 CTRL+C)
  2. 이 셀을 선택한 후 기본 메뉴에서 항목을 선택하십시오. "테이블 - 병합", 이는 반대 효과로 이어질 것입니다. 병합된 셀은 여러 개의 원래 셀로 분할됩니다.
  3. 이제 더 적은 수의 셀을 선택하겠습니다. 열의 셀 2 대신 열 6에서 병합을 시작하여 열 32에서 끝납니다. 버튼을 다시 클릭합니다. "병합"
  4. "편집 > 붙여넣기"(CTRL+V)이전에 병합된 셀의 내용을 새로운 병합된 셀에 삽입
  5. 2~5열의 해제된 셀을 간단히 지웁니다(해당 셀을 선택하고 삭제 키를 누릅니다).

이제 여유 공간에 로고가 있는 그림을 삽입할 수 있습니다. 이렇게 하려면 메뉴에서 항목을 선택하세요. “표 > 그림 > 그림...”. 디스크에서 당사 로고가 있는 파일을 찾아 “ 좋아요" 이제 이미지를 여유 공간으로 옮겨 보겠습니다. 결과는 그림 3과 같아야 합니다.


이제 굵은 글씨로 표시된 셀의 값을 강조해 보겠습니다. "공급자"그리고 "사는 사람"(그림 4). 이렇게 하려면 셀 속성에서 매개변수를 찾으세요. "폰트"스타일을 굵게 설정합니다.



마지막으로 보안 서비스의 서명을 추가하는 작업이 남아 있습니다. 이 정보를 섹션에 게시하겠습니다. "서명". 서명을 위한 공간을 확보하려면 섹션을 확장해야 합니다. 37번 라인을 선택하고 마우스 오른쪽 버튼을 클릭한 후 "확장하다", 등등 두 번. 추가된 줄 중 하나에 보안 서비스 서명을 위한 장소를 배치합니다. 결과적으로 모든 것이 그림 5와 같아야 합니다.



중요한!안에 일반적인 구성러시아어와 우크라이나어의 두 가지 언어가 사용됩니다. 레이아웃은 두 언어 모두의 텍스트 표현을 저장합니다(셀 디자인은 일반적입니다). 추가한 비문의 우크라이나어 버전을 입력하려면 셀 속성과 필드로 이동해야 합니다. "텍스트"버튼을 누르세요 "찾다". 다양한 언어로 텍스트 표현을 입력할 수 있는 창이 열립니다(그림 6).

인쇄를 보장하는 방법

이제 레이아웃이 준비되었습니다. 이제 인쇄를 위한 알고리즘을 작업할 시간입니다.

이 레이아웃을 구성에 쉽게 통합하고 사용하려면 우리가 만든 처리가 다음 조건을 충족해야 합니다.

  1. 처리 시 소품을 생성해야 합니다. "객체 링크"유형으로 "애니링크"
  2. 처리 모듈에서 프로시저를 만들어야 합니다. "인쇄() 내보내기"매개변수가 없으며 지정해야 합니다. 예어 "내보내다"

인쇄 알고리즘이 인쇄용 데이터를 어디서 얻을 수 있는지 알기 위해서는 첫 번째 점이 필요하고, 두 번째는 인쇄 알고리즘 자체입니다. 이 조건을 충족시키자.

창 패널에서 처리를 편집할 창을 선택합니다(그림 7). 처리할 개체 트리가 있는 창이 열립니다. 지점 선택 "필수사항"그리고 버튼을 누르세요 "추가하다",. 속성 속성 창이 열립니다. 이름을 입력해보자 - "객체 링크"그리고 종류를 알려주세요 "애니링크". 이제 인쇄 모듈의 텍스트로 이동할 수 있습니다. 처음부터 작성하지 않고 문서에서 복사해 보겠습니다. "상품 및 서비스 판매".



이렇게 하려면 문서 중 구성 트리에서 찾으십시오. "상품 및 서비스 판매", 마우스 오른쪽 버튼을 클릭하고 선택하십시오. "개체 모듈 열기"(그림 8 참조)



그러면 문서 모듈이 열립니다. 첫 번째 기능이 필요합니다 "문서 인쇄". 해당 텍스트를 선택하고 복사해야 합니다. 축소된 함수의 텍스트를 강조 표시하는 것은 매우 편리하지만 그 아래 줄도 강조 표시해야 합니다. 그렇지 않으면 제목만 복사할 위험이 있습니다.

그림 9에서는 제목과 그 아래 줄을 강조 표시했습니다. 그 후 클립보드에 복사하세요. 메인 메뉴 "편집 > 복사"(또는 Ctrl+C).



클립보드의 텍스트를 외웠으니 이제 다시 처리를 진행하겠습니다. "브랜드 송장". 버튼을 클릭하세요 "작업 > 개체 모듈 열기"(그림 10).



복사한 텍스트를 붙여넣습니다. "편집 > 붙여넣기"(또는 Ctrl+V).

이제 복사된 텍스트는 문서 자체에서 문서를 인쇄하기 위해 작성되었고 외부 처리에서 수집하므로 약간의 편집이 필요합니다. 이렇게 하려면 다음이 필요합니다.

  1. 기능 이름을 "인쇄"로 변경
  2. 바꾸다 "이 개체"~에 "객체 링크"
  3. 바꾸다 "이 개체"~에 "객체 링크"
  4. 바꾸다 "조직 은행 계좌"~에 “Object.Organization 은행 계좌에 연결”
  5. 바꾸다 "제품. 요약"~에 "LinkToObject.Products.Total"

이러한 작업을 위해 기본 메뉴 항목을 사용할 수 있습니다 "편집 > 바꾸기".

그런 다음 구문을 확인해야 합니다. 이를 위한 마법의 조합이 있습니다: CTRL+F7. 결과적으로 다음 메시지가 나타나야 합니다. "구문 오류가 발견되지 않았습니다!"

글쎄, 이것으로 우리는 모든 더러운 작업을 완료했습니다. 이제 작업 결과를 파일에 저장할 수 있습니다. 예를 들어 "브랜드 송장.epf". 이렇게 하려면 이 처리에 대한 창을 활성화하고 프로그램의 기본 메뉴를 사용하여 저장해야 합니다. "파일 > 다른 이름으로 저장...". 처리 중인 파일 이름 – "브랜드 송장.epf"(기본적으로 제공됩니다). 나중에 더 빨리 찾을 수 있도록 데스크탑에 임시로 저장할 수 있습니다.

중요한!보시다시피 구성 내에서는 어떤 변경도 하지 않았습니다. 위에 설명된 모든 작업에 대해 지원에서 제거할 필요조차 없습니다(즉, 변경 기능 활성화).

외부 처리를 구성에 연결

이제 처리를 송장에 연결할 수 있습니다. 이렇게하려면 모드에서 시작하십시오. 메뉴로 이동 "서비스", 메커니즘과 관련된 세 가지 점이 있습니다. “외부 처리, 인쇄 양식, 표 부분 작성 처리”. 우리의 경우에는 항목만 필요합니다. "외부 인쇄 양식"(그림 11 참조).



디렉토리가 열립니다 "외부 처리", 유형별로 선택 가능 "인쇄된 양식". 이는 모든 외부 인쇄 양식 목록을 저장하여 어떤 문서에 해당하고 어떤 경우에 표시해야 하는지를 나타냅니다.



중요한!처리 자체는 다른 데이터와 함께 데이터베이스에 저장됩니다. 즉, 처리를 데이터베이스 내부에 저장한 후에는 외부 파일이 필요하지 않습니다.

디렉터리에 새 요소를 만들어야 합니다. 딸깍 하는 소리 끼워 넣다. 이제 요소의 내용을 살펴보겠습니다. 이름에 의미를 더하다 간단한 설명예를 들어 이 형식의 본질은 다음과 같습니다. "회사 송장". 다른 디렉토리와 마찬가지로 이 디렉토리에도 코드가 있습니다. 기본값으로 두겠습니다. 유형 속성은 기본적으로 채워져 있으며 편집할 수 없습니다. "양식 인쇄". 그리고 헤더의 마지막 요소는 주석입니다. 여기에는 평소와 같이 인쇄 양식의 목적에 대한 자세한 내용이 있습니다. 헤더 외에도 이 디렉토리의 요소에는 두 개의 책갈피가 있습니다. 두 번째에는 이 처리에 대한 액세스 권한을 제한하는 정보가 포함되어 있습니다. 이 주제는 이 기사의 범위를 벗어납니다(다음 호에서 구성을 수정하지 않고 이 주제와 기타 액세스 권한 설정에 대해 설명하겠습니다).

첫 번째 탭을 자세히 살펴보겠습니다.

탭에는 4개의 열이 있습니다. 객체 표현– 인쇄 양식을 사용하려는 문서 유형,

선택– 이 인쇄된 양식을 사용할 수 있는 조건. 예를 들어, 우리는 송장 인쇄 양식을 재설계하고 이를 영어로 번역했습니다. 그리고 우리는 폴더의 클라이언트를 원합니다 "유럽 사람"표준 인쇄 양식 대신 "판매 송장"출판되었다 새로운 형태, 에 영어. 이렇게 하려면 열을 사용하면 됩니다. "선택". 이러한 선택의 예가 그림 13에 나와 있습니다.



그러나 우리 작업에서는 선택이 필요하지 않습니다.

인쇄 가능한 양식 파일– 레이아웃과 인쇄 절차를 가져올 파일을 나타냅니다. 이 셀에서는 데스크탑에 저장한 파일을 선택해야 합니다.

교체 가능한 인쇄판– 우리가 만든 인쇄된 양식이 이 문서의 표준 양식 중 하나를 대체하려면 어느 양식을 대체해야 하는지 표시해야 합니다. 선택할 항목이 없으면 추가로 인쇄된 양식이 나타납니다.

우리의 경우에는 다음을 수행해야 합니다. "브랜드 송장"일반 청구서 대신 인쇄되었습니다. 이렇게 하려면 이 필드에서 선택하세요. "판매 송장".

이제 이 요소를 저장해 보겠습니다. 그리고 송장을 열어보세요.

그림 14와 같아야 합니다.



글쎄, 이것으로 기사 시작 부분에서 우리가 스스로 설정한 작업을 마칩니다. 우리는 외부 처리 메커니즘의 사용이 사용자에게 열려 있는 가능성을 설명할 수 있었다고 믿습니다.

기술을 통합하기 위해 "상품 및 서비스 수령"문서에 대한 추가 인쇄 양식 "창고로"를 구성에 독립적으로 추가하려고 시도할 수 있습니다. 이 양식은 일반적인 송장을 반복하지만 가격과 금액은 포함하지 않습니다. 허용 수량을 입력하는 필드가 포함되어 있습니다.

기성품을 기반으로 외부 인쇄 양식을 만드는 방법은 무엇입니까? 1C 8.0/8.1
_______________________________________________________

해당 주제를 읽으면서 이미 지식을 얻었다고 가정하고, 새로운 질문만 자세히 다룹니다.

따라서 구매자에게 지불하기 위해 송장 레이아웃을 약간 변경해야 했습니다(회계 1.6 구성으로 작업하겠습니다).
- 결제를 위한 송장 레이아웃에서 헤더를 제거합니다(텍스트 "주의! 이 송장의 결제..., 위임장 및 여권에 따라 달라질 수 있습니다.").
- 은행의 요청에 따라 공급자(즉, 당사)의 표시를 변경합니다.
(문제는 실생활작업 시간은 15~20분)

처리 생성은 두 단계로 구성됩니다.
1 - 원래 인쇄 형식의 완전한 아날로그 만들기
2 - 자신의 필요에 맞게 수정

1단계

먼저 빈 외부 처리를 생성하지만 레이아웃은 생성하지 않습니다.
나중에 수정하기 위해 기본 구성에서 복사해 보겠습니다. 구성에서 처리에 레이아웃을 복사하려면 충분합니다.
개체 트리에서 선택한 다음 메뉴로 이동하세요. 편집하다-복사, 레이아웃 분기의 처리 데이터 트리에서 선택
메뉴에 편집하다-끼워 넣다편리한 방법- 마우스를 사용하여 이 레이아웃을 기본 구성에서 데이터 트리로 직접 드래그합니다.
처리.

그리고 우리는 다음 코드를 작성합니다:

Function Print() 내보내기 //... 여기에 나중에 뭔가를 쓸 것입니다. 함수의 끝

우리가 한 일: 외부 인쇄 양식이 작동하려면 내보내기(즉, 다른 구성 개체에 표시됨) 기능이 필요합니다. 밀봉하다,
미리보기 및 후속 인쇄를 위해 생성된 스프레드시트 문서를 기본 프로그램으로 반환해야 합니다.

바퀴를 재발명하지 않기 위해 기본 구성에서 스프레드시트 문서가 어떻게 구성되는지 살펴보겠습니다.
문서 모듈에 구매자에게 지불하기 위한 송장모듈에서 함수를 찾아보자 밀봉하다, 이는 다음과 같습니다.

// 프로시저는 문서를 인쇄합니다. // 스크린이나 프린터로 인쇄를 지시하고 필요한 매수만큼 인쇄할 수 있습니다. // // 인쇄 레이아웃의 이름이 매개변수로 전달됩니다. // 전달된 이름을 사용하여 그에 맞는 레이아웃의 이름을 찾습니다. // // 매개변수: // LayoutName - 문자열, 레이아웃 이름. // 절차 Print(LayoutName, 인스턴스 수 = 1, OnPrinter = False, DirectPrint = False) 내보내기 // 인쇄할 문서 사본 가져오기 If LayoutName = "Invoice" Then TabDocument = PrintOrderInvoice(LayoutName); endIf; Universal Mechanisms.PrintDocument(TabDocument, 인스턴스 수, OnPrinter, WorkWithDialogs.GenerateDocumentTitle(ThisObject, ""), DirectPrint); EndProcedure // 인쇄

우리의 경우 송장을 인쇄하기 위해 매개변수가 이 함수에 전달되는 것으로 나타났습니다. 레이아웃 이름문자열 변수와 같음 "확인하다",
코드를 보면 표준 송장을 생성하는 데 함수가 사용되는 것을 볼 수 있습니다. 인쇄주문송장(...), 지금은
문서 모듈 코드에서 이를 찾아야 합니다. 일반적으로 함수 바로 위에 위치합니다. 밀봉하다(...)
따라서 이 함수의 단축 텍스트는 다음과 같습니다.

// 이 함수는 인쇄된 주문 또는 송장 형식으로 // 방법론자가 개발한 표 형식의 문서를 생성합니다. // // 반환 값: // 스프레드시트 문서- 인쇄된 양식 생성 // Function PrintOrderInvoice(Type) Request = New Request; Request.SetParameter("CurrentDocument", ThisObject.Link); // ...프로그램 코드...Layout Area.Parameters.Fill(Header); TabDocument.Output(LayoutArea); TabDocument를 반환합니다. EndFunction // PrintOrderInvoice()

보시다시피, 이 함수가 끝나면 생성된 스프레드시트 문서가 반환됩니다. 우리가 해야 할 일은 텍스트를 완전히 복사하는 것뿐입니다.
이 함수("Request = New Query;" 줄로 시작하고 "Return TabDocument;" 줄로 끝남)를 준비된 함수의 본문에 삽입합니다.
밀봉하다우리 처리 모듈에서.

기능 텍스트를 삽입한 후 처리 내용을 저장해 보겠습니다. 구성자는 모듈에서 오류가 감지되었음을 경고하고 다음을 표시합니다.
서비스 메시지 창에 표시됩니다. 다음은 이러한 오류에 대한 테스트 예시입니다.

(ExternalProcessing.ExternalProcessing1(102,7)): 변수가 정의되지 않았습니다(유형).<>Type = "Account" Then (ExternalProcessing.ExternalProcessing1(224,7)): 변수가 정의되지 않았습니다. (Type) If<>Type = "Account" Then (ExternalProcessing.ExternalProcessing1(107,15)): 변수가 정의되지 않았습니다. (StructuralUnit) IfValueType(<>StructuralUnit) = Type("DirectoryLink.BankAccounts") Then (ExternalProcessing.ExternalProcessing1(108,40)): 변수가 정의되지 않았습니다. (StructuralUnit) Bank = ?(NOT ValueFilled(<>StructuralUnit.BankForSettlements), StructuralUnit.Bank, StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(108,77)): 변수가 정의되지 않음 (StructuralUnit) 은행 = ?(NOT ValueFilled(StructuralUnit.BankForSettlements),<>StructuralUnit.Bank, StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(108,102)): 변수가 정의되지 않음 (StructuralUnit) Bank = ?(NOT ValueFilled(StructuralUnit.BankForSettlements), StructuralUnit.Bank,<>StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(112,38)): 변수가 정의되지 않았습니다. (StructuralUnit)AccountNumber = ReturnAccount(<>구조단위); (ExternalProcessing.ExternalProcessing1(123,21)): 변수가 정의되지 않았습니다. (StructuralUnit) If 빈 문자열(<>StructuralUnit.CorrespondentText) Then (ExternalProcessing.ExternalProcessing1(125,27)): 변수가 정의되지 않았습니다. (StructuralUnit) If ValueFilled(<>StructuralUnit.BankForSettlements) 그러면 (ExternalProcessing.ExternalProcessing1(126,59)): 변수가 정의되지 않았습니다. (StructuralUnit)CorrespondentText =CorrespondentText + "r/s" +<>StructuralUnit.AccountNumber (ExternalProcessing.ExternalProcessing1(127,15)): 변수가 정의되지 않음 (StructuralUnit) + " in " +<>StructuralUnit.Bank + " " + StructuralUnit.Bank.City; (ExternalProcessing.ExternalProcessing1(127,47)): 변수가 정의되지 않음 (StructuralUnit) + " in " + StructuralUnit.Bank + " " +<>구조적 단위.은행.도시; (ExternalProcessing.ExternalProcessing1(130,26)): 변수가 정의되지 않았습니다. (StructuralUnit) 해당 텍스트 =<>StructuralUnit.TextCorrespondent; (ExternalProcessing.ExternalProcessing1(112,17)) : 지정한 이름의 프로시저나 함수가 정의되어 있지 않습니다. (반품계좌) 계좌번호 =<>ReturnAccount(구조 단위);

다음 오류를 살펴보겠습니다.
*** 1. 변수가 정의되지 않았습니다(유형).- 함수의 소스 코드를 보면 유형 변수가 매개변수라는 것이 분명해집니다.
기능 PrintInvoiceOrder(유형), 이 매개변수를 제거했습니다. 안에 이 경우- 이 매개변수에는 레이아웃 이름이 포함된 줄이 포함되어 있습니다.
인쇄용. 왜냐하면 레이아웃 하나만 인쇄하면 됩니다. 이 변수를 다음과 같이 정의하겠습니다. 제목을 변경하겠습니다.
기능 밀봉하다처리 모듈에서:

기능 인쇄(유형 = "계정")

이 표기법의 의미: 함수에 매개변수가 전달되지 않은 경우 매개변수가 유형값을 가져갈 것이다
기본 "확인하다", 이것이 우리가 일해야 하는 것입니다.

*** 2. 변수가 정의되지 않음(StructuralUnit)- 이 변수는 문서 속성입니다. 구매자에게 지불하기 위한 송장, 왜냐하면
외부 인쇄 양식의 모듈에서는 이 속성을 볼 수 없으며(문서 객체의 본문에 있지 않음) 다음을 통해 이 변수를 얻습니다.
문서에 대한 링크, 즉 처리 세부정보를 통해 객체 참조, 프로그램이 현재 문서에 대한 링크를 전달합니다.
함수 시작 부분에 다음 줄을 추가합니다.

*** 3. 지정된 이름의 프로시저 또는 함수가 정의되지 않았습니다(반환 계정).- 이 함수는 모듈에 정의(즉, 설명)되어 있습니다.
문서에 따라 이 함수의 코드를 처리에 완전히 전송하면 됩니다.

이제 처리 모듈은 다음과 같습니다.

함수 ReturnCurrentAccount(CounterpartyAccount) BankForSettlements = CounterpartyAccount.BankForSettlements; 결과 = ?(BankForSettlements.Empty(), 상대방 Account.AccountNumber, 상대방 Account.Bank.CorrespondentAccount); 반환 결과; 함수 끝 // 현재 계정 반환() // 이 함수는 주문 또는 송장에 대한 인쇄된 양식이 포함된 표 형식 문서를 생성합니다. // 방법론자가 개발했습니다. // // 반환 값: // 표 형식 문서 - 생성된 인쇄 형식 // 함수 Print(Type = "Invoice") 내보내기 StructuralUnit = ObjectLink.StructuralUnit; 요청 = 새 요청; Request.SetParameter("CurrentDocument", ThisObject.Link); // ...프로그램 텍스트...Layout Area.Parameters.Fill(Header); TabDocument.Output(LayoutArea); TabDocument를 반환합니다. EndFunction // PrintOrderInvoice()

모든 것이 올바르게 완료되면 이제 처리를 저장할 수 있으며 내장 인쇄 양식의 완전한 외부 아날로그를 얻을 수 있습니다.

2단계

이제 인쇄할 때 레이아웃에 필요한 사항을 변경하고(레이아웃 작업 방법을 알고 있다고 가정)
송장 헤더의 공급업체 텍스트.

프로그램 코드에서 볼 수 있듯이 수신자의 텍스트는 다음 위치에 채워집니다.

If 빈문자열(StructuralUnit.CorrespondentText) ThenCorrespondentText = SupplyInformation.FullName; 값이 (StructuralUnit.BankForSettlements)에 채워진 경우 CorrespondentText = CorrespondentText + "account" + StructuralUnit.AccountNumber + " in " + StructuralUnit.Bank + " " + StructuralUnit.Bank.City; endIf; 그렇지 않은 경우 CorrespondentText = StructuralUnit.CorrespondentText; endIf; LayoutArea.Parameters.ProviderView = CorrespondentText;

고객은 이 상자의 텍스트가 지불 주문의 지불인 이름에서 가져오는 조건을 설정했습니다.
세금 양도. 이 텍스트는 디렉터리 요소 속성에 저장됩니다. 조직- 우리에게 남은 건
그것에 액세스하십시오. 문서 세부 사항을 살펴보면 조직에 대한 정보가 포함되어 있음을 알 수 있습니다.
문서가 발행된 내용에 따라 필요한 텍스트가 조직 세부 정보에 저장됩니다. 이제 액세스 권한을 얻는 방법을 알았습니다.

레이아웃 Area.Parameters.SupplierView = LinkToObject.Organization.세금 양도 시 납부자의 이름;

그게 전부입니다. 레이아웃을 사용할 준비가 되었으며 구성에 연결할 수 있습니다!

주제에서 당신은 결국 결과를 가져왔어야 했던 치료를 받을 수 있습니다.

추신. 토론, 질문, 제안 - 모든 것이 주제에 관한 것입니다.