Имя: Пароль:
1C
1С v8
V8 Хранение длинных строк без доработок
,
0 Alexey790th
 
03.08.11
17:16
Конфу ЗУП трогать нельзя, поэтому все данные обработки храню в регистре ЗначениеСвойствОбъектов. Все круто но одна ячейка должна вмещать до 250 символов. Все доступные мне реквизиты вмещают до 200 символов.
Вопрос: можно ли сжимать строки для хранения ?
Может их можно хранить в другом виде ?
как проще поступить без доработок ?
если норм ответа не найду - буду делать двойную запись, а может и n-ную если клиент скажет что строки могут быть n-ого размера :) только другой прогер голову потом сломает :(
1 Jstunner
 
03.08.11
17:19
иногда клиентам полезно говорить фразу "это невозможно"
2 Scooter
 
03.08.11
17:26
(0)используй алгоритм сжатия
3 Alexey790th
 
03.08.11
17:44
(2) напиши пожалуйста сюда функцию сжатия с использованием  алгоритма Хаффмана
wiki:Код_Хаффмана
4 Armin
 
03.08.11
17:47
(0) А просто убрать ограничение (или увеличить до нужного размера) реквизит регистра ЗначениеСвойствОбъектов который превышает 200симв?
5 Alexey790th
 
03.08.11
17:47
(2) а понял ! нужно использовать сжатие хранилища значения :)
6 Mort
 
03.08.11
17:48
(1) Это только утвердит клиента в вашей некомпетентности.
Нужно говорить "это дорого для вас".
7 Alexey790th
 
03.08.11
17:48
(4) конфигурацию договорились не менять
8 Armin
 
03.08.11
17:49
(7) тогда (6) =)
9 IamAlexy
 
03.08.11
17:49
(7) ну тогда сделай общую папку на сервере, в допреквизите храни название текстового файла из этой общей папки, а соответственно в эту папку пиши содержимое своего длинного файла... :)
10 Steel_Wheel
 
03.08.11
17:50
Сделай свойство "найм_1", прими соглашение, что если в конце есть "_1", то надо искать все свойства: "_2", "_3", "_4"..."_9999", пока они есть, их значения надо конкатенировать и выдать в качестве результата
11 Mort
 
03.08.11
17:54
Одинэсники так напугали заказчиков изменением типовой конфигурации, что страх сделать минимальное изменение, которое никак не повлияет на дальнейшие обновления, вызывает кучу геморроя, который сопровождать гораздо дороже.
12 Alexey790th
 
12.08.11
13:47
В общем идеальное решение найдено:
В зупе есть справочник ХранилищеШаблонов - для хранения шаблонов писем. во в нем мы можем хранить что угодно, хоть картинки. в моем случае храню массив строк, разделенных спецсимволом. естественно размер данных "не ограничен".

Функция ВосстановитьХранилищеОбъектов(Наименование)
   Возвратное=Новый СписокЗначений();
   Значение=Справочники.ХранилищеШаблонов.НайтиПоНаименованию(Наименование).Шаблон.Получить();
   ТекПозиция=1;
   Результат=Распаковать(Значение,ТекПозиция);
   Пока Результат<>"" Цикл
       Возвратное.Добавить(Результат);
       ТекПозиция=ТекПозиция+1;
       НовРезультат=Распаковать(Значение,ТекПозиция);
       Если НовРезультат=Результат Тогда прервать; КонецЕсли;
       Результат=НовРезультат;
   КонецЦикла;
   Возврат Возвратное;
КонецФункции


Функция Распаковать(Значение,Расположение) Экспорт;
   ЗначениеНайдено=Ложь;
   ЛевыйСимвол=0;
   НайденоДелителей=0;
   ПозицияСимвола=0;
   Пока ПозицияСимвола<СтрДлина(Значение) Цикл
       Если Сред(Значение,ПозицияСимвола,1)=";" Тогда
           НайденоДелителей=НайденоДелителей+1;
           Если НайденоДелителей=Расположение Тогда
               ЗначениеНайдено=Истина;
               Прервать;
           КонецЕсли;
           ЛевыйСимвол=ПозицияСимвола+1;
       КонецЕсли;
       ПозицияСимвола=ПозицияСимвола+1;
   КонецЦикла;
   Результат=Сред(Значение,ЛевыйСимвол,ПозицияСимвола-ЛевыйСимвол);
   Возврат Лев(Результат,СтрДлина(Результат)-?(Прав(Результат,1)=";",1,0));
КонецФункции

ОснованияПлатежа    = ВосстановитьХранилищеОбъектов("Перечисление Основание платежа");
13 Alexey790th
 
12.08.11
13:49
(12) тип реквизита Шаблон - хранилище значения
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.