Ошибка создания нового документа в конфигураторе.

Новая тема
"Версия 8.1.9.57.

Создаю в конфигураторе копию типового документа "ПеремещениеТоваров".
Даю название новому документу "МатериалыЗабалансовые".
Задаю, чтобы он отражался в журналах "Журнал операций" и "СкладскиеДокументы".
Все остальные реквизиты, свойства, форма и т.п. в новом документе, такое же как и в документе
с которого скопировали, по крайней мере визуально.
В регистре бухгалтерии в "Хозрасчетный" новый документ указан в качестве документа регистратороа.

А теперь проблема. Запускаем 1С Предприятие.
Вводим новый документ, заполняем поля, проводим.
При нажатии на кнопку Дт-Кт должна открыться форма, в которой можно посмотреть проводки.
Но форма не открывается.
Проверяю регистр бухгалтерии "Журнал проводок" там все правильно, проводки новым документом
формируются.

Форма которая отображает проводки по данному документу (кнопка Дт-Кт) находится в Обработки.КорректировкаДвижений
И вызывается следующей процедурой из общего модуля:

Процедура РучнаяКорректировкаОсновнаяФорма(ЭтоНовый,Ссылка,ЭтотОбъект)  Экспорт

Если НЕ ЭтоНовый Тогда
ФормаНастройки = Обработки.КорректировкаДвижений.ПолучитьФорму("ОсновнаяФорма", , Строка(Ссылка));
ФормаНастройки.ДокументОбъект = ЭтотОбъект;
ФормаНастройки.Открыть();
КонецЕсли;

КонецПроцедуры // РучнаяКорректировкаОсновнаяФорма()

В вышеприведенной процедуре вызываемой форме "ФормаНастройки" передается ссылка на "ЭтотОбъект".
Так вот ЭтотОбъект ссылается на новый документ, то есть с передачей парметра все нормально, параметр правильно
указывает на наш новый документ.

После этой процедуры следом сразу срабатывает нижеприведенная
процедура основной формы обработки "КорректировкаДвижения":

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ДокументОбъект = Неопределено Тогда
Отказ = Истина;
Иначе
Если НЕ ОбщегоНазначения.ЕстьРеквизитДокумента("РучнаяКорректировка", ДокументОбъект.Метаданные()) Тогда
РучнаяКорректировка = Ложь;
Иначе
РучнаяКорректировка = ДокументОбъект.РучнаяКорректировка;
КонецЕсли;
Если НЕ (ДокументОбъект.Проведен ИЛИ РучнаяКорректировка) Тогда
Предупреждение("Документ не проведен. Для получения информации о результатах проведения документ необходимо провести.");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

И тут при же прерывает работу при проверке первого условия.
Если ДокументОбъект = Неопределено Тогда
Отказ = Истина;
то есть ДокументОбъект не содержит ссылки на новый документ.


В чем же проблема?


"
ДокументОбъект не содержит ссылки на новый документ, потому что ДокументОбъект - это Реквизит обработки "КорректировкаДвижения". Если открыть свойства реквизита ДокументОбъект, и посмотреть его тип, то станет понятно, что этот реквизит имеет "Составной тип данных", в котором галочками отмечены те документы, с которыми реквизит ДокументОбъект может взаимодействовать. Вам остается воткнуть галку напротив вашего нового документа "МатериалыЗабалансовые" и все заработает.
Вы дату вопроса видели?
да
Читают тему
(гостей: 1)

Быстрый переход