|
ЗаписьТекста() Ошибка при вызове конструктора (ЗаписьТекста) |
☑ |
0
MiracMC
24.03.20
✎
16:15
|
На = толстом клиента (режим Серверный) УПП 8.3.15.1700
работает вот такой код (суть его в кодировании информации в Base64)
Результ = "";
Птк = Новый ПотокВПамяти;
Текст = Новый ЗаписьТекста(Птк) ;
Текст.Записать(стр);
Текст.Закрыть();
ДД = Птк.ЗакрытьИПолучитьДвоичныеДанные();
Результ = Base64Строка(ДД);
Но в другой среде = толстом клиента (режим Серверный) УТП 8.3.9.2309
При выполнении этого же кода я получаю ошибку
Ошибка при вызове конструктора (ЗаписьТекста)
Текст = Новый ЗаписьТекста(Птк) ;
из за:
Ошибка доступа к файлу 'ПотокВПамяти'
В чем может крыться тайны сего явления?
Заранее всем благодарен!
|
|
1
lodger
24.03.20
✎
16:52
|
какой режим совместимости в УТП 8.3.9.2309
?
|
|
2
spiller26
24.03.20
✎
16:53
|
Что вы пишите туда?
|
|
3
lodger
24.03.20
✎
16:57
|
(2) высокая вероятность, что пилят маркировку и ккм. там похожие упражнения выполняются:
Процедура СформироватьДвоичныеДанныеДляЧисла(ДанныеМаркировки, Знач ЗначениеЧисла = Неопределено, Знач ЗначениеСтроки = Неопределено)
Префикс = ПрефиксКодированияРеквизита(ДанныеМаркировки.ТипИдентификатораТовара);
Тело = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(Тело);
ЗаписьДанных.ЗаписатьЦелое64(Число(ЗначениеЧисла), ПорядокБайтов.BigEndian);
Если Не ПустаяСтрока(ЗначениеСтроки) Тогда
ЗаписьДанных.ЗаписатьСимволы(ЗначениеСтроки);
КонецЕсли;
ЗаписьДанных.Закрыть();
Тело.Перейти(0, ПозицияВПотоке.Начало);
ЗаписьДанных = Новый ЗаписьДанных(Тело);
ЗаписьДанных.ЗаписатьЦелое16(Префикс, ПорядокБайтов.BigEndian);
ЗаписьДанных.Закрыть();
ДанныеМаркировки.РевизитКодаТовараHEX = Тело.ЗакрытьИПолучитьДвоичныеДанные();
ДанныеМаркировки.РевизитКодаТовара = Base64Строка(ДанныеМаркировки.РевизитКодаТовараHEX);
КонецПроцедуры
|
|
4
lodger
24.03.20
✎
17:02
|
(1) (0) фишка в том, что ПотокВПамяти как раз на 8.3.9 появился. и вероятно, "Ошибка доступа к файлу 'ПотокВПамяти'" - говорит о том, что платформа ожидает увидеть там файл, а не поток.
|
|
5
MiracMC
24.03.20
✎
23:37
|
(1) УТП 8.3.9.2309 Режим: Серверний (ущільнення: посилене)
так же как и в УПП 8.3.15.1700
(2) я туда передаю данные которые хочу закодировать Base64.... есть конкретно - запросы в формате JSON
(3) нет... в это месте у меня еще "чистые данные"... вот тут я их в Base64 и потом уже всякие извращения....
(4) мдя... скорее всего именно это и есть корень моей проблемы. Наверно в 8.3.9 просто еще не адаптирована была функция ЗаписьТекста() для передачи в нее не ссылки на файл а ПотокаВПамяти (((
Иными словами если я это будут тут делать через временный файл - я обойду это проблему?
|
|
6
lodger
25.03.20
✎
10:30
|
(5) через временный файл - заработает 100%.
однако
на вопрос из (1) ты не ответил. Режим совместимости так и остался неизвестен.
|
|
7
MiracMC
25.03.20
✎
17:59
|
(6) через файл реализовал. работает. спасибо
про режим - все что нашел "Режим: Серверний (ущільнення: посилене)".. и там и там одинаково..
это ж с "справка" - "о программе"?
|
|
8
lodger
26.03.20
✎
11:04
|
(7) нет. гугл в помощь.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший