Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 июл 2024, 19:48

Получение и заполнение данных на форме обработки из документа

Автор Funt432286, 02 июл 2024, 18:29

0 Пользователей и 1 гость просматривают эту тему.

Funt432286

Всем доброго времени суток!

Если документ, у него соответственно есть Форма.документа, при работе со список этих документов все работает нормально.
Когда я эту же форму переношу в обработку, начинается проблемы.

У обработке есть своя форма списка и из нее открывается эта форма документа и должна заполняться данными из документа или если это новый, заполнять автоматически пользователя.

Но при открытии выдается ошибка
Ошибка при установке значения атрибута контекста (АвторСоставления)
{Обработка.СистемаНесоответствия.Форма.ФормаДокумента.Форма(28)}: АвторСоставления = ТекПольз.ФИО;
{Обработка.СистемаНесоответствия.Форма.ФормаСписка.Форма(10)}: ФормаЗаказа.Открыть();
по причине:
Документ не выбран

alexandr_ll

Funt432286, Приведите фрагмент модуля обработки с ошибкой

Funt432286

alexandr_ll,

это код в открываемой форме, ее данные и Типзначения представлены на фото

#Область ПроцедурыФормы

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   
    СтандартнаяОбработка = Ложь;
   
    Если СсылкаДок = Неопределено Тогда
    КонецЕсли;
   
КонецПроцедуры

Процедура ПриОткрытии()
   
    ТекПольз = Пользователи.ТекущийПользователь();
   
    Если СсылкаДок = Неопределено Тогда
   
        АвторСоставления    = ТекПольз.ФИО;   
        ОтделАвтора            = ТекПольз.Отдел;
        КодОтделаАвтора        = ТекПольз.КодОтдела;

    КонецЕсли;
   
КонецПроцедуры

#КонецОбласти

это код по которому она вызывается из основной формы обработки

ФормаЗаказа = ОбработкаОбъект.ПолучитьФорму("ФормаДокумента");

ФормаЗаказа.Открыть();

antoneus


Funt432286

antoneus,
это ссылка на уже созданный документ при открытии из формы списка обработки.
если она заполнена, то должна заполнять данными из документа, если не заполнена то документ автоматически новый

antoneus

Это я понял. И все-таки - что это? Переменная, реквизит формы? Как оно заполняется?

Funt432286

antoneus,

это экспортная переменная на форме документа, заполняется из формы списка при вызове формы документа.
Если вызов формы идёт с кнопки, то данная переменная пустая, если из ТЧ, то ей присваивается ссылка на документ.

Funt432286

antoneus,

вот код, который вызывает форму
    ФормаЗаказа = ОбработкаОбъект.ПолучитьФорму("ФормаДокумента");
    //ФормаЗаказа.СсылкаДок = ;
    ФормаЗаказа.Открыть();

если нажать на кнопку добавить, то должна открываться форма форма для нового документа
если выбрать строку из списка, то должна открываться форма с данными выбранного документа

Я так понимаю мне наверно нужно сначала получить объект документа, а потом с ним производить махинации

LexaK

Funt432286, каким-то сложным путем вы идете!
обычно используют форму нового документа, когда его нужно создать, открыть и не записывать его при этом.
т.е. пользователь решает нужен ли этот документ и может закрыть форму без создания документа.

в обработке вы можете создавать и заполнять документы просто как Объект базы,
(при этом заполняете ТОЛЬКО реквизиты документа)
затем просто записать его (без проведения) и открыть форму документа по его ссылке одной командой
ПоказатьЗначение(,ДокСсылка); //откроется форма нового документа
если помогло нажмите: Спасибо!

Funt432286

LexaK,

Такой сложный путь, потому что мне нужно полноценную работу с документами перевести на внешние обработки! (производственная особенность организации).
Чтобы через форму я мог бы открывать документы, создавать и редактировать!

Поэтому и хочу чтобы из списка обработки можно было бы вызывать форму для чтения, записи нового и изменения документов!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск