1s 8.3 외부 인쇄 양식 송장을 작성합니다. 인쇄된 핸디캡 요청서 작성

안녕하세요!

대부분의 조직에 대한 표준 인쇄된 형태 1C 프로그램에는 어떤 계약도 적합하지 않습니다. 따라서 1C는 문서 및 기타 개체에 대한 추가 인쇄 양식을 추가할 수 있는 기회를 제공했습니다. 이 기사에서는 다음에서 열리는 외부 인쇄 계약서 양식을 만들고 연결하는 방법을 설명하고 싶습니다. 마이크로 소프트 워드.

추가 외부 인쇄 양식 연결

1C:Enterprise를 출시합니다. "도구" - "추가 보고서 및 처리" 메뉴를 통해 "추가 외부 인쇄 양식" 디렉토리를 엽니다.

“추가” 버튼을 클릭한 후, “외부 처리 파일 교체”를 클릭하여 새로운 인쇄 가능 파일을 등록합니다. "상품 및 서비스 판매" 문서에 속하는 인쇄된 양식이 자동으로 채워집니다. 표준 인쇄 양식이 더 이상 사용되지 않도록 "교체 가능한 인쇄 양식" 열에서 "계약서"를 선택합니다.

1C:Enterprise를 실행하고 "상대방" 디렉터리를 열고 계약서가 인쇄될 상대방을 선택한 다음 "파일" 버튼을 클릭하고 "추가 정보 저장소" 디렉터리로 이동하여 계약서 템플릿을 로드합니다. 물론 아래 그림과 같이 이름을 "계약"으로 지정합니다. 그렇지 않으면 프로그램이 인쇄 양식의 레이아웃을 찾을 수 없습니다.

이제 "상품 및 서비스 판매" 문서를 열고 "인쇄" - "계약" 버튼을 클릭하세요. 계약서가 포함된 Microsoft Word 문서가 열립니다.

외부 인쇄 양식 "계약서"와 그 레이아웃은 아래 링크에서 다운로드할 수 있습니다.

공들여 나열한 것 고용 계약 Microsoft Word 형식으로

템플릿을 만드는 방법에는 최소한 세 가지가 있습니다.

1. Word 문서에서 "[계약 번호]"와 같은 핵심 문구를 생성한 다음 처리 모듈에서 값을 검색하고 바꿉니다.

2. Word 문서에 책갈피가 생성되면 이름으로 액세스할 수 있습니다. 이 방법의 단점은 레이블이 고유해야 한다는 것입니다. 즉, 텍스트의 각 단락에 직원의 성을 삽입해야 하는 경우 다른 이름으로 여러 개의 북마크를 만들어야 합니다.

3. Word 문서에 "DocVariable" 또는 "Author"와 같은 서비스 필드가 추가됩니다. DocVariable을 사용하면 "DocumentWord.Variables.Add(VariableName,VariableValue);"와 같이 이름으로 변수에 액세스할 수 있지만 템플릿에는 표시되지 않습니다. "작성자" 필드는 템플릿에 표시되지만 인덱스 "DocumentWord.Fields.item(Index).Result.Text = Value;"를 기준으로 루프에서 액세스해야 합니다.

제 생각에는 첫 번째 방법이 가장 최적입니다. 문서 템플릿은 편집하기 쉽습니다. 핵심 문구가 텍스트에 표시됩니다. 따라서 우리는 이런 방식으로 템플릿을 만듭니다.

열리는 마이크로소프트 프로그램사무실. 예를 들어 아래 그림과 같이 몇 줄을 추가하고 템플릿을 저장합니다.

외부 인쇄 양식 "계약서" 만들기

"구성자" 모드에서 1C:Enterprise를 시작하고 "파일" - "새로 만들기" 메뉴를 통해 외부 처리를 생성합니다. "스프레드시트 문서" 유형으로 "개체 링크" 속성과 "Auto-Registration_Parameters" 레이아웃을 추가합니다. "개체에 대한 링크" 속성 유형은 인쇄된 양식이 사용될 개체에 따라 다릅니다. 우리의 경우 인쇄된 양식은 "상품 및 서비스 판매" 문서에 사용되므로 "DocumentLink" 유형을 나타냅니다. . 상품 및 서비스 판매".

인쇄 절차 개발

요즘에는 점점 더 많은 회사가 전자문서회전율, "종이 한 장 없이는..."이라는 옛말은 관련성을 잃지 않습니다. 어떤 이유에서인지 검사 당국은 주로 종이 문서에 관심을 갖고 있습니다. 그러므로 적극적으로 사용한다면 재정 통제프로그램 1C: 회계 또는 기업, 프로그램을 사용하여 작성된 전자 문서를 인쇄하는 방법을 아는 것이 중요합니다.

1C의 인쇄된 양식을 사용하면 전자 문서를 인쇄된 버전으로 변환할 수 있습니다.

이를 위해 개발자는 Print Designer라는 훌륭한 도구를 제공했습니다. 이 도구의 도움으로 몇 가지 표준 양식뿐만 아니라 필요한 모든 데이터를 지정할 수 있는 문서를 만들 수 있습니다. 이는 어떤 상황에서도 변경할 수 없는 엄격하게 규제된 양식이 없는 문서의 경우 특히 그렇습니다. 특히 여기에는 작업 완료 행위, 일부 송장 또는 지불이 포함될 수 있습니다.

이 가이드에서는 인쇄 디자이너의 기능을 이해하고 어떤 유형의 인쇄 양식이 있으며 서로 어떻게 다른지 고려할 것을 제안합니다. 또한 생성된 양식을 인쇄하는 방법을 예시와 함께 보여드리겠습니다.

먼저, 일반적으로 1C 8에 인쇄된 양식이 무엇인지 이해하는 것이 좋습니다. 이것은 일부 변수 행이 지정되고 문서를 작성할 때 프로그램의 데이터로 채워지는 1C 스프레드시트 템플릿(예: Excel)입니다.

인쇄 양식에는 두 가지 유형이 있습니다.

  • 내부(내장). 프로그램 구성에 저장되므로 나중에 업데이트 중에 문제가 발생할 수 있으므로 변경하지 않는 것이 좋습니다.
  • 외부 - 프로그램 설정과 별도로 저장됩니다. 그리고 도움을 받으면 1C 8 프로그램 구성에 영향을 주지 않고 거의 모든 복잡한 문서를 만들고 인쇄를 준비할 수 있습니다.

이미 준비된 레이아웃을 선택하는 방법은 무엇입니까? 예를 들어 완료된 작업 보고서 작성과 같은 수신 또는 발신 작업을 수행한 후 "인쇄" 버튼을 클릭하여 문서를 인쇄합니다. 목록에는 수행된 거래와 회사에 대해 입력된 데이터가 이미 채워져 있는 인쇄 가능한 양식 목록이 표시됩니다. 필요한 문서 유형을 클릭하면 미리보기 창이 열리므로 입력한 데이터가 올바른지 확인할 수 있습니다. 인쇄 버튼은 문서를 프린터로 인쇄합니다.

