7 февр. 2021 г.

Удалить спецсимволы

 Для удаления спецсимволов используем два подхода:

1.
Функция УбратьЛишниеСимволы(Строка1) Экспорт
    НовСтрока = "";
    ПравильныеСимволы = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю";
    Для Сч = 1 по СтрДлина(Строка1) Цикл
        ТекСимв = Сред(Строка1, Сч, 1);
        Если Найти(ПравильныеСимволы, ТекСимв) > 0 Тогда
            НовСтрока = НовСтрока + ТекСимв;
        КонецЕсли;
    КонецЦикла;
    
    Возврат НовСтрока;
    
КонецФункции   

2.
Функция УбратьЛишниеСимволы(Строка1)
    
    мСпецСимволов = Новый Массив;
    мСпецСимволов.Добавить(",");
    мСпецСимволов.Добавить(".");
    мСпецСимволов.Добавить("\");
    мСпецСимволов.Добавить("=");
    мСпецСимволов.Добавить("-");
    мСпецСимволов.Добавить("_");
    мСпецСимволов.Добавить("/");
    мСпецСимволов.Добавить("!");
    мСпецСимволов.Добавить("@");
    мСпецСимволов.Добавить("#");
    мСпецСимволов.Добавить("$");
    мСпецСимволов.Добавить("%");
    мСпецСимволов.Добавить("^");
    мСпецСимволов.Добавить("&");
    мСпецСимволов.Добавить("""");
    мСпецСимволов.Добавить("`");
    мСпецСимволов.Добавить("'");
    мСпецСимволов.Добавить("?");
    мСпецСимволов.Добавить("*");
    мСпецСимволов.Добавить("(");
    мСпецСимволов.Добавить(")");
    мСпецСимволов.Добавить("№");
    мСпецСимволов.Добавить(";");
    мСпецСимволов.Добавить("%");
    мСпецСимволов.Добавить("");
        
    Для Каждого СпецСимвол Из мСпецСимволов Цикл 
        Строка1 = СтрЗаменить(Строка1, СпецСимвол, " ");
    КонецЦикла;
        
    Возврат Строка1;
    
КонецФункции   


Сохранить файл через браузер

 Для сохранения файла в контексте "Управляемых форм" используя браузер используем ниже подход

&НаКлиенте
Процедура СохранитьВФайл(Команда)
      
    #Если ВебКлиент Тогда      
        // Попробуем подключить расширение работы с файлами
        РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами();
        Если НЕ РасширениеПодключено Тогда
            // Расширение не установлено, пробуем установить
            НачатьПодключениеРасширенияРаботыСФайлами(Новый ОписаниеОповещения("Подключение1",ЭтаФорма,));  
        КонецЕсли;
    #КонецЕсли   
    
    // Поместим табличный документ во временной хранилище как файл MS Excel
    АдресХранилища = ПоместитьТабличныйДокументВоВременноеХранилищеНаСервере(ТабДок, "xlsx", ТипФайлаТабличногоДокумента.XLSX);
    
    Если АдресХранилища = Неопределено Тогда
        ПоказатьПредупреждение( , НСтр("ru = 'Ошибка сохранения файла'; uk = 'Помилка збереження файлу'"));
        Возврат;
    КонецЕсли;
        
    Попытка
        // Сам момент сохранения
        ПолучитьФайл(АдресХранилища, ЗаголовокДляФайла+".xlsx", Истина);
    Исключение              
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "ru = 'Не удалось записать файл. Возможно, недостаточно места на диске, диск защищен от записи или не подключено расширение для работы с файлами.'; uk = 'Не вдалося записати файл. Можливо, недостатньо місця на диску, диск захищений від запису або не має з''єднання розширення для роботи з файлами.'";
        Сообщение.Сообщить();
    КонецПопытки;
    
КонецПроцедуры
&НаСервере
Функция ПоместитьТабличныйДокументВоВременноеХранилищеНаСервере(ТабличныйДокумент, Расширение, ТипФайла)
    
    АдресХранилища  = Неопределено;
    ИмяФайла        = ПолучитьИмяВременногоФайла(Расширение);
    
    Попытка
        ТабличныйДокумент.Записать(ИмяФайла, ТипФайла);
        АдресХранилища = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла));
    Исключение
        Сообщить(ОписаниеОшибки()); ВызватьИсключение;
    КонецПопытки;
    
    Возврат АдресХранилища;
    
КонецФункции
&НаКлиенте
Процедура Подключение1(Подключено,ДопПараметры)Экспорт 
    
    Если Не Подключено Тогда
        НачатьУстановкуРасширенияРаботыСФайлами();
    КонецЕсли;
    
КонецПроцедуры
&НаКлиенте
Процедура Установка2(ДопПараметры)Экспорт 
КонецПроцедуры

Обработка заполнения табличной части

 Шаблон обработки заполнения табличной части для "Управляемых форм" выглядит так

Модуль объекта должен иметь основную экспортную функцию с именем СведениеОВнешнейОбработки()

Функция СведенияОВнешнейОбработке() Экспорт
    Назначения = Новый Массив;
    Назначения.Добавить("Документ.НалоговаяНакладная");
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", Назначения);
    ПараметрыРегистрации.Вставить("Наименование", Метаданные().Представление());
    ПараметрыРегистрации.Вставить("Версия","1.0");
    ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Дополнительная обработка табличной части'; uk = 'Додаткова обробка табличної частини'"));
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    
    Команды = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(Команды, Метаданные().Представление(),Метаданные().ПолноеИмя(),"ВызовКлиентскогоМетода",Ложь,);
    
    ПараметрыРегистрации.Вставить("Команды",Команды);
    
    Возврат ПараметрыРегистрации;   
КонецФункции
Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
КонецФункции    
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры  

В модуле формы

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт   
    БезОшибок = Истина;   
    Если БезОшибок Тогда
        ПоказатьПредупреждение(, НСтр("ru = 'Выполнено без ошибок'; uk = 'Виконано без помилок'"))
    Иначе 
        ПоказатьПредупреждение(, НСтр("ru = 'При обработке данных возникли ошибки'; uk = 'Під час обробки даних виникли помилки'")) 
    КонецЕсли;  
    //для обновления отображения
    Для Каждого стрДок Из ОбъектыНазначенияМассив Цикл 
        п = Новый Структура("Ключ", стрДок);
        Форма = ПолучитьФорму("Документ.НалоговаяНакладная.ФормаОбъекта", п);
        Форма.Прочитать();
    КонецЦикла; 
КонецПроцедуры  

Обращаю внимание на код ниже комментария
//для обновления отображения
Тут выполняется обновление табличной части, с которой был вызвана обработка заполнения

7 янв. 2021 г.

Incorrect credentials request response bad credentials Android Studio

Android Studio 4.1.1

Для того, чтобы не получать сообщение "incorrect credentials request response bad credentials" при подключении GitHub через токен


нужно "правильный" выбрать токен, а именно перейти

Заходим http://github.com - settings - Developer settings - Personal access tokens - нажимаем Generate new token .
В результате именно этот токен нужно использовать при авторизации в Android Studio.

3 мар. 2020 г.

Вызов из внешней обработки Макет внешнего отчета

Потребовалось из внешнего отчета, который запущена вот этим способом получить макет отчета

Код имеет следующий вид

ВнешниеОтчеты - внешний отчет как объект, получен вот так _ВнешнийОтчет = ВнешниеОтчеты.Создать(ВнешнийОтчет.ИспользуемоеИмяФайла); СКД = _ВнешнийОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СКД.НастройкиПоУмолчанию;
 

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