6 июл. 2017 г.

Отправить POST запрос HTTP-сервису 1С Предприятие

Есть хттп сервис на 1С, в качестве параметра получает джейсон. 

Нужно проверить этот хттп сервис из браузера. 

Ввожу в адресной строке браузера

data:text/html,<form action=http://192.168.0.96/NameHTTPService/hs/tcd-http/getMovingRegisters method=post enctype="text/plain"><input  name=value></form>

где
192.168.0.96 - адрес сервера хттп 1С
NameHTTPService - название хттп сервиса
getMovingRegisters - название метода 

в появившейся форме ввожу джейсон (т.е. параметр)


    "GUID": "c310475f-58ab-11e7-80da-6abab6d48e3b" 


далее в коде обраотки полученных данных хттп сервиса пишу

Функция getMovingRegisters(Запрос)
     
    Ответ = Новый HTTPСервисОтвет(200);     
    СтрокаJSON = Запрос.ПолучитьТелоКакСтроку();  
     
    //для отладки из браузера
    Если Найти(СтрокаJSON, "value=") <> 0 Тогда
        СтрокаJSON = СтрЗаменить(СтрокаJSON, "value=", "");
    КонецЕсли;
  
    .................
     
КонецФункции

где в результате в переменную СтрокаJSON будет чистый джейсон, который можем скормить

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(JSON);
Структура = ПрочитатьJSON(СтрокаJSON );

4 июл. 2017 г.

Не открывается форма внешней обработки

УНФ 1.6, подключение внешних печатных форм и обработок с предприятия задействовано с помощью БСП.

Старые методы подключения не подключали без проблем, но форма обработки не открывалась.

Новый способ, с минимальными надстройками подключения, выглядит вот так

Функция СведенияОВнешнейОбработке() Экспорт
     
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(); 
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
     
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = "Наименование внешней обработки";
    НоваяКоманда.Идентификатор = "НаименованиеВнешнейОбработки";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
     
    Возврат ПараметрыРегистрации;
     
КонецФункции

всю эту лабуду нужно запихнуть в модуль объекта внешней обработки.

Ну и самое главное РежимОткрытияОкна = Независимый в свойстве формы.

14 июн. 2017 г.

Печать с android

package com.example.jaroslavh.print1;
import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.support.v4.print.PrintHelper;import android.support.v7.app.AppCompatActivity;import android.view.View;
public class MainActivity extends AppCompatActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_main);
    }

   
public void doPhotoPrint(View view) {
        PrintHelper photoPrinter =
new PrintHelper(this);
        photoPrinter.setScaleMode(PrintHelper.
SCALE_MODE_FIT);
        Bitmap bitmap = BitmapFactory.
decodeResource(getResources(),
                R.drawable.
droids); // предварительно нужно добавив фотку droids в папку drawable
        photoPrinter.printBitmap(
"droids.jpg - test print", bitmap);
    }

}

Вывод в две колонки при печати \ 1С

Если нужно, что бы на одном табличном документе выводилось две копии по горизонтали тогда в процедуру передаем поле табличного документа размещенного на форме и табличный документ, который нужно задублировать и разместить горизонтально.

//++ jaroslav.h 12.06.2017 #1904
Процедура ВыводВНесколькоКолонок(ПолеТабличногоДокумента, ТабличныйДокументИсточник) Экспорт

т1 = Новый ТабличныйДокумент;
т2 = Новый ТабличныйДокумент;
т3 = Новый ТабличныйДокумент;

т1.Вывести(ТабличныйДокументИсточник);
т2.Вывести(ТабличныйДокументИсточник);

выс = Макс(т1.ВысотаТаблицы, т2.ВысотаТаблицы);

о1 = т1.ПолучитьОбласть(1,1, выс, т1.ШиринаТаблицы);
о2 = т2.ПолучитьОбласть(1,1, выс, т2.ШиринаТаблицы); ПолеТабличногоДокумента.Вывести(о1);

ПолеТабличногоДокумента.Присоединить(о2);

ПолеТабличногоДокумента.ПолеСверху = 1;
ПолеТабличногоДокумента.ПолеСправа = 1;
ПолеТабличногоДокумента.ПолеСнизу = 1;
ПолеТабличногоДокумента.ПолеСлева = 1;

ПолеТабличногоДокумента.АвтоМасштаб = Истина;
ПолеТабличногоДокумента.Защита = Истина;
ПолеТабличногоДокумента.ТолькоПросмотр = Истина; 

ПолеТабличногоДокумента.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