기본 사항을 알아보고 모든 인쇄물이 어디에 저장되어 있는지 알아봅시다. 다음 질문으로 넘어가겠습니다.

인쇄된 양식은 어디에 저장됩니까?

구성자 모드와 일반 엔터프라이즈 모드 모두에서 내장된 인쇄 양식을 볼 수 있습니다. 첫 번째 경우에는 프로그램을 시작할 때 시작 창에서 해당 버튼을 클릭해야 합니다. 프로그램 메뉴가 표시되고 "레이아웃" 항목이 포함된 "제품 및 서비스 판매" 지점을 찾습니다. 종종 "송장"과 "법"이라는 두 가지 항목만 포함됩니다. 목록이 훨씬 더 광범위하기 때문에 다른 사람들은 어디에 있습니까? 그들은 단지 다른 곳에 숨어 있을 뿐입니다. "일반" - "일반 레이아웃" 분기를 열어야 하며 거의 모든 레이아웃이 여기에 저장되어 있습니다.

두 번째 경우에는 "관리" - "양식, 보고서 및 처리 인쇄" - "양식 레이아웃 인쇄" 메뉴 섹션으로 이동해야 합니다. 모든 문서 레이아웃이 표시됩니다. 동일한 메뉴에서 편집이 가능하다는 점은 주목할 만합니다.

에 관하여 외부 형태, 그런 다음 먼저 구성 모드를 통해 생성하거나 기성 파일을 다운로드하여 생성한 다음 "관리" 메뉴 - "인쇄된 양식, 보고서 및 처리" - "추가 보고서 및 처리"에 연결해야 합니다. 이에 대해서는 잠시 후에 이야기하겠습니다.

내장된 인쇄 디자이너를 사용하여 간단한 양식 만들기

이러한 인쇄된 양식은 프로그램 구성의 변경과 업데이트 시 추가 어려움을 수반하므로 심층 편집 가능성을 의미하지 않습니다. 그러나 표준 양식에 완전히 만족하거나 외부 양식 작성의 복잡성을 탐구하려는 경우 이 방법이 귀하에게 완전히 적합합니다.

  1. 먼저 구성자 모드를 시작하고 필요한 문서(예: 제품 및 서비스 판매)를 찾은 다음 문서 속성에서 작업 - 디자이너 - 인쇄 디자이너로 이동합니다.
  2. 작업 옵션을 묻는 메시지가 나타나면 일반 양식을 선택합니다.
  3. 새 레이아웃에 "송장 인쇄"와 같은 이름을 지정합니다.
  4. 문서 헤더에서 보고 싶은 세부정보를 선택하세요. 또한 표시되는 순서대로 선택해야 합니다. 선택하려면 왼쪽 열의 항목을 커서로 강조 표시하고 화면 중앙의 화살표를 눌러 세부 정보가 오른쪽 열에 나타나도록 해야 합니다.
  5. 테이블 섹션에 표시할 세부 정보를 표시합니다. 세부 사항 선택은 이전 단락과 동일한 원칙을 따릅니다.
  6. 같은 방법으로 문서 하단의 세부정보를 선택합니다.
  7. 생성 마지막 단계에서 미리보기 없이 바로 인쇄할지, 테이블 보호 필요 여부를 선택한 후 확인 버튼으로 폼 생성을 확인합니다.

외부 인쇄 양식 만들기

인쇄 디자이너를 통해 생성된 양식은 모든 코드를 수동으로 입력하지 않고 제안된 요소로만 구성할 때 시각적 소프트웨어 편집기와 비교할 수 있습니다. 외부 형식은 화면에 데이터를 표시하는 절차를 설명하는 수동으로 작성된 프로그램 코드가 포함된 파일입니다. 이를 통해 인쇄된 양식을 원하는 대로 편집할 수 있으며, 순서에 관계없이 모든 데이터를 지정할 수 있습니다.

추가적인 이점은 1C 8 프로그래밍의 복잡성을 이해하지 못하거나 단순히 이해하고 싶지 않은 경우에도 이 절차를 전문가에게 맡길 수 있다는 것입니다. 그들은 당신을 위해 준비할 수 있습니다 필수 양식, 미리 만들어진 파일로 제공되며 버튼을 몇 번만 클릭하면 활성화됩니다.

이제 절차 자체에 대해 더 자세히 이야기하겠습니다. "판매(행위, 송장)" 문서에 대한 "송장" 레이아웃을 생성하는 예를 살펴보겠습니다.

  1. 구성자 모드에서 1C 8 프로그램을 엽니다.
  2. 파일 - 새로 만들기 - 외부 처리를 클릭하고 이름을 지정한 다음(공백을 포함해서는 안 됨) 작업 - 개체 모듈 열기를 클릭합니다.
  3. 열리는 입력 필드에 다음 코드를 입력하십시오(직접 변경할 수 있는 값은 노란색으로 강조 표시됨).

함수 정보OnExternalProcessing() 내보내기
등록 매개변수 = 새로운 구조;
ArrayDestinations = 새 어레이;
Array of Assignments.Add("문서.상품 및 서비스 판매"); //외부 인쇄할 문서를 지정합니다. 형태
등록 매개변수.Insert("View", "PrintForm"); //아마도 - PrintableForm, 채우기 객체, 추가 보고서, 관련 객체 생성...
등록 매개변수.Insert("목적지", 목적지 배열);
등록 매개변수.Insert("이름", "상품 판매 주문"); //외부 처리 디렉터리에 처리가 등록될 이름
등록 매개변수.Insert("안전 모드", FALSE);
등록 매개변수.Insert("버전", "1.0");
Registration Options.Insert("정보", "이 인쇄 가능한 양식은 샘플로 생성되었습니다.");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "외부 순서", "ExternalOrder", "CallServerMethod", True, "MXL 인쇄");
등록 매개변수.Insert("명령", CommandTable);
ReturnRegistrationParameters;
EndFunction // 외부 처리에 대한 정보()
함수 GetTableCommand()
명령 = 새 ValueTable;
Commands.Columns.Add("View", New TypeDescription("Row"));//사용자에게 표시되는 인쇄 양식 설명
Commands.Columns.Add("식별자", New TypeDescription("문자열")); //양식 레이아웃 이름 인쇄
Commands.Columns.Add("사용법", NewTypeDescription("행")); //서버 메소드 호출
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("수정자", NewTypeDescription("행"));
복귀팀;
EndFunction
프로시저 AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = 보기;
NewCommand.Identifier = 식별자;
NewCommand.Use = 사용;
NewCommand.ShowAlert = 표시경고;
NewCommand.Modifier = 수정자;
절차 종료

  1. 인쇄할 레이아웃을 하드 드라이브의 폴더에 파일로 저장하고 이름을 적절하게 지정합니다.

프로그램 메뉴에서 인쇄를 시작하는 절차를 동일한 문서에 삽입합니다(노란색으로 강조 표시된 명령이 해당 행과 일치해야 함).

