모바일 애플리케이션에서 권한 부여 1s. 모바일 애플리케이션 "1C-등급: 모바일 웨이터"의 초기 설정

예를 들어 모바일 애플리케이션“1C: Managing our company”(약칭 UNF) 모바일 비즈니스 애플리케이션의 시작과 첫 번째 버전의 출시부터 현재까지의 진화를 보여주고 싶습니다. 이제 이 앱은 220,000회 이상 다운로드되었습니다. 응용 프로그램은 무료이지만 유료 옵션이 있습니다(인앱 구매를 통해 구현됨).


모바일 UNF의 첫 번째 버전은 2012년 1C:Enterprise 모바일 플랫폼의 첫 번째 버전 중 하나에서 만들어졌습니다. 그 당시에는 이미 클라이언트-서버 구성 "1C: Small Company Management"(당시 이름은 이와 같았습니다), 소규모 회사의 활동(판매, 구매, 고객 및 공급업체 데이터베이스)을 자동화하기 위한 프로그램이 있었습니다. 창고 관리, 생산 등

1C:Enterprise 크로스 플랫폼 모바일 플랫폼에서 작성된 대부분의 모바일 애플리케이션과 마찬가지로 모바일 UNF는 iOS, Android 및 Windows에서 사용할 수 있습니다.

작업은 다음과 같이 설정되었습니다. "큰" UNF의 작업 시나리오의 일부를 지원하는 모바일 응용 프로그램을 만드는 것입니다. 응용 프로그램은 자율적으로 작동하고 "대형" UNF와 데이터를 동기화할 수 있어야 합니다(이하 UNF의 클라이언트-서버 버전과 관련하여 "대형"이라는 단어는 텍스트에 과부하가 걸리지 않도록 따옴표 없이 씁니다). . 대규모 UNF와 함께 작업하는 경우 "모바일" 직원(영업 사원, 서비스 엔지니어, 영업 사원) 시나리오가 지원되어야 합니다.

첫 번째 버전은 1 man-month에 만들어졌습니다. 모바일 애플리케이션을 생성할 때 일부 메타데이터 개체(디렉토리, 문서)는 대규모 UNF 개체를 기반으로 구현되었습니다. 그러나 일부 기능(예: 대규모 UNF와 데이터 교환 프로세스)은 처음부터 프로그래밍해야 했습니다. 사실, 데이터 교환과 관련하여 우리는 실제로 약간의 프로그래밍을 해야 했습니다. 우리는 코드 작성을 최소한으로 줄이는 표준 플랫폼 메커니즘(특히 교환 계획)을 사용했습니다.

데이터 동기화 작업을 단순화하는 것 외에도 1C 플랫폼은 개발자에게 목록(표 형식 및 계층 구조)과 같은 인터페이스 구성 요소를 검색할 수 있는 기능과 검색 기능이 있는 입력 필드를 제공하여 완전한 기능을 갖춘 모바일 응용 프로그램의 설계를 크게 촉진합니다. , 보고서용 표, 다양한 차트, WiFi 및 Bluetooth 프린터에서 인쇄하는 기능 등

모바일 버전 기능

모바일 애플리케이션의 기능을 선택하기 위한 두 가지 주요 전략이 있습니다. 첫 번째는 "하나의 응용 프로그램 - 하나의 기능"입니다. 예를 들어, 창고에서 상품을 수령하기 위한 모바일 애플리케이션은 내장된 카메라로 상품의 바코드만 스캔하고 수령한 상품에 대한 정보를 서버로 보낼 수 있습니다. 두 번째 전략은 다양한 올인원 기능을 갖춘 모바일 애플리케이션을 만드는 것입니다. 두 가지 접근 방식 모두 생명권이 있습니다. 모바일 UNF를 작성할 때 우리는 두 번째 접근 방식을 선택했습니다. 우리 애플리케이션은 해당 주제 영역의 많은 작업을 다루며 완전히 자율적으로 작동하여 소규모 조직의 요구 사항을 충족합니다. 이 접근 방식의 또 다른 장점은 사용자가 하나의 응용 프로그램에서 여러 상호 관련된 기능을 사용할 수 있다는 것입니다.

Mobile UNF는 특히 다음과 같은 모바일 장치의 기능을 널리 사용합니다.

  • 제품에 내장된 카메라는 제품 카드 작성 시 제품 사진을 찍거나 바코드 및 QR 코드를 읽는 데 사용할 수 있습니다.
  • 결제 인보이스는 이메일 또는 SMS로 고객에게 발송될 수 있습니다.
  • 상대방은 모바일 기기의 주소록에서 선택 가능
  • 상대방이 전화번호가 있으면 원터치로 상대방에게 전화를 걸거나 SMS를 보낼 수 있고, 이메일이 지정되면 편지를 보내고, 주소가 지정되면 지도에 표시할 수 있습니다.
  • WiFi 및 Bluetooth를 통해 문서를 프린터로 인쇄할 수 있습니다.
모바일 UNF 데이터베이스를 Yandex.Disk에 백업 및 복원하고 데이터베이스를 메일로 보내는 옵션이 있습니다.

모바일 UNF의 구성은 매우 간단해 보입니다(아래 스크린샷 참조).

  • 8개의 참고 도서(대형 UNF - 273개의 참고 도서)
  • 7개의 문서(대규모 UNF - 125)
  • 문서 저널 3개(대규모 UNF - 24개)
  • 3개의 정보 레지스터(대형 UNF - 357)
  • 4개의 누적 레지스터(대형 UNF - 64)

모바일 UNF의 주요 대상

그러나 이러한 적은 수의 응용 프로그램에도 불구하고 제품은 상당히 기능적인 것으로 나타났습니다.

모바일 UNF의 흥미로운 기능은 이전에 1C에 대해 들어본 적이 없는 사람들(예, 우리나라에도 있습니다), 소규모 비즈니스 기록을 유지하기 위해 모바일 애플리케이션이 필요한 사람들(예: 가정 공예). 그들은 단지 검색하여 찾았습니다 구글 플레이또는 AppStore에서 리뷰를 읽고 작업을 시작했습니다.

오프라인 작업

이 작업 시나리오는 모든 회계가 독점적으로 유지되는 매우 작은 조직을 위한 것입니다. 휴대 기기. 예를 들어 집에서 보석을 만들고 VKontakte 페이지에서 판매하는 "가정" 비즈니스일 수 있습니다. 아니면 작은 가게일 수도 있습니다. 저는 개인적으로 레고 생성자 판매를 전문으로 하는 장난감 가게가 모바일 버전 UNF. 모바일 UNF는 WiFi 및 Bluetooth 프린터에서 인쇄할 수 있으므로 상당히 많은 작업을 해결하는 데 사용할 수 있습니다. 모바일 UNF는 주문 처리, 들어오고 나가는 송장 입력, 돈의 수취 및 지출에 대한 회계를 지원합니다.

서버와 동기화 모드에서 작업(첫 번째 버전)

모바일 UNF의 서버와 동기화 모드에서 이전 버전에서는 회계 기능을 사용할 수 없었고 그 작업은 주로 주문(주문 접수 및 이행) 및 관련 활동(상대방, 상품 및 서비스 디렉토리 유지 관리)으로 수행되었습니다. .).

상품 및 서비스, 계약자 및 주문의 대규모 UNF 디렉토리와 동기화됩니다.


첫 번째 버전에서 모바일과 대규모 UNF 간의 데이터 교환

모바일 장치에서 입력된 주문은 큰 UNF로 끝나고 동기화되면 주문을 담당하는 모바일 장치에서 끝납니다. 모바일로 입력된 현금영수증, 상품판매 등의 문서는 대형 UNF로 갔지만 모바일 기기간 동기화가 되지 않았다. 동기화 모드의 모바일 응용 프로그램의 모든 작업은 주로 주문 수락 및 실행과 관련하여 수행되었지만 모바일 장치에 대한 본격적인 회계는 수행되지 않았기 때문에 컴퓨터에서 큰 UNF를 사용해야했습니다.

1차 버전에서는 이랬는데 나중에 상황을 바꿔서 모바일 UNF를 사용하는 시나리오 목록을 확장하여 유저들이 좀 더 편하게 작업할 수 있도록 했습니다.

데이터 동기화에 대해 조금

모바일과 대규모 UNF 간의 데이터 교환은 웹 서비스를 통해 이루어집니다. 모바일 UNF는 대규모 UNF 측면에 배포된 웹 서비스를 호출합니다. 대규모 UNF와 모바일 UNF의 데이터 구조는 다릅니다. 아키텍처를 설계할 때 데이터 교환을 위한 두 가지 옵션을 고려했습니다.
  1. 모바일 UNF의 데이터 구조를 복제하여 대규모 UNF에 데이터 구조를 생성하고 모바일 UNF와 "일대일"로 데이터를 교환합니다. 대형 UNF에서 데이터 변경 시 신규/변경된 데이터를 이 중복 구조로 옮기는 작업이 필요하며, 모바일 UNF와 데이터를 교환한 후 모바일 장치에서 들어와 중복 구조에 배치된 데이터를 대형 UNF로 변환한다. UNF 형식.
  2. 대규모 UNF의 구조와 직접 데이터를 교환하고 교환 규칙에 따라 "즉시" 데이터를 변환합니다.
우리는 두 번째 옵션을 선택하기로 결정했습니다. 첫 번째 옵션은 실제 데이터 교환의 단순성과 관련된 몇 가지 이점을 약속했지만 모바일 UNF의 새 버전에서 데이터 구조가 변경(확장)되었을 때 상황을 제대로 처리하지 못했습니다. 일대일 데이터 교환이 계속 작동하려면 대용량 UNF 서버를 업데이트해야 합니다. 여러 가지 이유로 받아들일 수 없는 일이었습니다.

플랫폼에 구현된 데이터 교환 메커니즘은 데이터 동기화를 위한 패키지 구성 작업의 대부분을 차지하므로 코드 작성을 최소한으로 줄일 수 있습니다. 교환 과정에서 1C: Enterprise 플랫폼의 표준 메커니즘이 사용됩니다. - 데이터 교환 메커니즘; 각 모바일 UNF에 대해 데이터 교환 노드가 Large UNF에 생성되고 변경 등록 서비스가 Large 및 모바일 UNF에서 사용되어 마지막 동기화 이후 변경된 데이터를 추적하는 식입니다.

모바일 응용 프로그램은 데이터 교환을 시작하고 플랫폼 메커니즘(마지막 동기화 이후 모바일 UNF에서 업데이트된 모바일 응용 프로그램 식별자 및 데이터 포함)을 사용하여 교환 패키지를 구성하고 이를 대규모 UNF로 보냅니다. 의 정보를 바탕으로 스타터 팩, Large UNF는 마지막 동기화 이후 Large UNF에서 변경된 데이터를 모바일 UNF에 대비하여 Packet으로 묶는다. XDTO 형식의 패키지는 XML로 직렬화된 1C 메타데이터 개체입니다. 각 패키지의 크기는 500개 이하입니다.

Mobile UNF는 이 데이터 패킷을 패킷 단위로 취합니다. 마지막 패키지를 다운로드한 후 모바일 UNF는 문서 게시, 참고서 작성 등 수신된 데이터를 처리하기 시작합니다. 연결이 끊어지면 패킷이 재개됩니다. 우리는 UNF에 대한 재개 메커니즘을 직접 작성했지만(플랫폼에 없음) 모바일 UNF는 소스 코드로 제공되기 때문에 개발자는 메커니즘 구현을 보고 응용 프로그램을 위해 빌릴 수 있습니다.

모바일 UNF와 대용량 UNF의 초기 동기화 중에는 모바일 UNF에서 작업할 수 없습니다. 프로세스 진행 상황을 보여주는 모달 창이 나타납니다. 모든 후속 동기화는 백그라운드이며 모바일 UNF의 작동을 차단하지 않습니다.

모바일과 대규모 UNF 간에 교환되는 전체 개체 목록:

  • 참고 도서:
    • 명명법
    • 상대방
    • 사용자 목록
  • 그 문서들:
    • 구매자 주문
    • 점검
    • 체크아웃 비용
    • 구매 영수증
    • 판매 인보이스
    • 생산
  • 레지스터(모든 가격은 아니지만 주요 가격만):
    • 가격공급업체
    • 상품 가격
  • 조직 세부정보:
    • 이름
    • 세금 정보
대규모 UNF에서 상품에는 상품 자체의 이미지가 있습니다. 트래픽을 최소화하기 위해 모바일 UNF에 사진을 업로드하지 않고 요청 시 로드됩니다(예: 모바일 UNF에서 제품 카드를 열 때).


제품 이미지가 있는 제품 카드

애플리케이션 진화 - 사용 사례 개발

일반적인 상황은 비즈니스가 성장하고 하나의 모바일 장치에서 모바일 UNF의 기능이 더 이상 충분하지 않다는 것입니다. 다른 직원(또는 직원)이 비즈니스에 나타나며 주문 작업도 수행해야 합니다.

