Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 3
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Прочитать файл (двоичные данные) как строку , аналог file_get_contents() в php          
Petre Подменю пользователя
сообщение 24.03.16, 13:13
Сообщение #1

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

Как прочитать двоичное содержимое файла в строку (аналог file_get_contents() в php)?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 24.03.16, 13:39
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13367
Из: Киев
Спасибо сказали: 4118 раз
Рейтинг: 3259.7

Может быть ЗначениеВСтрокуВнутр() ?

Petre Подменю пользователя
сообщение 24.03.16, 13:59
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

Vofka @ Сегодня, 13:39 *,
Не подойдет. Надо для использования в HTTP-запросе. Ключевое требование: не кодировать в base64.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 24.03.16, 14:36
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13367
Из: Киев
Спасибо сказали: 4118 раз
Рейтинг: 3259.7

А двоичные данные в том виде, как они есть в 1С пробовали передавать?

Petre Подменю пользователя
сообщение 24.03.16, 15:32
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

Может натолкнет на мысль. Вот описание: [необходимо зарегистрироваться для просмотра ссылки]. Файл необходимо передавать строкой прямо в url-е:
Аргумент attachments
attachments:

Ассоциативный массив файлов-вложений. В качестве ключа указывается имя файла, в качестве значения - бинарное содержимое файла (base64 использовать нельзя!), например:

attachments[quotes.txt]=text%20file%content

Используя скрипт PHP, содержимое файла можно получить через функцию file_get_contents. Например: $api_query = array(....,"attachments[test.pdf]"=>file_get_contents('test.pdf'),...);

В сообщение вложения будут добавлены в том же порядке, в котором перечислены. Можно вставлять в текст письма inline-картинки, добавляя их как файлы-вложения и ссылаясь на них в HTML так: img src="3_name.jpg" . Вместо числа три надо подставить порядковый номер вложения, а вместо name.jpg - имя вложения.

Файл аттача должен быть только латиницей с расширением.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 24.03.16, 16:08
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13367
Из: Киев
Спасибо сказали: 4118 раз
Рейтинг: 3259.7

А если отак:

ТД = Новый ТекстовыйДокумент();
ТД.Прочитать(ИмяФайла, КодировкаТекста.UTF8, Символы.ПС); // ИмяФайла - не обязательно текстовый файл
ФайлВВидеСтроки = ТД.ПолучитьТекст();


?

Сообщение отредактировал Vofka - 24.03.16, 16:09

Petre Подменю пользователя
сообщение 25.03.16, 10:33
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

Vofka @ Вчера, 16:08 *,
ТекстовыйДокумент читает только первые читабельные символы (может проблема с платформой, а может используется какое-то преобразование). Пробовал на jpeg-файле.
ЧтениеТекста - уже лучше, но надо поиграться с символами переноса строк.
Не думал, что вроде простая вещь вызовет столько проблем...

Сообщение отредактировал Petre - 25.03.16, 10:34


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

TipsyKID Подменю пользователя
сообщение 25.03.16, 15:22
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 159 раз
Рейтинг: 151.1

Потестил, вроде все норм с ПолучитьТекст() :
Процедура КнопкаВыполнитьНажатие(Кнопка)
    МассивБайт = ПолучитьМассивБайтИзФайла(<ПутьКФайлу>);
    ВывестиМассивВВидеТаблицы(МассивБайт,16);
КонецПроцедуры

Процедура ВывестиМассивВВидеТаблицы(м, квоВСтроке,HEX = Истина)
    
    //: м = Новый Массив;
    СтрокаШаблон = "    ";
    КоличествоЭлементов = м.Количество();
    КвоСтрок = Цел(КоличествоЭлементов/ квоВСтроке);
    Остаток  = КоличествоЭлементов - КвоСтрок * квоВСтроке;
    //Выводим полноценные строки
    Для инд_строка = 0 По КвоСтрок - 1 Цикл
        СтрокаСообщения = "";
        Для инд_колонка = 0 По квоВСтроке - 1 Цикл
            ИндМассива = инд_строка * квоВСтроке + инд_колонка;
            Если HEX Тогда
                СтрокаСообщения = СтрокаСообщения + Прав(СтрокаШаблон + DecToHex(м[ИндМассива]),4);
            Иначе
                СтрокаСообщения = СтрокаСообщения + Прав(СтрокаШаблон + м[ИндМассива],4);
            КонецЕсли;
        КонецЦикла;
        Сообщить(СтрокаСообщения);
    КонецЦикла;
    
    //Выводи остаток
    СтрокаСообщения = "";
    Для инд_колонка = 0 По Остаток - 1 Цикл
        ИндМассива = КвоСтрок * квоВСтроке + инд_колонка;
        СтрокаСообщения = СтрокаСообщения + Прав(СтрокаШаблон + DecToHex(м[ИндМассива]),4);
    КонецЦикла;
    Если HEX Тогда
        СтрокаСообщения = СтрокаСообщения + Прав(СтрокаШаблон + DecToHex(м[ИндМассива]),4);
    Иначе
        СтрокаСообщения = СтрокаСообщения + Прав(СтрокаШаблон + м[ИндМассива],4);
    КонецЕсли;
КонецПроцедуры


Функция ПолучитьМассивБайтИзФайла(ПутьКФайлу)
    
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(ПутьКФайлу, "ISO-8859-1", "");
    ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
    
    МассивБайт = Новый Массив;
    
    ДлинаТекста = СтрДлина(ТекстФайла);
    Для Сч = 1 По ДлинаТекста Цикл
        ТекСимвол = Сред(ТекстФайла, Сч, 1);
        МассивБайт.Добавить(КодСимвола(ТекСимвол));
    КонецЦикла;
    
    Возврат МассивБайт;
    
КонецФункции


Сообщение отредактировал TipsyKID - 25.03.16, 15:23


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Petre Подменю пользователя
сообщение 25.03.16, 15:25
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

TipsyKID @ Сегодня, 15:22 *,
Какой файл при этом читался?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

TipsyKID Подменю пользователя
сообщение 25.03.16, 15:26
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 159 раз
Рейтинг: 151.1

png и тестил на zip


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: Petre,

Petre Подменю пользователя
сообщение 25.03.16, 15:28
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

Надо проверить. Еще и на разных релизах попробую...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

TipsyKID Подменю пользователя
сообщение 25.03.16, 15:32
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 159 раз
Рейтинг: 151.1

Я использовал релиз 8.2.19.121


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Petre Подменю пользователя
сообщение 25.03.16, 15:57
Сообщение #13

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2741
Из: Київ, Україна
Спасибо сказали: 821 раз
Рейтинг: 817.8

У меня - 8.3.7


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 25.03.16, 17:21
Сообщение #14

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13367
Из: Киев
Спасибо сказали: 4118 раз
Рейтинг: 3259.7

Я на 8.2.19.130 смотрел.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.10.20, 12:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!