명령 추가(명령 표, "외부 순서", "외부 순서"):
절차 인쇄(객체 배열, PrintForms 컬렉션, PrintObjects, 출력 매개변수) 내보내기
인쇄 관리.출력 TabularDocumentIntoCollection(
인쇄 양식 모음,
"외부주문"
"외부주문"
CreatePrintForm(ArrayofObjects, PrintObjects);
EndProcedure // 인쇄()

  1. 왼쪽 하단에 있는 외부 양식 이름을 클릭하고 "레이아웃" - "추가" - "스프레드시트 문서"를 선택하고 이름을 지정하여 인쇄된 양식을 작성하기 위한 레이아웃을 삽입합니다. 그런 다음 스프레드시트에 필요한 데이터를 채우세요. 예를 들어:
    • [Realization Date]에서 제품번호 [Realization Number]를 주문하세요 - 우클릭 - Properties - Layout - Filling - Template.
    • 문서에 표시할 열을 만듭니다.
    • 입력한 셀을 선택하고 표 - 이름 - 이름 지정 - "머리글"이라는 이름을 입력합니다.
    • 테이블 헤더가 있는 행을 복사하고 선택한 다음 마우스 오른쪽 버튼을 클릭하고 속성 - 레이아웃 - 채우기 - 매개변수를 클릭합니다.
    • 라인을 선택하고 이름을 지정합니다(예: "StringTCH").
    • 바닥글 만들기: 총 금액이 표시되어야 하는 셀인 Total을 쓰고 이름을 TotalTotal로 지정한 다음 속성에서 "매개 변수"를 선택합니다.
    • 담당자를 지정하고 성을 표시하는 셀 속성에서 "매개 변수"를 지정합니다.
    • 맨 아래 행을 선택하고 범위 이름을 "바닥글"로 지정합니다.
  2. 이제 입력 창에서 인쇄된 양식을 생성하는 함수를 작성합니다.

함수 생성PrintForm(LinkToDocument,PrintObjects)
TabularDocument = 새 TabularDocument;
인쇄 매개변수의 TabularDocument.Name = "PRINT_PARAMETERS_VRTU에 대한 지불 청구서";
처리 레이아웃 = GetLayout("결제 송장외부");
//헤더 채우기
AreaHeader = ProcessLayout.GetArea("헤더");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//헤더 표시 스프레드시트 문서
TabularDocument.Output(HeaderArea);
//PM 라인 채우기
RowArea = ProcessLayout.GetArea("ROW");
문서 링크의 각 현재 라인에 대해.제품 주기
FillPropertyValues(RowArea.Parameters, CurrentRow);
TabularDocument.Output(RowArea);
엔드사이클;
//지하를 채우다
AreaFooter = ProcessLayout.GetArea("바닥글");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("수량");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("금액");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
//바닥글을 스프레드시트 문서로 출력합니다.
TabularDocument.Output(AreaFooter);
TabularDocument.AutoScale = True;
TabularDocument를 반환합니다.
EndFunction

  1. 문서의 변경 사항을 저장합니다.
  2. 이제 생성된 양식을 활성화해야 합니다. 이를 위해:
    • "관리" - "인쇄된 양식, 보고서 및 처리" - "추가 보고서 및 처리"로 이동합니다.
    • "만들기" 버튼을 클릭하고 탐색기에서 외부 양식 파일을 선택한 다음 "저장 및 닫기" 버튼으로 항목을 확인합니다.
  3. 확인하려면 판매 - 판매(행위, 송장)로 이동하여 "인쇄" 버튼을 클릭하고 양식을 선택한 후 올바르게 작성되었는지 확인하세요.
  4. 필요한 경우 문서를 인쇄하십시오.

결론

인쇄 디자이너와 외부 양식 생성 도구를 통해 인쇄 가능한 양식을 생성하는 예를 살펴보았습니다. 모든 일이 잘 되길 바랍니다. 댓글에 질문을 남겨주세요.

좋은 오후에요.

오늘은 "급여 및 인사 관리 3.0" 구성을 위한 외부 인쇄 양식을 만드는 방법을 알려 드리고자 합니다. 아시다시피 ZUP 3.0은 표준 하위 시스템 라이브러리를 사용하므로 처리 구조가 완전히 다르게 보입니다. 제가 처음으로 BSP용 인쇄 양식을 만들어야 했을 때 제어된 양식(당시 UT 11이었습니다.) 가장 먼저 ITS 디스크로 이동하여 내보내기 절차, 처리에 사용해야 하는 매개변수, 모든 작동 방식에 대한 자세한 문서를 찾았습니다. 여기서 ITS는 나를 조금 실망시켰습니다. 왜냐하면... 문서 모듈에서 절차가 어떻게 표시되어야 하는지에 대한 모든 정보가 있고 외부 인쇄 형식에서는 "인쇄" 절차의 매개 변수가 재배치되므로 다른 소스에서 정보를 찾고 내부에서 하위 시스템을 수정해야 했습니다. .

자, 시작해 보겠습니다. 우리가 마지막에 얻는 것은 템플릿으로 사용될 수 있습니다.

1단계- 분명한. 우리는 창조한다 새로운 치료법. "Print Sample"이라는 임의의 이름을 지정해 보겠습니다.

2단계.레이아웃을 만들어 보겠습니다. 테스트 예제가 있으므로 단일 매개변수 없이 가장 간단한 레이아웃을 만들어 보겠습니다.

3단계- 제일 흥미로운. 개체 모듈을 열고 프로그래밍을 시작합니다. BSP에 따르면 외부 처리를 등록할 때 해당 처리(처리)는 무엇을 할 수 있는지, 어떤 개체에 연결되어 있는지, 무엇을 호출하는지 표시해야 합니다. 어떤 처리를 할 수 있는지 물으면 명령 목록을 반환해야 합니다. 이는 값 테이블입니다. 우리의 경우 처리는 하나의 인쇄된 양식을 출력할 수 있으므로 명령은 하나만 있을 것입니다. 값 테이블을 생성하기 위해 모든 외부 인쇄 양식에서 항상 동일하게 적용되는 몇 가지 절차를 정의합니다.

//명령 테이블 구조를 준비하는 절차

함수 GetTableCommand()

// 빈 명령 테이블과 그 안에 열을 만듭니다.
명령 = 새 ValueTable;

// 인쇄된 양식에 대한 설명이 사용자에게 어떻게 보일지
Commands.Columns.Add("보기", NewTypeDescription("행"));

// 인쇄 처리에서 호출된 명령을 구별할 수 있도록 레이아웃 이름
Commands.Columns.Add("식별자", New TypeDescription("문자열"));

// 처리 명령을 호출하는 방법을 설정합니다.
// 가능한 옵션:
// - openingForm - 이 경우 식별자 열은 시스템이 열 양식의 이름을 나타내야 합니다.
// - CallClientMethod - 처리 양식 모듈에서 클라이언트 내보내기 절차를 호출합니다.
// - ServerMethod 호출 - 처리 개체 모듈에서 서버 내보내기 절차를 호출합니다.
Commands.Columns.Add("사용법", New TypeDescription("행"));

// 다음 매개변수는 처리 작업이 시작되고 끝날 때 알림을 표시할지 여부를 지정합니다. 양식을 열 때 의미가 없습니다.
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// 인쇄된 양식의 경우 PrintMXL 문자열이 포함되어야 합니다.
Commands.Columns.Add("수정자", New TypeDescription("행"));

복귀팀;

EndFunction

//명령 테이블에 새 행을 생성합니다.

함수 AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
새로운 팀. 보기 = 보기;
새로운 팀. 아이디= 아이디;
새로운 팀. 사용법 = 사용법;
새로운 팀. 경고 표시= 경고 표시;
새로운 팀. 수정자= 수정자;
EndFunction

함수 정보OnExternalProcessing() 내보내기
등록 매개변수 = 새로운 구조;
ArrayDestinations = 새 어레이;
과제 배열.Add("Document.Hiring");
등록 매개변수.Insert("View", "PrintForm"); //아마도 - 객체 채우기, 추가 보고서, 관련 객체 생성...
등록 매개변수.Insert("목적지", 목적지 배열);
등록 매개변수.Insert("이름", "Hello World"); //외부 처리 디렉터리에 처리가 등록될 이름
등록 매개변수.Insert("버전", "1.0");
등록 매개변수.Insert("SafeMode", TRUE);
RegistrationParameters.Insert("Information", "SAMPLE");//사용자에게 표시되는 인쇄 가능한 양식에 대한 설명입니다.
CommandTable = GetCommandTable();
AddCommand(CommandTable, "Hello World", "Layout", "CallServerMethod", True, "MXL Print");
등록 매개변수.Insert("명령", CommandTable);
ReturnRegistrationParameters;
EndFunction

실제로 새로운 외부 인쇄 양식을 만들 때마다 이를 수정해야 합니다. 코드 조각에서 이를 "채용" 문서에 연결한다는 것이 분명하므로 이에 따라 직접 작성하십시오. 인쇄된 양식은 "Hello World"라고 불리며 다시 우리 자신의 양식으로 변경하겠습니다. 여기서는 템플릿에 눈에 띄는 광고판을 작성하여 나중에 수정하는 것을 잊지 않도록 "Hello world"가 유용하다고 생각합니다. 버전은 자신을 위한 것입니다. 원하는 것을 작성하면 외부 처리 디렉터리에 요소 형태로 표시됩니다. "SAMPLE"이라는 단어는 인쇄된 양식의 디렉토리 형태로만 표시됩니다. 다음으로 명령을 추가합니다. 여기서 두 번째 매개변수는 버튼의 이름입니다. 이는 문서의 "인쇄" 메뉴 항목에서 사용자에게 표시되는 내용입니다.

이 세 가지 절차 세트는 외부 처리 디렉터리에 처리를 추가하는 데 충분합니다. 이 모든 혼란스러운 코드는 서비스이며 인쇄 알고리즘과 관련이 없습니다. 실제로 BSP 작성자는 이전에 "인쇄" 기능 작성을 즉시 시작했다면 이제 샘플을 따르지 않고 처음부터 처리를 작성하면 시간을 낭비하게 될 정도로 어려운 방식으로 프로그래밍하도록 강요했습니다. 서비스. 이전에는 등록 매개변수가 선택 사항이었고 처리 레이아웃에 표시되었지만 이제 모든 것이 훨씬 더 심각해 보입니다. 이것을 봤을 때 첫인상은 멋지고, 가능성이 너무 많고, 모든 것이 통일되어 있다는 것이었습니다... 하지만 실제로는 한 번의 처리로 항상 하나의 명령만 생성하고 이를 하나의 문서에 연결합니다. 저것들. 실제로 등록하려면 개체 이름, 버튼 이름이라는 두 줄이 필요합니다. 그리고 여기 모든 것이 너무... 뭐, 뭐, 판단하는 건 제가 아니거든요.

4단계- 그다지 흥미롭지 않습니다.

인쇄 기능?

하지만 아니요, 이제는 기능이 아니라 절차입니다.

레이아웃을 다시 가져오려면 어떻게 해야 합니까?

전역 인쇄 하위 시스템 모듈 기능으로 보냅니다.

좋아요

이 절차의 텍스트는 다음과 같습니다.

절차 인쇄(객체 배열, PrintForms 컬렉션, PrintObjects, 출력 매개변수) 내보내기
If PrintManagement.NeedPrintLayout(CollectionPrintForms, "Layout") 그러면
인쇄 관리.출력 TabularDocumentIntoCollection(CollectionofPrintForms,
"레이아웃", "레이아웃",
generateTabDocumentSample(객체 배열, 객체 인쇄));
endIf;
절차 종료

이제 설명을 위해. 절차의 첫 번째 줄에는 약간 불분명한 조건이 포함되어 있습니다. 사실 우리가 인쇄 프로시저를 호출하면 시스템은 우리가 인쇄해야 할 내용을 나타내는 값 테이블을 전달합니다. 본질적으로 ManagePrint.NeedPrintLayout(...) 함수는 "이름" 열에 레이아웃 이름이 있는 행이 있는 행의 값 테이블에 존재하는지 확인합니다. 실제로는 대부분의 경우 쓸모가 없습니다. 왜냐하면... 우리의 처리에서는 단 하나의 인쇄된 양식만 생성할 수 있습니다. 저것들. 이 조건은 생략할 수 있으며 성능에 영향을 주지 않습니다.

다음으로 인쇄 관리 출력 TabularDocumentIntoCollection(...) - 필요한 곳에 표 형식 레이아웃을 추가하여 화면에 표시할 수 있습니다. 스프레드시트 문서를 표준 창이 아닌 자체 창에 표시해야 하는 경우 이 프로시저를 호출하지 말고 여기에 코드를 작성하기만 하면 됩니다.

또한 인쇄 절차는 클라이언트에서 수행되며 필요한 경우 여기에서 무료 양식을 열어 요청할 수 있다는 점을 추가하고 싶습니다. 추가 정보사용자가 인쇄해야 합니다.

다음으로, GenerateTabDocumentSample(...)은 처리 모듈에서 작성해야 하고 테이블 형식 문서를 반환하는 함수입니다. 100개 중 100개는 서버 기반이 될 것입니다. 왜냐하면... "객체 배열" 매개변수에 나열된 객체에서 세부정보 값을 가져와야 합니다.

5단계- 레이아웃을 생성합니다.

만세, 마침내 레이아웃 알고리즘, 데이터 검색 등에 대해 살펴보겠습니다.

그러나 우리 샘플에서는 산문적으로 행동할 것이며 여기서는 언급조차 하지 않겠습니다.)))