모바일 UNF의 첫 번째 버전에서 마이그레이션 시나리오는 매우 간단했습니다. 모바일 UNF에 입력된 데이터는 대규모 UNF의 데이터베이스에 복사되고 사용자는 지금부터 컴퓨터에 기록을 보관해야 했습니다. 이 경우 모바일 UNF는 주문 작업 모드로 작동하며 더 이상 기록을 유지할 수 없습니다(모바일 UNF의 독립 실행형 버전에서와 같이).

물론 이것은 최종 사용자에게 그다지 편리하지 않았습니다. 그는 이미 모바일 장치에서 기록을 유지하는 데 익숙했으며 여기에서 강제로 컴퓨터 키보드로 이동해야했습니다. 모든 사람이 이것에 만족하지는 않을 것입니다.

따라서 모바일 UNF 운영에 대한 시나리오 목록을 확장했습니다. 이것은 우리의 출현에 의해 도왔습니다. 클라우드 서비스 http://1cfresh.com, 1cFresh 클라우드 기술 기반. 클라우드에 대규모 UNF를 배치하는 것이 가능해졌습니다. 사용자의 비즈니스가 성장함에 따라 모바일 애플리케이션을 사용하는 세 가지 시나리오를 설명했습니다.

  1. 아주 작은 사업입니다. 계정은 하나의 모바일 장치에 보관됩니다.
  2. 비즈니스가 성장하고 있습니다. 직원이 나타났습니다. 직원의 모바일 기기에 모바일 UNF를 넣을 수 있습니다. 동시에 데이터를 동기화하려면 모바일 장치 간에 데이터를 교환할 수 있어야 합니다. 이를 위해 파일을 통한 교환을 사용하지 않고 클라우드 http://1cfresh.com에 있는 대규모 UNF 버전을 동기화(동시에 백업)에 사용하기로 결정했습니다. 이 시나리오가 활성화되면 http://1cfresh.com 클라우드에 대규모 UNF 인스턴스가 생성되며 이 인스턴스의 기반은 모바일 장치 간에 데이터를 동기화하는 데 사용됩니다. 이러한 시나리오에서 하나의 모바일 장치를 사용하는 것은 무료입니다. 추가 장치우리는 75 루블 / 월을 청구하며이 시나리오에서는 3 개 이상의 장치를 사용할 수 없습니다. 동시에 모바일 장치 사용자는 영업 담당자, 서비스 엔지니어, 판매자와 같은 사전 정의된 역할을 할당받을 수 있습니다. 세부 설정역할); 이에 따라 모바일 애플리케이션의 기능이 제한됩니다. 클라우드에서 호스팅되는 대규모 UNF가 있는 웹 클라이언트 또는 씬 클라이언트를 통해 작업할 수도 있지만 클라우드 UNF의 기능은 모바일 UNF의 기능으로 축소됩니다. 그러나 클라우드 UNF에서 직접 작업할 필요는 없습니다. 모든 작업은 모바일 장치에서만 수행할 수 있습니다.
  3. 회사 규모가 일반 기업 규모로 성장했습니다. 이 경우 (웹 클라이언트 또는 씬 클라이언트를 통해) 추가 기능을 얻기 위해 클라우드에서 대규모 UNF의 정식 버전을 임대하는 것이 합리적입니다. CRM(모바일 UNF에 CRM을 포함할 계획이 있습니다. 그러나 지금까지는 대형 버전에서만 사용 가능), 창고 관리, 고급 가격 책정, 은행과의 작업 기능 및. 이 경우 대용량 UNF로 동작하는 모바일 기기의 대수에는 제한이 없습니다. 직장; Fresh의 UNF 또는 "박스형" UNF에 대한 1개의 라이선스는 1개의 모바일 애플리케이션을 무료로 사용할 수 있는 권한을 부여합니다.

애플리케이션 수익 창출 경험

내가 이미 쓴 것처럼 UNF 모바일 애플리케이션은 무료입니다. 얼마 전 우리는 (1C:Enterprise 모바일 플랫폼 버전 8.3.8에서 구현된 인앱 구매 기능을 사용하여) 애플리케이션에서 수익을 창출하기로 결정했으며, 추가 기능(프로덕션 및 추가 모바일 장치와 동기화하는 기능)을 판매했습니다.


"프로덕션" 기능의 구매는 일회성 구매이며 추가 모바일 장치와 동기화하는 기능은 매월 갱신해야 하는 구독으로 구성됩니다. 흥미롭게도 모바일 UNF는 구매 기능을 추가한 지 3주 만에 기업용 애플리케이션 판매 측면에서 상위 15개 Google Play에 진입했습니다.

결론

Mobile UNF는 (소스 코드의 양 측면에서) 상대적으로 작지만 꽤 인기 있는 제품입니다. 진화에 대한 이야기가 1C 기술 및 기타 개발 도구 모두에서 모바일 최종 사용자 제품 제작자에게 유용하기를 바랍니다.

1C 모바일 플랫폼에서 1C 서버 백엔드와 상호 작용하는 응용 프로그램을 만들 수 있다는 것을 상기하는 것이 유용할 것입니다. 1C 플랫폼의 모바일 애플리케이션에서 데이터 교환에 사용되는 프로토콜은 플랫폼에 독립적입니다(웹 및 HTTP 서비스, XML 및 JSON 지원 등). 따라서 플랫폼 간(Android, iOS, Windows) 모바일 클라이언트를 빠르고 동적으로 개발해야 하고 비즈니스 응용 프로그램에 대한 영구적인 인터넷 연결 없이 오프라인으로 작업할 수 있는 기능이 필요한 경우 1C 모바일 플랫폼이 적합할 수 있습니다. 최고의 선택당신을위한.

  • 지도 시간

안녕.

이 기사에서는 1C + Android에서 기업 모바일 애플리케이션을 개발하는 프로세스를 크게 단순화하는 신제품 "FBA Toolkit"을 소개하고자 합니다.
"FBA 툴킷"은 다음과 같습니다.
- 네이티브 IDE에서 "네이티브" Android 애플리케이션 개발 자바 언어;
- 1C: 엔터프라이즈 8.1(8.2) 데이터 소스, 기업 정보 시스템.

우선, 프레임워크는 Android용 비즈니스 애플리케이션을 개발하고 싶지만 새로운 플랫폼을 마스터하는 데 어려움을 겪는 1C 프로그래머에게 유용할 것입니다. Java에 대한 기본 지식은 개발을 시작하기에 충분합니다. 다음으로 몇 시간 만에 클라이언트-서버 응용 프로그램의 작동 프로토타입을 만드는 방법을 보여 드리겠습니다.

작업장 준비

개발 프로세스 자체를 시작하기 전에 개발자의 작업장을 준비하는 것이 필요합니다. 필요:

