Ошибка при вызове метода контекста значениеизстрокивнутр

   zladenuw

01.07.13 — 11:53

Процедура КнопкаВыполнитьНажатие(Кнопка)

   МассивЭл = Новый Массив;

   МассивЭл.Добавить(ЭлементыФормы.ПолеВвода1.Значение);

   МассивЭл.Добавить(ЭлементыФормы.ПолеВвода2.Значение);

   МассивЭл.Добавить(ЭлементыФормы.ПолеВвода3.Значение);

   ЭлементыФормы.ПолеВвода4.Значение = ЗначениеВСтрокуВнутр(МассивЭл);

   ЭлементыФормы.ПолеВвода1.Значение = «» ;

   ЭлементыФормы.ПолеВвода2.Значение = «» ;

   ЭлементыФормы.ПолеВвода3.Значение = «»;

КонецПроцедуры

Процедура ОсновныеДействияФормыДействие(Кнопка)

   
   МассивЭл = ЗначениеИзСтрокиВнутр(ЭлементыФормы.ПолеВвода4.Значение);

   
   ЭлементыФормы.ПолеВвода1.Значение = МассивЭл[0];

   ЭлементыФормы.ПолеВвода2.Значение = МассивЭл[1];

   ЭлементыФормы.ПолеВвода3.Значение = МассивЭл[2];

КонецПроцедуры

{Форма.Форма.Форма(15)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)

   МассивЭл = ЗначениеИзСтрокиВнутр(ЭлементыФормы.ПолеВвода4.Значение);

по причине:

Ошибка преобразования

по причине:

Ошибка формата потока

   mikecool

1 — 01.07.13 — 11:54

все неправильно делаешь…

   zladenuw

2 — 01.07.13 — 11:55

(1) хочу несколько полей хранить в строковом представление. как мне их помещать?

   zladenuw

3 — 01.07.13 — 11:59

и так ошибка

Процедура КнопкаВыполнитьНажатие(Кнопка)

   ТД = Новый ТекстовыйДокумент;

   ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода1.Значение);

   ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода2.Значение);

   ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода3.Значение);

   ЭлементыФормы.ПолеВвода4.Значение = ЗначениеВСтрокуВнутр(ТД);

   ЭлементыФормы.ПолеВвода1.Значение = «» ;

   ЭлементыФормы.ПолеВвода2.Значение = «» ;

   ЭлементыФормы.ПолеВвода3.Значение = «»;

КонецПроцедуры

Процедура ОсновныеДействияФормыДействие(Кнопка)

   
   ТД = ЗначениеИзСтрокиВнутр(ЭлементыФормы.ПолеВвода4.Значение);

   
   ЭлементыФормы.ПолеВвода1.Значение = СтрПолучитьСтроку(ТД,1);

   ЭлементыФормы.ПолеВвода2.Значение = СтрПолучитьСтроку(ТД,2);

   ЭлементыФормы.ПолеВвода3.Значение = СтрПолучитьСтроку(ТД,3);

КонецПроцедуры

   mikecool

4 — 01.07.13 — 12:00

(2) зачем? есть сохраняемые реквизиты форм…

   Maxus43

5 — 01.07.13 — 12:03

зачем так вобще делать непонятно, а вот почему не работает чисто технически… по разному переменные массивов назови например, может в памяти массивЭл лежит…

   lamesnake

6 — 01.07.13 — 12:04

а такое что выдаст?

ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(МассивЭл))

   zladenuw

7 — 01.07.13 — 12:06

(5) да не. даже так не хочет.

(4) хочу в РС запихнуть строку и привязать к объекту. даже так не работает.

   СТ = Новый Структура;

   СТ.Вставить(«a»,ЭлементыФормы.ПолеВвода1.Значение);

   СТ.Вставить(«b»,ЭлементыФормы.ПолеВвода2.Значение);

   СТ.Вставить(«c»,ЭлементыФормы.ПолеВвода3.Значение);

   //ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода1.Значение);

   //ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода2.Значение);

   //ТД.ДобавитьСтроку(ЭлементыФормы.ПолеВвода3.Значение);

   ЭлементыФормы.ПолеВвода4.Значение = ЗначениеВСтрокуВнутр(СТ);

   ЭлементыФормы.ПолеВвода1.Значение = «» ;

   ЭлементыФормы.ПолеВвода2.Значение = «» ;

   ЭлементыФормы.ПолеВвода3.Значение = «»;

КонецПроцедуры

Процедура ОсновныеДействияФормыДействие(Кнопка)

   
   СТ = ЭлементыФормы.ПолеВвода4.Значение;

   СТ = ЗначениеИзСтрокиВнутр(СТ);

   
   ЭлементыФормы.ПолеВвода1.Значение = СТ[«a»];

   ЭлементыФормы.ПолеВвода2.Значение = СТ[«b»];

   ЭлементыФормы.ПолеВвода3.Значение = СТ[«c»];

КонецПроцедуры

   zladenuw

8 — 01.07.13 — 12:06

