Username:
Password:
 Log me on automatically each visit
 
Aeroion.Ru
Форумы сервера Aeroion.Ru
Welcome

Aeroion.Ru Forum Index
  » Технические форумы
   » 1Сv8: Программирование, отчёты, обработки, статьи
    » Функция. Определение размера данных для 1С: Предприятия 8.Х
printer-friendly view
AuthorФункция. Определение размера данных для 1С: Предприятия 8.Х
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1127
Last Visited: Today at 01:43
Кредиты: 3594
Reputation: 47
Age: 41
Zodiac: Aquarius Pig

Универсальная функция, позволяющая определить размер данных (хранилища значения, двоичных данных, картинки, строки).

Разработана в ходе реализации проекта по взаимодействию с веб-сервером для контроля размера передаваемых данных.
Источник алгоритма расчёта: Как рассчитать размер данных помещенных в объект ХранилищеЗначения.

Code:
// Универсальная функция для определения размера данных (хранилища значения, двоичных данных, картинки, строки)
// Алгоритм расчета размера данных взят отсюда http://kb.mista.ru/article.php?id=386
//
// Параметры
//  <Данные>  - данные любого типа (хранилище значения, двоичные данные, картинка, строка)
//
// Возвращаемое значение:
//   РазмерДанных   - числовое значение в байтах
//
Функция ПолучитьРазмерДанных(Знач Данные)

    Если
ТипЗнч(Данные) = Тип("ХранилищеЗначения") Тогда
       
ДанныеХранилища = Данные.Получить();
        Если
ДанныеХранилища = Неопределено Тогда
            Возврат
0;
        КонецЕсли;
        Если
ТипЗнч(ДанныеХранилища) = Тип("Картинка") Тогда
           
ДанныеХранилища = ДанныеХранилища.ПолучитьДвоичныеДанные();
        ИначеЕсли
ТипЗнч(ДанныеХранилища) = Тип("Строка") Тогда
            Возврат
СтрДлина(ДанныеХранилища);
        КонецЕсли;
       
ДанныеBase64 = Base64Строка(ДанныеХранилища);
    ИначеЕсли
ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
       
ДанныеBase64 = Base64Строка(Данные);
    ИначеЕсли
ТипЗнч(Данные) = Тип("Картинка") Тогда
       
ДанныеBase64 = Base64Строка(Данные.ПолучитьДвоичныеДанные());
    Иначе
        Возврат
СтрДлина(XMLСтрока(Данные));
    КонецЕсли;

   
//Base64 - специальный формат хранения данных в текстовом формате
   
РазмерДанных = СтрДлина(ДанныеBase64) - ?(Прав(ДанныеBase64, 1) = "=", 1, 0) - ?(Прав(ДанныеBase64, 2) = "==", 1, 0);
   
РазмерДанных = Цел(РазмерДанных / 4 * 3); // в байтах

   
Возврат РазмерДанных;

КонецФункции

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Display posts from previous:   

Summary Rating For >> Функция. Определение размера данных для 1С: Предприятия 8.Х
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Функция. Добавление колонки данных в ...
для конфигураций 1C: Предприятия 8.1
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Sat 03 Apr, 2010 01:38 View latest post
Sergey
No new posts Выгрузка данных из Управления торговл...
Обработка (обмен данными УТ 10.3 / 10...
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 1 Tue 19 Apr, 2011 11:10 View latest post
Sergey
No new posts Функция Русский MetaPhone и другие дл...
нечёткий поиск поиск информации
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 2 Sun 16 May, 2010 02:33 View latest post
Sergey
No new posts Передача файлов и данных на веб-серве... Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Sun 17 May, 2009 00:03 View latest post
Sergey
No new posts Функция. Чтение значений реквизитов о...
1С: Предприятие 8.Х
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Sun 25 Jul, 2010 23:17 View latest post
Sergey




All times are UTC + 3 Hours
All times are synchronized with the forum server time
Users browsing this topic:2 Guests
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum