Имя: Пароль:
1C
 
ЗаписьТекста() Ошибка при вызове конструктора (ЗаписьТекста)
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) нет. гугл в помощь.