платформа 8,2,16,368

   Maxus43

9 — 01.07.13 — 12:07

СТ_2 = ЗначениеИзСтрокиВнутр(ЭлементыФормы.ПолеВвода4.Значение);

   zladenuw

10 — 01.07.13 — 12:13

(9) ошибка формата потока :(. а у тебя работает?

   Maxus43

11 — 01.07.13 — 12:17

у меня работает это:

   Масс = Новый Массив;

   Масс.Добавить(«1»);

   Масс.Добавить(«2»);

   Масс.Добавить(«3»);

   Зн = ЗначениеВСтрокуВнутр(Масс);

   Сообщить(Зн);

   Зн2 = ЗначениеИзСтрокиВнутр(Зн);

   Сообщить(Зн2[0]);

   Сообщить(Зн2[1]);

   Сообщить(Зн2[2]);

дело в другом. Не обращайся к элементам формы, зачем? к переменным самим обращайся

   zladenuw

12 — 01.07.13 — 12:20

да вот так все равно ошибка

   
   СТ_2 = ЭлементыФормы.ПолеВвода4.Значение;

   СТ_2 = ЗначениеИзСтрокиВнутр(СТ_2);

   
   ЭлементыФормы.ПолеВвода1.Значение = СТ_2[«a»];

   ЭлементыФормы.ПолеВвода2.Значение = СТ_2[«b»];

   ЭлементыФормы.ПолеВвода3.Значение = СТ_2[«c»];

   Maxus43

13 — 01.07.13 — 12:21

(12) ты читаешь вобще? не обращайся через Элементы формы к данным, к ним доступ напрямую есть

   Maxus43

14 — 01.07.13 — 12:22

нафиг вобще везде элементы формы натыканы?) переменные же есть, реквизиты формы

   Maxus43

15 — 01.07.13 — 12:22

скопипасти (11). работает? значит ответ в (13)

   zladenuw

16 — 01.07.13 — 12:26

(15) спасиб. да понедельник блин. надо пойти кофе пить. а то тупняк.

   Maxus43

17 — 01.07.13 — 12:27

дак реально из за ЭлементыФориы?

  

zladenuw

18 — 01.07.13 — 12:35

(17) ага

Ошибка формата потока в ЗначениеИзСтрокиВнутр

Случай простой причины этой ошибки. Функция «ЗначениеИзСтрокиВнутр» в случае ошибочного входного параметра приводит к исключению. Значение не формируется.

В данном случае требуется проверить:

  • как формируется данное значение?
  • не преобразуется ли оно в процессе?
  • не усекается/обрезается?

Также не будет лишним, добавить  конструкцию Попытку <>Исключение <> КонецПопытки.

У меня результат передавался через Web-сервис и при любой ошибке на удаленной стороне код становился неработоспособным.

Полная ошибка:

Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
ТЗ = ЗначениеИзСтрокиВнутр(Результат);
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока

Не экономьте на рекламе, охране и страховании.

Ошибка при работе в 1С 8 Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр) по причине: Ошибка преобразования по причине: Ошибка формата потока

Описание ошибки:
Ошибка в обработке, при загрузке/чтении данных из файла MS Excel:
Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
ТЗРез = ЗначениеИзСтрокиВнутр(Эксель.ПолучитьЛист(Лист));
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока

Найденные решения:

1C 8 Ошибка формата потока при загрузке из Excel, эксель

При нажатии на кнопку «Подробно…» оказывается удивительным, что ошибка возникает при использовании метода «ПолучитьЛист()» для объекта — Excel.

1C 8 при чтении листа Excel, эксель, Ошибка преобразования по причине: Ошибка формата потока

Опытным путем было определено, что ошибка возникала только под конкретным пользователем базы 1С на нескольких рабочих местах. С другой стороны, под другим пользователем с таким же набором прав ошибка «Ошибка преобразования по причине: Ошибка формата потока» не возникала при попытке получить данные из того же файла Excel что на исходном рабочем месте, что на других. Но все равно была предпринята попытка на исходном рабочем месте очистить кэш базы (временные пользовательские файлы) через удаление базы из списка баз и подключение — но это не изменило ситуацию.

Для базы были выполнены наиболее популярные операции для случая возникновения ошибки «Ошибка формата потока» (в конце статьи будет ссылка на описание всех общих рекомендация для этой ошибки): процедура «Тестирование и исправление…» базы в конфигураторе базы, проверка физической целостности базы. Но ошибка сохранилась для изначального пользователя, при работе которого возникла.

1C 8 ошибка при использовании метода ПолучитьЛист() Ошибка формата потока

Необходимо было быстро устранить ошибку, поэтому было решено создать нового пользователя базы с похожим именем. Под новым пользователем работа по загрузке данных из Excel выполнялась без ошибки формата потока. И для «красоты» учета в базе было запланировано на него с помощью обработки «Поиск и замена дублирующихся элементов справочников» заменить исходного пользователя. Но после объединения пользователей — ошибка снова возникла. Было ощущение, что ошибка возникает только для пользователя с конкретным именем. Поэтому в имени пользователя базы, в конце имени был добавлен символ «_», что отображалось только в списке пользователей базы при запуске сеанса работы с базой. У пользователя справочника «Пользователи» имя осталось прежним — для вывода в печатных формах как и раньше.

Т.е. по факту: к сожалению найти исходную причину ошибки формата потока в сторонней обработке при загрузке данных из Excel не получилось, но удалось устранить, если можно выразиться «симптомы». Дальнейшая работа была восстановлена.

Если данная приведенная информация не помогла устранить «Ошибку формата потока», то предлагается воспользоваться общей инструкцией по устранению данной ошибки: «Ошибка формата потока» в 1С: Предприятие 8. Общее руководство по устранению.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

12-11-2020

Журавлев А.С.
(Сайт azhur-c.ru)

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Имеется IDDOC документа. Как мне найти этот документ в базе?

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20882

Елена_В, поиск по уникальному идентификатору не помогает?

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Prikum пишет:

Цитата

                                             Ответ на
                   пост №1

                    Елена_В , поиск по уникальному идентификатору не помогает?

Так спешила, что никаких подробностей в первом посте не описала. Делаю так

                  ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6)));

                  Пока СтрДлина(ОбъектВнутреннегоФормата) < 13 Цикл
                        ОбъектВнутреннегоФормата = » » + ОбъектВнутреннегоФормата;                        
                  КонецЦикла;
                  Стр = «{«»O»»,»»0″»,»»0″»,»»130″»,»»0″»,»»0″»,»»»+ОбъектВнутреннегоФормата+»»»}»;
                  СсылкаНаОбъект =ComОбъект77.ЗначениеИзСтрокиВнутр(Стр)

> Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр):
> Неизвестная ошибка

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Prikum пишет:

Цитата

                                             Ответ на
                   пост №1

                    Елена_В , поиск по уникальному идентификатору не помогает?

Что имеется в виду?

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Имеет ли значение, с какой стороны добавлены пробелы в последнем параметре?

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Немного изменила код

                  ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6)));

                  ОбъектВнутреннегоФормата = СтрЗаменить(ОбъектВнутреннегоФормата,Символ(160),»» ;) ;

                                    Стр = «{«»O»»,»»0″»,»»0″»,»»130″»,»»0″»,»»0″»,»»»+ОбъектВнутреннегоФормата+»»»}»;
                  СтрИд = СтрЗаменить(Стр, «»»», «»»»»» ;) ;
                  СсылкаНаОбъект =ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд);            

при этом СтрИд = «{«»O»»,»»0″»,»»0″»,»»130″»,»»0″»,»»0″»,»»39258689″»}», в 7ке ЗначениеИзСтрокиВнутр(«{«»O»»,»»0″»,»»0″»,»»130″»,»»0″»,»»0″»,»»39258689″»}») = Отгрузка товаров, продукции 7870608 (01.08.15) , т.е. возвращается ссылка на объект, а в 8ке не работает            

Елена_В

Дата регистрации: 26.10.2007
Сообщений: 611

Рабочий код:

                  ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6)));                  

                  Стр =»{«»O»»,»»0″»,»»0″»,»»130″»,»»0″»,»»0″»,»+ОбъектВнутреннегоФормата+»}»;
                  СсылкаНаОбъект = 0;
                  ComОбъект77.ЗначениеИзСтрокиВнутр(Стр,СсылкаНаОбъект);

Показывать по
10
20
40
сообщений

Читают тему:

{Форма.Форма.Форма}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр) по причине: Ошибка преобразования по причине: Ошибка формата потока

все неправильно делаешь…

хочу несколько полей хранить в строковом представление. как мне их помещать?

зачем? есть сохраняемые реквизиты форм…

зачем так вобще делать непонятно, а вот почему не работает чисто технически… по разному переменные массивов назови например, может в памяти массивЭл лежит…

а такое что выдаст? ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(МассивЭл))

да не. даже так не хочет. хочу в РС запихнуть строку и привязать к объекту. даже так не работает.

СТ_2 = ЗначениеИзСтрокиВнутр(ЭлементыФормы.ПолеВвода4.Значение);

ошибка формата потока :(. а у тебя работает?

у меня работает это: дело в другом. Не обращайся к элементам формы, зачем? к переменным самим обращайся

да вот так все равно ошибка

ты читаешь вобще? не обращайся через Элементы формы к данным, к ним доступ напрямую есть

нафиг вобще везде элементы формы натыканы?) переменные же есть, реквизиты формы

скопипасти . работает? значит ответ в

спасиб. да понедельник блин. надо пойти кофе пить. а то тупняк.

дак реально из за ЭлементыФориы?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста найтипореквизиту неверно указан реквизит
  • Ошибка при вызове метода контекста значениевреквизитформы параметр 2
  • Ошибка при вызове метода контекста найтипокоду 1с
  • Ошибка при вызове метода контекста значениевреквизитформы дерево значений
  • Ошибка при вызове метода контекста значениевданныеформы