1. 설치 및 구성:
- 자바 SDK + 이클립스 + 안드로이드 SDK;
- 웹 서버(IIS 또는 Apache);
- 1C: 엔터프라이즈 8.1(8.2)

2. Eclipse의 경우 SVN 저장소에서 ActionBarSherlock 및 ru_profu1c_fba라는 두 개의 라이브러리 프로젝트를 가져옵니다.

3. FBA 구성 배포 키트를 설치하고 1C 기반 애플리케이션 솔루션과 결합합니다.

전체 사전 구성 프로세스는 다음 문서에 자세히 설명되어 있습니다.
개발자의 작업 공간 준비
"FBA" 구성 배포 키트 설치
"FBA" 구성을 애플리케이션 솔루션과 결합하고 웹 서버에 게시

설정은 오래 걸리지 않을 것이며, 아마도 필요한 소프트웨어 중 일부가 이미 설치되어 있을 가능성이 큽니다.

애플리케이션 설명

관리자에게 기업의 상황에 대해 정기적으로 알리도록 설계된 모바일 응용 프로그램 "관리자에게 보고"를 만들어 보겠습니다. 응용 프로그램은 3개의 화면으로 구성됩니다.
  1. "로그인" - 프로그램 시작 시 사용자 권한 부여.
  2. "보고서 목록"은 응용 프로그램의 기본 화면입니다. 1C 데이터베이스에서 데이터를 보고 업데이트하는 기능과 함께 사용 가능한 보고서 목록이 표시됩니다.
  3. "프로그램 설정"-여기서 사용자는 인증 매개변수와 1C 서버의 주소를 설정하고 1C 서버와의 자동 교환 일정을 구성합니다.

응용 프로그램은 1C 서버에서 데이터를 수신하기 위한 2가지 옵션을 구현합니다.

  1. "창고에 있는 물품"을 보고하십시오. 서버에서 형성되고 다음과 같이 컴파일됩니다. HTML 문서, 모바일 애플리케이션에서는 단순히 표시됩니다. 가장 간단한 옵션은 보고서 형식이 고정되어 변경할 수 없다는 것입니다.
  2. "재무 지표"를 보고합니다. 여기에서 보고서의 초기 데이터는 테이블 형태로 얻어지고 이에 따라 보고서가 작성됩니다. 이 옵션의 장점: 임의 형식의 보고서 출력, 다음을 포함합니다. 그래프 및 다이어그램 형태로; 선택 및 정렬 설치가 가능합니다.

1C에서 모바일 애플리케이션 템플릿 만들기

모바일 애플리케이션의 개발은 1C에서 시작되며 이는 놀라운 일이 아닙니다. 여기에서 메타데이터의 구성을 결정하고 교환 체계를 설정하며 향후 모바일 애플리케이션의 템플릿을 재생성합니다.

"관리자에게 보고"라는 이름과 식별자를 사용하여 "모바일 애플리케이션" 디렉토리에 새 요소를 만듭니다. SAMPLE_REPORT_HEAD.

메타데이터 목록에서 그룹 선택 "외부 데이터"도구 모음에서 추가 버튼을 클릭합니다. 그림과 같이 새 테이블의 매개변수를 입력합니다.

"지시자"- 보고서 표시기의 테스트 프레젠테이션, 라인(250)
"의미" - 수치표시기, 숫자(15.2)
일반적으로 열의 이름과 테이블 자체는 여기에서 러시아어로 설정되며 내장 1C 언어를 사용하여 테이블을 데이터로 채우는 데 사용됩니다. 확인을 클릭하면 테이블이 메타데이터 트리에 추가되고 모바일 애플리케이션의 경우 이름이 자동으로 라틴어로 번역됩니다.

따라서 우리는 "재무 지표"보고서에 대한 데이터를 전송할 값 표의 구조 (1C 측면에서)를 준비했습니다. 두 번째 보고서 "창고의 상품"의 경우 데이터가 외부 파일로 전송됩니다.

"교환 체계" 탭에서 "업로드" 플래그가 선택되어 있는지 확인하십시오. "Loading" 플래그는 중요하지 않습니다. 우리는 모바일 애플리케이션에서 이 테이블에 대한 수신된 변경 사항을 1C에서 처리하지 않을 것입니다.

변경 사항을 저장합니다. 툴바에서 "모바일 애플리케이션 템플릿" 버튼을 클릭하고 모바일 애플리케이션의 매개변수를 설정합니다.

"템플릿 디렉토리" - 생성된 모바일 애플리케이션 템플릿 파일이 저장될 디렉토리의 경로입니다.

"기본" 탭에서 패키지 이름을 지정하고 고유 식별자여야 합니다. 웹 사이트가 있는 경우 접두사를 생성하는 데 사용합니다. 이 예에서는 다음을 지정했습니다. en.profi1c.samples.report.head

웹 서비스 탭에서 IP 주소는 10.0.2.2이며 기본적으로 Android 에뮬레이터에서 액세스할 때 컴퓨터의 주소입니다. "웹 서비스 이름" 및 "응용 프로그램 하위 디렉터리" 필드에 웹 서비스를 게시할 때 지정한 데이터를 입력합니다.

1C 8.2의 경우 추가 하위 디렉토리가 있는 application 하위 디렉토리가 있을 가능성이 큽니다. /ws, 즉 demoFba/ws, 를 참조하십시오.
딸깍 하는 소리 만들다, android 프로젝트 템플릿이 생성됩니다.

1C의 보고서를 위한 초기 데이터 준비

1C 구성기에서 모듈 열기 fba구독 이벤트그리고 추가 다음 코드절차에 제출 전ExternalTable:

If Abbreviated LP(MobileApplication.Code) = "SAMPLE_REPORT_HEAD" Then If TableName = "Report to Manager" then //더미 보고서 데이터 ListTemp = fbaTotal.FromStringWithDelimiters("현금, 책임자와의 정산, 미수금 총액, 잔금, 미지급금 ,대량 판매"); RNG = 새로운 난수 생성기(123456789); ListTemp 루프의 각 ListItem에 대해 NewRow = ExternalTable.Add(); NewString.Indicator = ListItem.Value; NewString.Value = RNG.RandomNumber(0.999999) + Sin(RNG.RandomNumber(0.999)); 엔드 사이클; EndIf; EndIf
이 예에서 테이블은 가상 데이터로 채워져 있으며 실제 애플리케이션에서는 여기에 임의의 수의 보고서 표시기를 전달할 수 있습니다.
우리는 첫 번째 보고서에 대한 데이터를 알아냈고 두 번째 보고서를 준비해야 합니다. 동일한 모듈 fbaEventSubscription에서 프로시저에 추가 이진 데이터 보내기 준비다음 코드:

