Имя: Пароль:
1C
1С v8
Обработка заполнения ТЧ в документе.
0 ЗлаяЗая
 
18.12.18
11:10
Делаю внешнюю обработку заполнения ТЧ в документе.
При этом должна открыться таблица, в которую нужно вывести список номенклатуры из документа. Таблица открывается, а в нее ничего не переносится.

В модуле объекта:
Процедура   Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) экспорт
        Сообщить(Объект);
    Форма = ПолучитьФорму("Форма");
    Форма.Открыть();  
КонецПроцедуры

в модуле формы
Процедура ПриОткрытии()
    Сообщить("Док "+ДокументОбъект);

в модуле объекта выдает название документа, в котором работаю. а в модуле формы- нет.

Подскажите, пожалуйста, как надо сделать.
1 Михаил Козлов
 
18.12.18
11:19
В форме в ДокументОбъект что? Может надо в  Инициализировать ДокументОбъект = Объект?
2 Serg_1960
 
18.12.18
11:24
(0) Вам бы сначала учебники почитать :(

Форма = Объект.ПолучитьФорму("Форма");
3 Serg_1960
 
18.12.18
11:29
(1) Предполагаю что это из описания "Синтаксис-помощника" - там есть "ДокументМенеджер", "ДокументСсылка", "ДокументОбъект" :)
4 ЗлаяЗая
 
18.12.18
11:36
(1) ДокументОбъект объявлен в реквизитах. В форме он как раз- ничто :( пусто
(2) если записать так, то ругается. Видимо потому, что объект- это документ, а у документа нет формы "Форма".
5 ЗлаяЗая
 
18.12.18
11:37
"Форма" это во внешней обработке, которая и должна открыться
6 Serg_1960
 
18.12.18
11:43
Ну,наверное, тогда типа так:

Форма = ПолучитьФорму("Форма");
Форма.ДокументОбъект = Объект;
Форма.Открыть();
7 Serg_1960
 
18.12.18
11:48
PS: принято сразу сообщать версию платформы; управляемые формы или нет; конфигурацию и её версиюи прочую информацию.
Можно и не сообщать. Если Вас интересует сам процесс, а не результат.
8 Мимохожий Однако
 
18.12.18
12:01
(0) Это для обычной формы. Какая конфигурация, леди?
9 ЗлаяЗая
 
18.12.18
15:17
(6) открылось :)
А теперь дальше :)
Из документа вызывается внешняя обработка для заполнения ТЧ. Вызвали. Выгрузили в нее ТЧ документа. Изменили данные. Теперь нужно эти данные перенести в документ.
На экране открытый документ не изменяется.

Процедура   Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) экспорт
     Форма = ПолучитьФорму("Форма");
     Форма.ДокументОбъект = Объект;
     Форма.Открыть();  

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