함수 generateTabDocumentSample(객체 배열, 객체 인쇄)
tabDoc = 새 TabularDocument;
레이아웃 = GetLayout("레이아웃");

AreaHeader = Layout.GetArea("헤더");
tabDoc.Output(areaHeader);

TabDoc을 반환합니다.
EndFunction

그게 다입니다. 관심을 가져주셔서 감사합니다.

이 기사에서는 1C 8에 대한 지식이 거의 없는 초보자가 인쇄된 양식을 만드는 방법을 자세히 설명합니다. 예를 들어, 가장 일반적인 1C 8 구성 중 하나를 살펴보겠습니다. 회계 2.0. 인쇄된 양식 만들기 1C 작성 단계:

  • 외부 인쇄 양식 파일 생성
  • 인쇄된 양식 레이아웃 생성
  • 인쇄된 양식 데이터를 화면에 표시하는 프로그램 코드 작성
  • 인쇄된 양식의 자동 등록을 위한 매개변수 생성
  • 외부 인쇄 양식을 베이스에 연결 1C 기업.

인쇄된 양식 작성 1C. 문제의 공식화

우리는 구성에 필요합니다 회계 2.0문서에 대한 인쇄된 양식 만들기 상품 및 서비스 수령. 인쇄된 양식의 헤더에 다음 데이터를 표시합니다.

  • 조직;
  • 상대방;
  • 상대방 계약;
  • 영수증의 날짜.