DD = 정의되지 않음; If ShortLP(MobileApp.Code) = "SAMPLE_REPORT_HEAD" If Identifier = "REPORT_PRODUCTS_IN_STOK" Then FileName = GetTemporaryFileName("html"); 보고서 = Reports.GoodsInWarehouses.Create(); Report.SaveReportTOHTML(FileName)이면 DD = New BinaryData(FileName); 파일 삭제(파일명); EndIf; EndIf; EndIf; 반환 DD;
코드를 주석 처리하겠습니다. 모바일 애플리케이션이 식별자가 "REPORT_PRODUCTS_IN_STOK"인 임의의 데이터(파일 형식)를 요청하면 보고서가 1C에서 실행되고 그 결과가 임시 파일에 저장됩니다. 그런 다음 이 임시 파일을 바이너리 데이터로 읽어 모바일 앱에 전달합니다. 임시 파일이 삭제됩니다.

이 경우 html 파일이 생성되는 방식은 중요하지 않습니다. 스프레드시트 문서를 HTML로 저장하거나 HTML을 수동으로 생성하기 위해 표준 1C 메커니즘을 사용할 수 있습니다. "FBA 데모" 구성, "창고에 있는 상품" 보고서에서 출력의 예를 볼 수 있습니다.

1C의 모든 것을 사용하여 Android에서 모바일 애플리케이션 개발을 시작합니다.

안드로이드 애플리케이션 디자인

1C에서 만든 Android 프로젝트 템플릿을 Eclipse 작업 공간으로 가져옵니다.

Eclipse를 시작하고 프로젝트를 가져옵니다. 파일 > 가져오기... Android 그룹에서 항목 선택 "작업 공간에 Android 코드 존재"딸깍 하는 소리 다음, Android 프로젝트 템플릿 디렉토리의 경로를 지정하고 마치다, 새 프로젝트가 작업 공간에 추가됩니다. 어려운 점이 있으면 사진에 과정이 설명되어 있습니다.

1. 1C에서 받은 값 테이블인 데이터 소스인 "재무 지표" 보고서를 만듭니다. 이렇게 하려면 추가 새로운 수업 ToChiefReport.java, 전체 소스 코드는 다음과 같습니다.

보여 주다

