У внешней обработки есть реквизит ИмяНакладной.
Выполнение кода сначала начинается в модуле формы, затем переходит в выполнение на форме и потом опять в модуль обработки.
При выполнении кода в модуле обработки реквизиту присваивается значение через код: ЭтотОбъект.ИмяНакладной = "1234";
При возвращении исполнения кода в форму - значение сразу становится пустим. Проверяю отладчиком через код: РеквизитФормыВЗначение("Объект").ИмяНакладной.
Ну и соответственно если мы перейдём опять в модуль объекта, то там ЭтотОбъект.ИмяНакладной уже примет пустое значение.
Почему пропадает значение реквизита?

Прежде чем ответить - прочтите внимательно! =)
---
Обсуждалось https://forum.infostart.ru/forum9/topic227997/
---
Потому что надо использовать ЗначениеВРеквизитФормы по завершению.
---
А у меня нет реквизита формы! И он мне не нужен ни на форме, ни в модуле формы! Он мне нужен в модуле обработки! Он там успешно присваивается, но потом пропадает.
---
РеквизитФормыВЗначение("Объект")
---
Чтобы вызвать метод объекта обработки (и любого другого), нужно:
1- РеквизитФормыВЗначение()
2- вызвать метод объекта
3- ЗначениеВРеквизитФормы()
---
Прежде чем ответить - прочтите внимательно! =)
К вам это пожелание относится в большей степени, нежели вы думаете))
---
Надо его сделать реквизитом обработки и все.
---
Так я в описании так и написал) Он уже является реквизитом обработки.
---
а. Ну тогда надо смотреть код - где-то переопределяется этот реквизит, значит.
Попробуй его переименовать на что-нибудь заведомо неиспользуемое.
---
Обсуждалось https://forum.infostart.ru/forum9/topic227997/
---
Столкнулся с подобной проблемой: Может кому-то пригодится.

Идет заполнение реквизитов обработки из DBF файла. При том первый реквизит тип строка, имя A упорно не заполняется. Решение до безобразия простое - еще раз заполнить! Однозначно глюк в 1С. Угрохал на решение проблемы полдня.

```1c
    Процедура ФайлШтрихКодовПриИзменении()
    // Вставить содержимое обработчика.
    Список.Очистить();
    Попытка
    xB = Новый XBase(ФайлШтрихКодов);
    xB.ЗакрытьФайл();
    xB.ОткрытьФайл(ФайлШтрихКодов);

    xB.Первая();
    Пока xB.ВКонце() = 0 Цикл
    НоваяCтрока = Список.Добавить();
```

 НоваяCтрока.A = xB.A; - тут реквизит А заполняется, и казалось бы все ОК. Но не тут-то было.

```1c
    НоваяCтрока.B = xB.B;
    НоваяCтрока.C = xB.C;
    НоваяCтрока.D = xB.D;
    НоваяCтрока.DMetall = xB.DMetall;
    НоваяCтрока.E = xB.E;
    НоваяCтрока.F = xB.F;
    НоваяCтрока.A = xB.G;
    НоваяCтрока.H = xB.H;
    НоваяCтрока.I = xB.I;
```

 НоваяCтрока.A = xB.A; - вот в этом месте повторное заполнение реквизита А, если не сделать то значение будет "0"

```1c
    xB.Следующая();
    КонецЦикла;
    xB.ЗакрытьФайл();
    Исключение
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Не удалось открыть файл штрих-кодов :" + ОписаниеОшибки();
    Сообщение.Сообщить();
    КонецПопытки;
    КонецПроцедуры
```
---
Очень странно, чудеса прям. Кстати, в чем смысл повторно открывать файл:
```1c
    xB = Новый XBase(ФайлШтрихКодов);
    xB.ЗакрытьФайл();
    xB.ОткрытьФайл(ФайлШтрихКодов);
```
 Также, хоть это тут и не при чем, зря вы оборачиваете в попытку почти весь код процедуры.
---
Да это от отчаяния. Ошибки то нет. Я уж грешил, может что с DBF не так, ну там cpzero.prg из пакета VFP9 запускал. DBF у меня не один такой - дохрена, несколько от разных источников - а результат одинаковый.

 Я такой код приделал после строки:

НоваяCтрока.A = xB.A; - тут реквизит А заполняется, и казалось бы все ОК. Но не тут-то было.
Сообщить(НоваяСтрока.A + " / " + xB.A);

В окне сообщений ПОЛНЫЙ ПОРЯДОК, а в реквизите обработки A - "0". Именно символ "0", не пусто.

Форму обработки я удалять и снова приделывал. Ну во избежание типа "колонка" там не тот тип и еще чего.