테이블 형식 섹션의 데이터를 테이블로 표시합니다. 상품문서. 테이블에는 다음 열이 포함되어야 합니다.

  • 명명법;
  • 수량;
  • 가격;
  • 합집합;
  • 또한 현재 날짜의 항목 가격(문서의 가격 유형별)도 표시됩니다.

외부 처리 파일

문제 해결로 넘어 갑시다. 먼저 1C 8을 모드로 열어 보겠습니다. 구성자. 이 모드에서는 모든 개발이 1C 8 플랫폼에서 수행됩니다. 이제 외부 처리 파일을 생성해야 합니다. 이렇게 하려면 메뉴를 클릭하세요. 파일 -> 새로 만들기...또는 새 파일의 아이콘으로 표시됩니다.

열리는 창에서 항목을 선택하십시오. 외부 처리.

다음으로 현장에서 이름외부 처리의 이름을 입력해야 합니다. 우리의 경우 간단히 "PrintForm"이라고 부르겠습니다. 동의어 필드는 자동으로 채워집니다. 현장에서 참고해주세요 이름,외부 처리의 경우 이름은 공백이나 구두점 없이 작성해야 합니다.

외부 처리 속성 추가 LinkToObject 및 선택그를 위해 타자를 쳐라 DocumentLink. 상품 및 서비스 수령.. 이렇게 하려면 1C 외부 처리 메타데이터 트리에서 항목을 선택합니다. 필수조건그리고 버튼을 누르세요 추가하다(녹색 플러스 버튼). 속성 속성 창이 화면 오른쪽 필드에 열립니다. 이름글을 쓰자 - ReferenceToObject. 안에필드 유형점 세개가 있는 버튼을 눌러주세요.

유형 트리에서 분기를 확장해 보겠습니다. 문서링크을 클릭하고 거기에서 상품 및 서비스 수령 항목을 찾아 옆에 있는 확인란을 선택하고 다음을 클릭하세요. 좋아요.

이를 위해 외부 처리 파일을 하드 드라이브에 저장해 보겠습니다. 메뉴를 사용하세요. 파일 -> 저장, 픽토그램 구하다(파란색 플로피 디스크) 또는 키보드 단축키 Ctrl+S. 저장된 파일의 이름을 "PrintForm"으로 지정하겠습니다.

인쇄된 양식 레이아웃 만들기

1C 인쇄 양식의 레이아웃 만들기를 시작해 보겠습니다. 레이아웃은 인쇄된 양식의 출력을 위한 템플릿 역할을 하므로 인쇄된 양식이 보기 좋게 보이도록 하려면 이에 주의해야 합니다.

외부 처리 메타데이터 트리에 새 레이아웃을 추가해 보겠습니다. 레이아웃 디자이너 창에서는 아무 것도 변경하지 않고 버튼을 클릭합니다. 준비가 된.

열리는 새 레이아웃에서는 인쇄된 양식을 표시하는 데 필요한 여러 영역을 만듭니다. 필요한 모든 레이아웃 영역은 수평이므로 새 영역을 생성하려면 선택해야 합니다. 필요한 금액레이아웃 라인 및 메뉴로 이동 테이블 -> 이름 -> 이름 지정또는 키보드 단축키를 사용하세요 Ctrl + Shift + N,그런 다음 상자에 지역 이름을 입력합니다. 레이아웃 영역을 생성할 때 줄 수에 실수하는 것을 두려워하지 마세요. 언제든지 추가하거나 제거할 수 있습니다. 1C 레이아웃 라인을 삭제하려면 원하는 라인을 선택하고 상황에 맞는 메뉴삭제. 레이아웃에 새 줄을 추가하려면 레이아웃의 줄을 선택하고 상황에 맞는 메뉴에서 항목을 선택하세요. 확장하다.

레이아웃 헤더 추가

우선 영역을 하나 만들어 볼까요? 모자, 인쇄된 양식의 헤더에 대한 데이터를 표시합니다. 이 영역에는 7개의 레이아웃 선이 필요합니다. 그것들을 선택하고 위에서 쓴 것처럼 키 조합을 누르십시오. Ctrl + Shift + N, 현장에서 이름"모자"라고 쓰고 버튼을 누르세요 좋아요.

필요한 데이터로 레이아웃 영역을 채워보겠습니다. 일반적으로 제목 없이는 인쇄된 양식이 완성되지 않으므로 레이아웃 헤더에도 제목을 만들어 보겠습니다. 제목에는 인쇄된 양식의 이름 외에도 인쇄된 문서의 번호도 표시되므로 레이아웃의 제목 텍스트를 매개변수로 설정합니다. 레이아웃 매개변수는 내장된 1C 8 언어를 사용하여 다양한 데이터를 출력할 수 있도록 특별히 지정된 레이아웃 셀입니다. 제목은 인쇄된 양식의 전체 너비에 걸쳐 표시되어야 하므로 시트의 표준 가로 방향으로 인쇄하는 데 충분한 레이아웃 셀 수를 결정해 보겠습니다.

일반적으로 13개 또는 14개의 레이아웃 셀이면 충분합니다. 영역의 첫 번째 행에서 선택하세요. 모자하나의 셀로 결합합니다( 상황에 맞는 메뉴 -> 병합). 그런 다음 결과로 나타나는 큰 셀을 두 번 클릭하고 매개변수 이름(이 경우 "TitleText")을 작성합니다. 입력한 텍스트가 본격적인 매개변수가 되도록 하려면 셀을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 항목을 선택합니다. 속성. 북마크에 공들여 나열한 것분야를 찾아보자 충전재그리고 값을 선택하세요 매개변수. 1C 레이아웃의 매개변수는 괄호로 표시됩니다.<>».