/** * 로컬 sqlite 데이터베이스의 데이터를 기반으로 보고서를 작성하는 예입니다. 데이터의 소스 *는 외부 테이블 "팀장에게 보고"입니다. * */ public class ToChiefReport extends SimpleMapHtmlReport ( @Override public int getResIdIcon() ( return R.drawable.report_01; ) @Override public int getResIdTitle() ( return R.string.report_name_to_chief; ) @Override public void build(Context context, IReportBuilderResult builderResult) ( try ( makeReport(context); ) catch (SQLException e) ( e.printStackTrace(); setHeader1("죄송합니다, 보고서가 생성되지 않았습니다!" ); ) super.build(context, builderResult); ) private void makeReport(Context context) throws SQLException ( DBHelper helper = new DBHelper(context); // 보고서 및 테이블 헤더 setHeader2("재무 표시기"); setTableHeader("Name ", "Amount, rub ."); // 테이블 행은 Map이 추가된 순서대로 정렬됩니다. mapData = 새로운 LinkedHashMap (); // 로컬 sqlite 데이터베이스, 외부 테이블에서 데이터 선택 // "관리자에게 보고" ExTableRaportRukovoditelyuDao dao = helper .getDao(ExTableRaportRukovoditelyu.class); 목록 행 = dao.select(); (ExTableRaportRukovoditelyu 행: 행) ( mapData.put(row.pokazatel, row.znachenie); ) setTableData(mapData); ) )
코드를 주석 처리하겠습니다. 상속받은 추상 클래스 SimpleMapHtmlReport는 2열 테이블로 간단한 HTML 보고서를 작성하도록 설계되었습니다.
처음 2개의 메서드 getResIdIcon() 및 getResIdTitle()은 목록에 표시할 보고서의 아이콘과 제목을 반환합니다. "build" 이벤트 핸들러에서 makeReport 메소드가 호출되며 여기에서 보고서 컴파일 구현이 수행됩니다.
보고서를 작성할 때 보고서와 테이블 헤더를 먼저 설정한 다음 로컬 sqlite 테이블의 모든 레코드를 보고서 테이블 행으로 읽습니다. 마지막으로 setTableData() 메서드에서 보고서 테이블에 대한 데이터를 설정합니다. 휴, 뻔한 일에 댓글을 달기란 얼마나 어려운 일인가.


2. 두 번째 보고서를 생성합니다. 여기에서 훨씬 더 간단합니다.

보여 주다

/** * 컴파일된 보고서 예제, 출력만 HTML 파일. 이 예에서 * 데이터 파일은 1C에서 생성되어 교환 중에 모바일 클라이언트로 전송되었습니다. * */ public class ProductsInStokReport extends SimpleCompiledHtmlReport ( // 1C에서 받은 파일이 저장되는 이름(교환 절차 참조 // MyExchangeTask) public static final String REPORT_FILE_NAME = "products_in_stok.html", public ProductsInStokReport(파일 파일) ( super(file); ) @Override public int getResIdIcon() ( return R.drawable.report_02; ) @Override public int getResIdTitle() ( R.string.report_name_products_in_stok 반환 ; ) )


3. 1C 서버로 미리 정의된 교환 절차를 확장해 봅시다. 여기에 한 단계 더 추가해 보겠습니다. 두 번째 보고서에 대한 데이터를 컴파일된 파일 형식으로 가져옵니다. ExchangeTask에서 상속된 MyExchangeTask 클래스를 추가해 보겠습니다.

보여 주다

/** * 사용자 정의 규칙으로 보완된 표준 교환 절차. * 또한 하나의 컴파일된 파일(보고서)을 얻습니다. * */ public class MyExchangeTask extends ExchangeTask ( // 1C에서 설정한 대로 보고 ID private static final String ID_REPORT_PRODUCTS_IN_STOK = "REPORT_PRODUCTS_IN_STOK"; public MyExchangeTask(ExchangeVariant exchangeVariant, WSHelper wsrvHelper, DBOpenHelper dbOpenHelper, DBOpenHelper dbOpenHelper) ( super(, ; ) @Override protected boolean doExecute() throws Exception ( // 사전 정의된 규칙에 따라 교환 단계를 실행합니다. boolean success = super.doExecute(); if (success) ( // 임의 데이터 가져오기 - 두 번째 보고서 onStepInfo("Getting reports. .. "); 문자열 fPath = appSettings.getCacheDir().getAbsolutePath() + "/" + ProductsInStokReport.REPORT_FILE_NAME, 파일 f = wsHelper.getLargeData(ID_REPORT_PRODUCTS_IN_STOK, null, "", fPath), 성공 = (f != null ); ) 성공 반환; ) )
웹 서비스 방법은 보고서 데이터를 가져오는 데 사용됩니다. 큰 데이터 가져오기, 성공하면 지정된 경로의 파일에 결과를 저장합니다. ID_REPORT_PRODUCTS_IN_STOK 식별자에 주의하십시오. 이는 PrepareBinaryDataToSend 메소드의 1C와 동일해야 합니다.


4. 기본 양식에 보고서 목록 표시. 파일 열기 res\activity_main.xml보고서 목록을 표시할 listView를 추가합니다.

MainActtiviy.java에서 다음을 추가합니다.

A) 목록에 대한 지역 변수
개인 ListView 목록;
b) 초기화 방법
private void init() ( list = (ListView) findViewById(android.R.id.list); // 보고서 목록을 표시하는 어댑터 만들기 ReportListAdapter 어댑터 = new ReportListAdapter(this,createReportList()); list.setAdapter( 어댑터), list.setOnItemClickListener(new OnItemClickListener()( @Override public void onItemClick(AdapterView)부모의, 보기 보기, int position, long id) ( // 보고서를 클릭하여 대화 상자에 표시 IReport report = (IReport) list.getItemAtPosition(position); report.onShow(MainActivity.this); ) )); )
양식 레이아웃을 설정한 후 onCreate()에서 호출
setContentView(R.layout.activity_main); 초기화();
c) 보고서 목록 초기화 방법
/* * 보고서 목록 준비 */ private List createReportList() ( 목록 lst = 새로운 ArrayList (); // 첫 번째 보고서를 생성하고, 파일이 저장되는 임시 디렉토리를 // 설정에서 가져옵니다. IReport report = new ProductsInStokReport(new File(getAppSettings() .getCacheDir(), ProductsInStokReport.REPORT_FILE_NAME)); lst.add(보고); // 다른 보고서를 만들고 목록에 추가 lst.add(new ToChiefReport()); )
d) 귀하의 규칙에 따라 교환을 시작하는 절차
/* * 내 규칙에 따라 교환을 시작합니다. 스케줄러에서 * (설치된 경우) 교환은 표준 규칙에 따라 유지되었습니다. */ private void startExchangeMyRules(ExchangeVariant variant,boolean cancelable) ( // WSHelper 웹 서비스 메소드 호출을 위한 도우미 wsHelper = new WSHelper(getExchangeSettings()) ; MyExchangeTask 작업 = 새로운 MyExchangeTask(변형, wsHelper, getHelper()); startExchange(작업, 취소 가능); )
그리고 onOptionsItemSelected 핸들러에서 startExchange(ExchangeVariant.FULL, true) 교환 프로시저에 대한 호출을 startExchangeMyRules(ExchangeVariant.FULL, true)로 변경합니다.

지원 준비, 승인 양식 및 프로그램 설정은 자동으로 생성되며 변경하지 않습니다.
에뮬레이터에서 테스트해 보겠습니다. 아무데도 실수하지 않았다면 응용 프로그램이 시작됩니다. 단, 인증 데이터(사용자 이름, 비밀번호)를 지정하지 않아 인증 창 대신 설정 창이 바로 표시됩니다.

사용자 이름 입력: 이바노프
비밀번호: 123456

1C 데이터베이스를 실행하고 모바일 직원 디렉토리를 엽니다. 모바일 장치로 사전 정의된 요소 "장치 에뮬레이터"를 지정하십시오. 표 부분"모바일 애플리케이션"은 "관리자에게 보고" 애플리케이션을 추가하고 동일한 사용자 이름과 비밀번호를 설정합니다.

에뮬레이터에서 교환 절차를 실행합니다(오른쪽 패널에 "위쪽" 화살표가 있는 버튼).

교환 결과는 알림에 표시됩니다.

클릭하여 응용 프로그램을 시작하거나 보기 자세한 정보교환이 실패한 경우 오류).

무슨 일이 있었는지 확인해 봅시다. 목록에서 보고서를 클릭합니다.

보여 주다


괜찮은! 보고서가 표시되고 버튼이나 제스처로 배율을 변경할 수 있습니다.


응용 프로그램이 준비되었으며 매우 기능적이고 쉽게 확장할 수 있습니다. 다른 보고서를 추가하는 것은 어렵지 않습니다.
*.doc, *.pdf 등 다양한 형식의 문서를 전송하고 외부 응용 프로그램을 사용하여 볼 수 있습니다. 예제의 소스 코드를 참조하십시오. 3개의 보고서가 더 있습니다.
  • Google 차트 도구를 사용하여 차트
  • jQuery 플롯 플러그인을 사용하여 플롯
  • 외부 응용 프로그램에 의한 PDF 보고서 출력(PdfReport.java)
나는 자세히 설명하지 않을 것이므로 기사가 큰 것으로 판명되었습니다. 질문이 있으시면 댓글로 답변해 드리겠습니다. 출력 결과는 다음과 같습니다.

보여 주다


전체 샘플 코드는 https://xp-dev.com/svn/fba_toolkit_public/samples/fbaSample4ReportHead/에서 다운로드할 수 있습니다.

HTML을 사용하여 보고서를 작성하면 다음을 포함한 다양한 보고서를 작성할 수 있습니다. 인터랙티브 요소와 함께. 예를 들어, 우리 프로젝트 중 하나에서 다음 보고서가 사용됩니다.

보여 주다

  • "부채" 필드의 경우 금액에 따라 조건부 색 구성표가 사용됩니다.
  • 미지급 송장의 전체 목록은 "모두" 표시를 클릭해야만 열리며 기본적으로 마지막 4개만 표시됩니다.

물론 아무 제한도 받지 않고 achartengine과 같은 보고서 및 차트를 표시하기 위해 타사 라이브러리를 사용하거나 자신의 그래프/차트를 만들 수 있습니다(Android SDK를 포함하여 많은 예가 있음).

그게 다야 http://profi1c.ru 웹 사이트에서 다른 예를 찾을 수 있습니다.
가까운 장래에 FBA 라이브러리의 대화형 요소 및 어댑터에 대한 수업을 추가하고 mapsforge 오프라인 맵으로 작업하는 방법을 보여줄 계획입니다.

타르 한 숟가락

"FBA Toolkit" 제품은 상업적으로 배포될 예정이며 현재 "데모 버전" 상태입니다. 테스트 및 학습에 자유롭게 사용할 수 있습니다.
제한:
  • 프로그램은 데모 라이선스 기간이 끝나면 작동을 멈춥니다. 31.12.13 이후;
  • 시작 시 알림이 표시됩니다.

가까운 장래(한 달 이내)에 상용 버전이 출시될 예정이며 비용 및 라이선스 절차에 대한 정보가 당사 웹사이트에 추가될 것입니다.

끝까지 읽어주셔서 감사합니다. 1C 및 Android 모두에 대한 의견에서 질문에 답변할 준비가 되었습니다.

태그: 태그 추가

소개

1C 플랫폼(8.3.5)의 새 버전에는 많은 새로운 기능이 있습니다. 그건 그렇고, 모르는 사람들을 위해 1C 개발자가 플랫폼의 새로운 혁신을 설명하는 리소스가 있습니다. 그 중 하나가 메커니즘입니다. 그는 내 관심을 끌었고 나는 재미있는 것을 구현하고 싶었습니다. 사이트와 비슷한 것을 만들 생각이 바로 떠올랐는데, 이 아이디어로 인포스타트에서도 저를 이해하지 못해서 제 머리에서 던졌습니다. 그는 그것을 버린 것 같았지만 그 아이디어는 그다지 크지 않고 실생활에서 실제로 사용할 수 있는 모바일 웹 애플리케이션으로 변형되었습니다.
제한된 수의 사용자(예: 직원)를 위한 가볍게 로드되고 간단한 모바일 웹 애플리케이션은 HTTP 서비스를 사용하여 1C에서 구현할 수 있다고 생각합니다.

모바일 웹 애플리케이션 "연락처"

결과부터 시작하겠습니다. 연락처 모바일 웹 앱은 단순해 보이지만 실제로는 그렇습니다. 처음에는 연락처를 검색하기 위한 필드만 표시됩니다.

누군가를 찾자(검색을 시작하려면 최소 3자를 입력해야 함). 누군가가 발견되었습니다.

알렉스에게 전화를 걸자.

티모시에게 편지를 쓰자.

이것이 전체 모바일 웹 애플리케이션입니다.

그건 그렇고, 모든 구성에 적응하기가 매우 쉽습니다.

구현에 대해 조금

사용된 도구:
- 1C 플랫폼 HTTP 서비스 메커니즘(버전 8.3.5부터)
- jQuery 자바스크립트 라이브러리 (http://jquery.com)
- 자바스크립트 라이브러리 jQuery 모바일 (http://jquerymobile.com)
- 1C:JSON()

"Contacts" HTTP 서비스는 모든 요청을 수락하고 처리를 위해 "ContactsMVP"에 전달합니다. 모바일 웹 애플리케이션의 모든 로직은 "Contacts MVP" 처리에 집중되어 있습니다.

이것이 요청 처리의 모습입니다.

함수 HandleRequest(요청) 내보내기 If MatchesResource(Request, "/index.html") then Return GetResourceIndexHTML(); ElseIf MatchesResource(Request, "/application.js") 그런 다음 GetResourceApplicationJS()를 반환합니다. ElseIf MatchesResource(Request, "/contacts.json") 그런 다음 GetResourceContactsJSON(Request)을 반환합니다. EndIf; EndFunctions

예를 들어 index.html 페이지의 반환은 다음과 같습니다.

GetResourceIndexHTML() 함수 응답 = New HTTPServiceResponse(200); 텍스트 = GetLayout("IndexHTML").GetText(); 답변.SetBodyFromString(텍스트); Answer.Headers.Insert("콘텐츠 유형", "텍스트/html"); 반환 응답; EndFunctions

복잡하지 않습니다. ContactsMVP.dt를 다운로드하여 메커니즘을 더 자세히 연구할 수 있습니다.

출판 기능

HTTP 서비스를 게시할 때 몇 가지 어려움이 있어 몇 가지 참고 사항을 더 쉽게 설명할 수 있습니다.
- 충분히 먹다 자세한 설명출판물에 대해 -주의 깊게 읽으십시오.
- 게시하기 전에 구성기를 관리자로 실행하는 것을 잊지 마십시오.
- 파일 버전으로만 HTTP 서비스를 시작할 수 있었는데, 클라이언트-서버 버전에서 약간의 오류가 발생했습니다.
- 모바일 웹 애플리케이션이 권한 요청 없이 작동하려면 데이터베이스에 등록된 사용자가 있는 경우 게시 후 default.vrd 파일에서 연결 문자열(point.vrd)에 Usr 및 Pwd 매개변수를 추가해야 합니다. 이브).

결론

나는 기사의 자료가 당신에게 유용하기를 바랍니다.

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

사전 설정

모바일 장치에서 작업을 시작하기 전에 1C: Link 서비스의 루트 인증서를 설치해야 합니다.

모바일 애플리케이션의 설정에서 1C: Link를 통해 게시된 정보 베이스의 경로를 지정해야 합니다. "1C: Link"를 통한 모바일 애플리케이션 작업의 특징은 웹 서비스에 대한 연결이 별칭(별칭)이 아닌 해당 이름으로 수행된다는 것입니다. 일부 모바일 애플리케이션(예: 1C:DO)에서는 연결 문자열이 자동으로 생성되며 웹 서비스 이름이 필요하지 않습니다.

모바일 애플리케이션 설정 기능

1C: 주문

  • 정보 베이스에서 "관리" 섹션으로 이동하여 "CRM 및 판매" 메뉴 항목을 선택하고 "1C: 고객 주문과의 데이터 동기화 허용" 모바일 애플리케이션 확인란을 선택하고 "동기화 설정" 링크를 클릭하고 설정을 추가합니다. 사용자를 위해.
  • 로그인: 1C 사용자 로그인
  • "1C:LINK" 설정이 활성화됨
  • 터널 이름:<ваш-туннель>
  • HTTPS를 통해 IS와 작동하려면 "SSL" 설정을 활성화해야 하고 HTTP를 통해 작동하려면 비활성화해야 합니다.
  • 목록: <путь веб-приложения>

모바일 문서 관리

  • 설정에서 정보 기반모바일 클라이언트를 켭니다.
    이렇게 하려면 관리자 권한이 있는 사용자로 정보 베이스로 이동하여 "설정 및 관리" - "프로그램 설정" - "데이터 교환" 메뉴 항목을 선택하고 "모바일 클라이언트 사용" 확인란을 선택합니다.
  • 연결 주소: https://<ваш-туннель>.웹사이트/<путь веб-приложения>
  • 로그인: 1C 사용자 로그인
  • 비밀번호: 그의 비밀번호

모바일 애플리케이션을 사용하려면 버전 1C: Document Management 8이 1.3.1.3 CORP 이상이어야 합니다.

1C: UNF

  • "1C: UNF" 모바일 애플리케이션의 동기화 설정에서 "기타 서비스" 섹션으로 이동합니다.
  • "응용 프로그램 주소"필드에 다음을 입력하십시오. (ru_RU 제외)
  • infobase 사용자의 로그인과 암호를 지정하고 "로그인" 버튼을 클릭하십시오.

1C: ERP 모니터

  • 로그인: 1C 사용자 로그인
  • 비밀번호: 그의 비밀번호
  • "1C:LINK" 설정이 활성화됨
  • 터널 이름:<ваш-туннель>
  • 목록: <путь веб-приложения>

1cfresh 회계 클라이언트

1C: Link에 게시된 기업 회계 부서와 동기화하려면 1cfresh Accounting Client 모바일 애플리케이션을 사용할 수 있습니다.

  • 모바일 응용 프로그램 "회계 클라이언트 1cfresh"의 설정에서 "기타 서비스" 섹션으로 이동하십시오.
  • "연결을 위한 기본 주소" 필드에 다음을 입력하십시오. https://tunnel name.link.1c.ru/web 애플리케이션 경로(ru_RU 제외)
  • infobase 사용자의 로그인과 비밀번호를 지정하고 연결 버튼을 클릭합니다.


이 프로토타입은 레이아웃과 개념을 생성하기 위한 간단하고 편리한 서비스인 Moqups를 사용하여 만들었습니다. 소규모 Android 애플리케이션의 신속한 프로토타이핑에 매우 적합합니다. 더 진지한 프로토타이핑 프로젝트의 경우 Photoshop과 Android UI 디자인 키트를 사용하는 것이 좋습니다! .

애플리케이션 설명

응용 프로그램은 3개의 화면으로 구성됩니다.

    "응용 프로그램 기본 화면" – 시작 시 작업 목록이 표시됩니다(기한, 작업 이름 및 완료 표시). 작업이 완료되면 목록에 완료된 것으로 표시됩니다.

"데이터 교환" 버튼을 클릭하면 직원이 즉시 서버에서 새 작업을 수신하는 절차를 시작할 수 있습니다. 서버와의 데이터 교환도 다음에서 수행됩니다. 자동 모드설정에 지정된 일정에 따라 1일 1회.

    "프로그램 설정"-여기에서 인증 매개 변수와 1C 서버의 주소가 설정되고 이 장치의 고유 식별 번호도 표시됩니다. 자동 교환 일정도 여기에서 설정할 수 있습니다.

모바일 클라이언트와 1C 서버 간에 교환되는 데이터의 구조

경로는 3개의 열이 포함된 값 테이블(1C 기준)이 됩니다.

1C에서 모바일 애플리케이션 템플릿 만들기

1C를 실행하고 "모바일 애플리케이션" 디렉토리를 선택하고 새 요소를 추가합니다. 여기서:

    "ID" 필드에 다음을 입력합니다. SAMPLE_APP_TASKS(또는 무엇을 생각하든) 이것은 구성 내에서 고유한 애플리케이션 식별자입니다. 교환 프로세스에서 애플리케이션을 고유하게 식별해야 하므로 동일한 직원이 하나의 모바일 장치에서 여러 애플리케이션을 사용할 수 있습니다.

    "이름" 필드에 모바일 애플리케이션의 이름을 입력합니다. 예를 들면 작업.

버튼에 참조 요소 기록 타다, 다음 생성 새로운 버전응용 프로그램에 대한 작업으로 설정하십시오.

메타데이터 목록에서 그룹 선택 "외부 데이터"" 추가하다"를 클릭합니다. 그림과 같이 새 테이블의 매개변수를 입력합니다.

일반적으로 열의 이름과 테이블 자체는 여기에서 러시아어로 설정되며 내장 1C 언어를 사용하여 테이블을 데이터로 채우는 데 사용됩니다.

모바일 애플리케이션의 각 데이터 테이블에는 문자열 유형의 기본 키(관계형 데이터베이스의 경우 PRIMARY KEY)가 있어야 합니다. 모든 객체 테이블(참조 및 문서)의 경우 키는 링크의 텍스트 표현(고유 식별자)이며 자동으로 채워집니다.

"정보 레지스터" 또는 "외부 테이블"과 같은 객체가 아닌 테이블의 경우 프로그램은 어떻게 채워야 하는지 알려야 합니다. 한 가지 옵션은 테이블의 하나 이상의 열에 대해 "색인" 플래그를 설정하는 것입니다. 이 예에서는 "Due Date" 및 "Task" 열에 대해 수행했습니다. 즉, 테이블에는 동일한 날짜에 대해 두 개의 동일한 작업이 포함될 수 없습니다.

딸깍 하는 소리 좋아요, 테이블이 메타데이터 트리에 추가되고 모바일 애플리케이션의 경우 이름이 자동으로 라틴어로 번역됩니다.

[FBA 규칙 중 하나: 1C에서 우리는 러시아어로 소스 코드를 작성하고 라틴어로 Java로 작성합니다. 식별자, 변수 이름 및 클래스에 러시아어 문자가 없으면 모바일 클라이언트를 설계할 때 많은 문제를 피할 수 있습니다.]

이름을 라틴어에서 영어로 바꿉니다. 원칙적으로 라틴 알파벳을 남길 수 있었지만 우리는 이미 이름을 결정했습니다 (위 표 참조).

변경 사항을 저장하고 " 모바일 앱 템플릿"를 클릭합니다.

"템플릿 디렉토리" - 생성된 모바일 애플리케이션 템플릿 파일이 저장될 디렉토리의 경로를 지정합니다.

"기본" 탭에서 패키지 이름을 지정하고 고유 식별자여야 합니다. 웹 사이트가 있는 경우 접두사를 생성하는 데 사용합니다. 우리의 예에서 이것은 en.profi1c.samples.tasks

"웹 서비스" 탭에서 서버 주소는 10.0.2.2이며 기본적으로 Android 에뮬레이터에서 액세스할 때 컴퓨터의 주소입니다.

"웹 서비스 이름" 및 "응용 프로그램 하위 디렉터리" 필드에 웹 서비스를 게시할 때 지정한 데이터를 입력합니다.

"정보" 탭에서 연락처 세부 정보 및 응용 프로그램에 대한 추가 정보를 입력합니다. "테이블 생성기" 탭의 설정은 변경되지 않은 상태로 유지됩니다.

딸깍 하는 소리 만들다, android 프로젝트 템플릿이 생성됩니다. 템플릿 생성 마법사 창을 닫고 변경 사항을 저장한 다음 "모바일 애플리케이션" 디렉토리 요소를 닫습니다.

관련 출판물