КонецПроцедуры //-- jaroslav.h 12.06.2017 #1904

Не влезает на одну страницу печати \ 1С

Для проверки, помещается ли готовый табличный документ на одну страницу печати, передаем в функцию

//++ jaroslav.h 12.06.2017 #1904
Функция ВозможностьПечатиНаОднойСтранице(ТабличныйДокументИсходный) Экспорт

ТабличныйДокументРезервный = Новый ТабличныйДокумент;
Возврат ТабличныйДокументРезервный.ПроверитьВывод(ТабличныйДокументИсходный);

КонецФункции //-- jaroslav.h 12.06.2017 #1904

готовый табличный документ и в результате получаем Истина или Ложь

Выпадающий список в Android

package com.example.jaroslavh.myapplication1;

import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Properties;

public class MainActivity extends AppCompatActivity {

    @Override    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        try {
            GetUser();
        } catch (Exception e) {
            print(e.toString());
        }

    }

    public void GetUser() throws Exception {

        Class.forName("org.firebirdsql.jdbc.FBDriver");

        Properties props = new Properties();
        props.setProperty("user""SYSDBA");
        props.setProperty("password""masterkey");
        props.setProperty("encoding""UTF8");

        Connection connection = DriverManager.getConnection(
                "jdbc:firebirdsql:192.168.0.96/3050:C:/IBExpert/db/TEST1.FDB",
                props);

        Statement statement = null;
        String query = " SELECT * FROM users";

        statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(query);

        Spinner spinner = (Spinner) findViewById(R.id.spinner);

        ArrayList<User> users = new ArrayList<User>();

        while (resultSet.next()) {
            users.add(new User(resultSet.getInt("ID"), resultSet.getString("NAME"), resultSet.getInt("PASSWD")));
        }

        ArrayAdapter<User> adapter = new ArrayAdapter<User>(this, android.R.layout.simple_spinner_item, users);
        spinner.setAdapter(adapter);

//        ArrayAdapter<User> adapter = new ArrayAdapter<User>(this, android.R.layout.simple_spinner_item, new User[]{//                new User(1, "Петя", 111),//                new User(2, "Саша", 222),//                new User(3, "Вася", 333),//        });
    }

    public void Exit(View view) {
        finishAffinity();
    }

    public void In(View view) {
        Intent intent = new Intent(this, ListOperations.class);
        intent.putExtra("p1""hello");
        startActivity(intent);
    }

    void print(String message) {
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG);
        toast.show();
    }
}





package com.example.jaroslavh.myapplication1;

/** * Created by jaroslav.h on 30.05.2017. */
public class User {

    int id;
    String name;
    int pass;

    User(int id, String name, int pass) {
        this.id = id;
        this.name = name;
        this.pass = pass;
    }

    User(){

    }

    @Override    public String toString() {
        return name;
    }

}

Сделать фотографию с android

package com.example.jaroslavh.myapplication1;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;

public class Nomenklature extends AppCompatActivity {

private static final int REQUEST_IMAGE_CAPTURE = 1;

@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nomenklature);

}

void dispatchTakePictureIntent(View view) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {

ImageView mImageView = (ImageView) findViewById(R.id.imageView2);

Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
}

Сохранить значение формы при смене ориентации экрана

package com.example.jaroslavh.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


EditText editText;
TextView textView;
TextWatcher tw;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editText = (EditText) findViewById(R.id.editText2);
textView = (TextView) findViewById(R.id.textView);

tw = new TextWatcher() {

public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

public void onTextChanged(CharSequence s, int start, int before, int count) {
}

public void afterTextChanged(Editable s) {
editText.removeTextChangedListener(tw);
textView.setText(s.toString());
s.clear();
editText.addTextChangedListener(tw);
}

};

editText.addTextChangedListener(tw);
}

protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
textView.setText(savedInstanceState.getString("textView"));
}

protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("textView", textView.getText().toString());
}

}

Сканировать из Android

Главный класс

package com.example.jaroslavh.myapplication;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


    EditText editText;
    TextView textView;
    TextWatcher tw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText2);
        textView = (TextView) findViewById(R.id.textView);

        tw = new TextWatcher() {

            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            public void afterTextChanged(Editable s) {
                editText.removeTextChangedListener(tw);
                textView.setText(s.toString());
                s.clear();
                editText.addTextChangedListener(tw);
            }

        };

        editText.addTextChangedListener(tw);
    }

    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        textView.setText(savedInstanceState.getString("textView"));
    }

    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("textView", textView.getText().toString());
    }

}
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07