인쇄된 양식의 제목은 다른 텍스트 사이에서 눈에 띄어야 하므로 셀을 다시 선택하고 레이아웃 서식 패널의 아이콘을 사용하여 텍스트 정렬을 설정하세요. 가운데 맞춤글꼴 크기는 14입니다.

제목 텍스트 다음에 해당 영역에 표시됩니다. 모자조직, 상대방, 상대방 계약 및 상품 수령 날짜에 대한 정보. 이 모든 데이터도 문서에서 가져오므로 매개변수를 사용하여 형식화합니다. 또한, 각 매개변수 앞에는 조직이 어디에 있는지, 상대방이 어디에 있는지 등을 사용자가 쉽게 이해할 수 있도록 설명 텍스트를 작성해야 합니다. 이 모든 작업은 제목을 만드는 것과 유사하므로 자세히 설명하지 않고 최종적으로 어떤 일이 발생해야 하는지에 대한 그림만 제공하겠습니다.

그림은 레이아웃 매개변수가 일반 텍스트와 어떻게 다른지 보여줍니다.

레이아웃 테이블 헤더 추가

이 레이아웃 영역에서 마지막으로 생성해야 할 것은 표 부분의 데이터가 표시될 표 머리글입니다. 상품. 테이블에 필요한 열은 "문제 설명" 섹션에 설명되어 있습니다. 또한 셀과 쓰기 텍스트(열 이름)의 조합을 사용하여 테이블 헤더를 생성해 보겠습니다. 도구를 사용하여 테이블 머리글의 테두리를 선택합니다. 액자, 이는 레이아웃 서식 패널에 있습니다.

레이아웃에 테이블 추가하기

레이아웃에 또 다른 영역을 만들어 보겠습니다. 데이터. 표 부분의 데이터 테이블이 표시됩니다. 상품.이 영역에는 한 줄의 레이아웃만 필요합니다. 표 형식 부분의 모든 행을 인쇄된 형식으로 표시하기 위해 이 영역을 필요한 횟수만큼 채우고 표시합니다. 해당 지역의 기둥 데이터테이블 헤더의 열과 일치해야 하므로 채우는 것이 어렵지 않습니다. 유일한 차이점은 지역에 있습니다. 데이터텍스트뿐만 아니라 매개변수도 필요합니다. 또한 기본적으로 숫자 매개변수는 오른쪽으로 형식이 지정되고 텍스트 매개변수는 왼쪽으로 형식이 지정됩니다. 열을 선택하려면 도구도 사용해야 합니다. 액자.

레이아웃에 바닥글 추가

우리에게 필요한 마지막 레이아웃 영역은 다음과 같습니다. 최하부. 수량과 금액별로 합계가 표시됩니다. 생성은 영역 생성과 유사합니다. 데이터, 그러나 추가로 결과는 굵게 강조 표시되어야 합니다.

최종 결과는 다음과 같은 레이아웃이 되어야 합니다.

인쇄된 양식 작성 1C. 프로그램 작성

프로그래밍을 시작해 보겠습니다. 이는 인쇄된 양식을 만드는 데 있어 가장 중요한 단계입니다. 우선, 외부 인쇄 양식 개체 모듈로 이동해 보겠습니다. 여기서 프로그래밍할 것입니다. 이렇게 하려면 기본 외부 처리 창에서 작업 -> 개체 모듈 열기.

외부 인쇄 양식 개체 모듈에서 내보내기 기능을 만들어야 합니다. 밀봉하다().

함수 Print() 내보내기 EndFunction

이 기능은 일반 응용 프로그램을 사용하는 구성의 외부 인쇄 양식에 필요합니다. 인쇄된 양식을 표시하는 데 필요한 모든 후속 프로그램 코드는 이 함수 내에 기록됩니다.

기본 변수 초기화

변수를 만들어보자 TabDoc, 스프레드시트 문서가 포함됩니다. 이는 레이아웃의 채워진 영역을 표시할 인쇄된 형식과 정확히 같습니다.

TabDoc = 새로운 TabularDocument;

변수로 공들여 나열한 것우리가 만든 인쇄된 양식 레이아웃을 얻게 됩니다. 이를 위해 내장 함수를 사용합니다. GetLayout(<ИмяМакета>).

Layout = GetLayout("레이아웃");

레이아웃의 모든 영역을 변수로 변환하겠습니다. 이를 위해 우리는 레이아웃 방법을 사용합니다 GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("머리글"); AreaData = Layout.GetArea("데이터"); AreaFooter = Layout.GetArea("바닥글");

인쇄된 양식의 헤더를 스프레드시트 문서로 출력

필요한 모든 변수가 초기화됩니다. 스프레드시트 문서의 레이아웃 영역을 채우고 표시해 보겠습니다. 우선, 인쇄 가능한 양식의 제목을 입력하고 이를 위해 매개변수를 전달해야 합니다. 제목 텍스트, 레이아웃에서 생성한 텍스트는 필요한 텍스트입니다. 매개변수 값을 채우기 위해 레이아웃 영역에는 다음과 같은 특수 컬렉션이 있습니다. 옵션."."를 통해 어떤 매개변수라도 얻을 수 있습니다. 헤더 텍스트에는 "인쇄된 양식"이라는 텍스트와 문서 번호가 전송됩니다.

헤더 Area.Parameters.TitleText = "양식 인쇄"+LinkToObject.Number;

비슷한 방식으로 헤더의 나머지 매개변수를 입력하고 세부정보에서 필요한 모든 값을 얻습니다. 객체 참조, 인쇄할 문서에 대한 링크가 포함되어 있습니다.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; 헤더 Area.Parameters.Counterparty 계약 = LinkToObject.Counterparty 계약;

헤더의 모든 매개변수가 채워져 있으며 이를 우리가 만든 스프레드시트 문서에 표시합니다. 이를 위해 다음 방법을 사용합니다. 산출(<Область>) .

TabDoc.Output(HeaderArea);

인쇄된 핸디캡 요청서 작성

영역을 채우고 그리기 시작합시다 데이터. 1C 인쇄 양식을 작성하려면 표 형식 데이터를 얻는 데 필요한 쿼리 작성도 포함됩니다. 상품및 가격 명명법우리가 사용할 현재 날짜에 대해서는 요구. 1C 8 쿼리 언어는 SQL과 유사하거나 실제로 SELECT 연산자의 기능을 복사하지만 전체 쿼리는 러시아어로 작성됩니다. 따라서 SQL에 대해 막연하게 익숙하다면 1C 8 쿼리 언어를 쉽게 이해할 수 있습니다.

이 인쇄된 양식에서 요청은 매우 간단하며 많은 사람들은 요청 없이도 가능할 것이라고 말할 것이지만 쿼리 언어에 대한 지식과 이를 유능하게 사용하는 능력은 1C 프로그래머의 주요 기술 중 하나입니다. 쿼리를 사용하면 더 적은 리소스를 사용하여 복잡한 데이터 샘플을 얻을 수 있으며, 쿼리 텍스트는 쿼리를 사용하지 않고(또는 쿼리를 최소한으로 사용하여) 작성된 프로그램 코드보다 훨씬 이해하기 쉽습니다. 또한 1C 8에는 필요한 테이블에서 쿼리를 대화형으로 조합할 수 있는 매우 뛰어난 쿼리 디자이너가 있습니다.

