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

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

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