요청을 포함할 변수를 만들어 보겠습니다.

요청 = 새 요청;

요청 생성자를 사용하여 요청 텍스트를 작성합니다. 우선 다음과 같이 작성해 보겠습니다.

요청.텍스트 = "";

따옴표 사이에 마우스 커서를 놓고 마우스 오른쪽 버튼을 누릅니다. 열리는 컨텍스트 메뉴에서 항목을 선택하십시오. 요청 생성자, 1C 인쇄 양식을 만드는 데 많은 도움이 될 것입니다. 그런 다음 쿼리 디자이너 창이 열립니다. 여기에는 많은 탭이 포함되어 있지만 쿼리에는 "테이블 및 필드", "관계", "조건", "조인/별칭"의 4개만 필요합니다.

쿼리에는 두 개의 테이블이 필요합니다. 상품문서 상품 및 서비스 수령및 등록된 현재 날짜의 최신 정보에 대한 스냅샷 품목 가격.

디자이너 창의 왼쪽에는 열이 있습니다. 데이터 베이스. 여기에는 모든 메타데이터 개체의 트리가 포함되어 있습니다. 필요한 개체를 찾아보겠습니다. 이렇게 하려면 스레드를 열어 보겠습니다. 선적 서류 비치그리고 문서를 찾아보세요 상품 및 서비스 수령, 열어서 표 부분을 찾아봅시다 상품, 쿼리 디자이너의 열로 드래그 테이블. 끌기, 테이블을 두 번 클릭, 테이블을 선택하고 ">" 버튼 클릭 등 세 가지 방법으로 끌 수 있습니다. 스레드를 열어보자 정보 레지스터그리고 거기 테이블을 찾아 가격명칭.바로가기최신, 또한 열로 드래그합니다. 테이블. 이 두 테이블은 쿼리에 충분합니다.

결과 테이블에서 필요한 필드를 선택해 보겠습니다. 이렇게 하려면 해당 열에서 테이블테이블을 열어보자 필드를 찾으세요. 명칭, 금액, 가격, 수량생성자의 세 번째 열로 드래그합니다. 필드. 테이블을 확장해보자 , 필드를 찾아보자 가격다음 위치로 드래그할 수도 있습니다. 필드.

요청에 대한 테이블과 필드의 구조가 준비되었습니다. 이제 조건으로 넘어가겠습니다. 우리는 표 형식의 데이터가 필요합니다 상품모든 영수증에서 가져온 것이 아니라 우리가 인쇄한 영수증에서만 가져왔습니다. 이를 위해 테이블에 조건을 부과하겠습니다. 물품수령서비스상품. 쿼리 디자이너의 "조건" 탭으로 이동해 보겠습니다. 칼럼에서 필드이전에 선택한 테이블이 있습니다. 조건에 따라 필드가 필요합니다. 링크테이블에서 상품 및 서비스 상품 수령,조건 창으로 드래그해 보겠습니다.

1C 쿼리에서는 데이터를 요청으로 전송하는 데 필요한 매개변수를 사용할 수 있습니다. 예를 들어 문서 선택을 특정 문서로 제한하려는 경우 매개변수를 사용하여 이 문서에 대한 링크를 요청에 전달하고 이 매개변수를 조건에 사용할 수 있습니다. 이것이 바로 우리의 요청에 따라 수행할 작업입니다.

창가 이후 정황필드를 추가했습니다 링크을 사용하면 쿼리 디자이너 자체가 동일한 이름의 매개 변수를 생성하고 "=" 기호 뒤에 배치합니다. 원하는 경우 이 매개변수의 이름을 바꿀 수 있습니다. 요청 텍스트에는 매개변수가 "&"로 표시되어 있지만 이 경우조건의 두 번째 부분에 매개변수가 포함되어 있다고 가정하므로 이를 수행할 필요가 없으므로 이것만 기억하면 됩니다. 1C 요청 매개변수에 값을 전달하는 방법은 아래에서 설명합니다.

요청에서 우리는 제품 가격의 전체 테이블이 아닌 가상 테이블(이 경우 후자의 일부)을 사용하고 있으므로 이 가상 테이블을 형성하기 위한 조건을 설정해야 합니다. 마감일 및 가격 유형 조건(가격 유형이 엄격하게 정의된 가격은 당사가 인쇄하는 영수증 문서에 지정된 가격입니다).

가상 테이블의 매개변수를 입력하려면 탭으로 이동하세요. 테이블 및 필드쿼리 생성자, 열 테이블테이블을 선택하세요 가격명칭절단최신그리고 버튼을 누르세요 가상 테이블 옵션, 상단에 위치합니다. 열린 창에서 들판에서 기간가격 인하 날짜가 전달되는 매개변수를 설정해야 합니다. 우리의 경우 이는 현재 날짜(즉, 오늘)가 되므로 매개변수 “&CurrentDate”를 호출합니다. 조건 필드에 가격 유형에 대한 조건을 작성하고 이를 "&TypePrice"라고 하는 매개변수에 전달합니다. 결과 조건은 다음과 같습니다 다음과 같은 방법으로(어디 유형가격- 측정 기록 품목 가격):

가격 유형 = 가격 유형(&PriceType)

가상 테이블 매개변수가 채워지면 버튼을 클릭합니다. 좋아요.

이제 필요한 문서만 선택하도록 제한했으므로 쿼리 테이블 간의 연결을 만들어 보겠습니다. 이 작업이 수행되지 않으면 PriceNomenclatureSliceLast 테이블의 가격이 영수증의 항목과 연결되지 않습니다. 탭으로 가자 사이쿼리 디자이너. 현장 전반에 걸쳐 연결을 만들자 명명법우리 두 테이블 사이. 이렇게 하려면 버튼을 누르세요. 추가하다, 현장에서 1 번 테이블테이블을 선택하세요 물품수령서비스상품, 그리고 필드 표 2 - 가격 명명법SliceLast. 통신 조건에서 해당 항목을 선택하세요. 명명법두 테이블 모두에서.

또한 쿼리 선택 시 탭 부분에서 모든 행을 가져와야 한다는 점에 유의해야 합니다. 상품문서 가격 유형에 대해 현재 날짜에 사용 가능한 경우에만 가격이 표시됩니다. 따라서 표 형식의 데이터 상품필수이지만 가격 분석 데이터는 제공되지 않습니다. 따라서 이러한 테이블 간의 관계에서는 소위 LEFT JOIN을 사용해야 하며 왼쪽(또는 필수) 테이블은 다음과 같습니다. 물품수령서비스상품및 오른쪽(또는 선택 사항) PriceNomenclatureSliceLast. 위에서 설명한 대로 쿼리 테이블의 왼쪽 조인이 작동하려면 확인란을 선택해야 합니다. 모두필드 후 1 번 테이블.


요청이 거의 준비되었으며 남은 것은 필드 별칭에 대해 약간의 작업만 수행하는 것입니다. 북마크로 가자 공용체/별칭필드에 대한 별칭을 설정합니다. 가격명칭 슬라이스 최신.가격. 닉네임 이름은 - 오늘 가격, 쿼리 선택 필드의 이름과 인쇄된 양식 레이아웃의 매개변수 이름이 일치하도록 해야 합니다.

이제 쿼리 디자이너의 작업이 완료되었습니다. 확인을 클릭합니다. 디자이너 창이 닫히면 요청 텍스트가 포함된 줄이 채워져 다음과 같이 표시되는 것을 볼 수 있습니다.

Request.Text = "선택 | GoodsServicesProducts.Nomenclature 영수증, | GoodsServicesProducts.Amount 영수증, | GoodsServicesProducts.Price 영수증, | GoodsServicesProducts.Quantity 영수증, | PriceNomenclature 최신 가격.Price AS PriceToday | FROM | 문서. 영수증 GoodsServices.Goods AS 수령 ProductsServiceProducts | 왼쪽 연결 RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) AS 가격 NomenclatureSliceLast | ON 상품 수령ServicesProducts.Nomenclature |

요청 실행

이를 위해 요청 메소드를 사용하여 필요한 매개변수를 요청에 전달하겠습니다. 매개변수 설정(<ИмяПараметра>,<Значение>). 얻기 위해 현재 날짜내장된 함수를 사용해 봅시다 현재 날짜(), 컴퓨터의 날짜와 시간을 반환합니다.

필요한 데이터가 포함된 샘플을 가져오기 위해 쿼리를 실행해 보겠습니다. 이렇게 하려면 먼저 요청 메소드를 사용하세요. 달리다(), 그리고 메소드 선택하다().

선택 = Query.Run().Select();

인쇄된 양식 표 작성

결과적으로 변수에는 견본선택한 쿼리 결과가 포함되며, 메소드를 사용하여 탐색할 수 있습니다. 다음(), 전체 과정을 진행하려면 루프가 필요합니다. 안녕. 디자인은 다음과 같습니다.

While Select.Next() 루프 EndLoop;

이 루프에서는 레이아웃 영역을 채우고 표시합니다. 데이터. 하지만 먼저 숫자 유형의 두 변수를 초기화해 보겠습니다. 여기서는 해당 영역에 표시해야 하는 수량과 금액별로 총액을 수집합니다. 최하부.

총합 = 0; 총수량 = 0;

루프 내부에서 영역을 채울 것입니다. 데이터현재 선택 요소의 데이터를 변수로 총 금액그리고 총량합계 및 수량 값을 추가하고 마지막으로 이미 익숙한 방법을 사용하여 스프레드시트 문서에 영역을 표시합니다. 산출(). 요청한 필드의 이름이 영역 매개변수의 이름과 완전히 일치하므로 데이터, 채우기 위해 내장 프로시저인 FillPropertyValues(<Приемник>, <Источник>), 속성 값을 복사합니다.<Источника>속성에<Приемника>.

While Selection.Next() 루프 FillPropertyValues(AreaData.Parameters,Selection); TotalSum = 총합 + 샘플.합계; TotalQuantity = TotalQuantity + 샘플.수량; TabDoc.Output(AreaData); 엔드사이클;

인쇄된 양식의 바닥글을 스프레드시트 문서로 출력

레이아웃의 마지막 영역을 채우고 표시하는 것이 남아 있습니다. 최하부. 우리는 동일한 구성표에 따라 채우기, 채우기 및 철회를 위한 데이터를 이미 준비했습니다.

AreaFooter.Parameters.TotalQuantity = 총량; AreaFooter.Parameters.TotalSum = 총합계; TabDoc.Output(AreaFooter);

스프레드시트 문서는 완전히 작성되었습니다. 남은 것은 사용자가 인쇄된 양식을 보고 필요한 경우 인쇄할 수 있도록 이를 화면에 표시하는 것뿐입니다. 하지만 일반적인 구성 1C 8, 특수 모듈의 절차는 외부 인쇄 양식의 출력을 담당합니다. 따라서 함수에서 복귀하는 것으로 충분합니다. 밀봉하다()완성된 스프레드시트 문서.

TabDoc을 반환합니다.

이 시점에서 프로그래밍 단계가 완료되고 1c 인쇄 양식 생성이 거의 완료됩니다. 전문기능 밀봉하다()여기서는 설명하지 않겠습니다. 기사 하단에서 다운로드할 수 있는 인쇄 가능한 파일에서 볼 수 있습니다.

인쇄된 양식 작성 1C. 자동 등록 옵션

외부 인쇄 양식을 데이터베이스에 연결할 때 시스템은 인쇄 양식이 어떤 문서나 참고 서적에 적합한지 자동으로 결정하지 않으며 사용자가 이를 수동으로 선택해야 합니다. 그리고 다른 사람이 인쇄된 양식을 작성했는데 귀하에게 이를 연결하는 임무만 부여된 경우 선택이 모호해질 수 있습니다. 이러한 문제를 방지하려면 모든 외부 인쇄 양식에서 자동 등록 매개변수를 사용하여 레이아웃을 생성해야 합니다. 양식이 작성되고 형식이 올바르면 시스템은 인쇄된 양식이 어떤 문서나 참고 서적에 적합한지 자동으로 결정합니다.

다음과 같이 수행됩니다.

  • 외부 처리에서는 새로운 레이아웃을 생성합니다. 우리는 이를 “설정_자동등록”이라고 부릅니다(실수하지 않는 것이 중요합니다!).
  • 레이아웃의 첫 번째 셀에 우리는 다음과 같이 씁니다. 선적 서류 비치.(또는 디렉토리.) 및 인쇄된 양식을 연결하는 데 필요한 문서의 이름입니다.

외부 인쇄 양식을 베이스에 연결

  • 모드에서 1C 8 시작 회사;
  • 메뉴로 이동 서비스 -> 추가 보고서 및 처리 -> 추가 외부 인쇄 양식;
  • 버튼을 클릭하세요 추가하다;
  • 열리는 창에서 아이콘을 클릭하세요. 외부 처리 파일 교체;
  • 귀하가 자동 등록 매개변수를 생성한 경우 당사는 해당 매개변수를 사용하는 데 동의합니다.
  • 자동 등록 매개변수를 생성하지 않은 경우 표 부분에 인쇄판 액세서리추가하다 필수서류또는 참고서;
  • 버튼을 누르세요 좋아요.

그 후에는 메뉴에서 외부 인쇄 양식을 사용할 수 있습니다. 밀봉하다문서 상품 및 서비스 수령.이제 1C 인쇄 양식 생성이 완료된 것으로 간주될 수 있습니다.