Имя: Пароль:
1C
1С v8
Обработка заполнения табличной части Выбрать документ
0 Nast
 
28.12.11
19:57
На форме внешней обработки заполнения табличной части документа расположен реквизит СсылкаНаОбъект с типом ДокументСсылка.ПоступлениеТоваровИУслуг.
Надо заполнять табличную часть документа Объект по данным выбранного документа.

Объект.Дата = НачалоДня(СсылкаНаОбъект.Дата);

Появляется ошибка
Ошибка при установке значения атрибута контекста (Дата)
    Объект.Дата = НачалоДня(СсылкаНаОбъект.Ссылка.Дата);

Как  выбрать документ?
1 wade25
 
28.12.11
19:58
СсылкаНаОбъект.Дата, а что такое объект.дата? В обработке реквизит?
2 Nast
 
28.12.11
20:00
Объект это документ, табличная часть которого заполняется. Это тоже реквизит
3 wade25
 
28.12.11
20:02
Объект, эт какой документ?) Ну а вообще ТЧ заполняется, для каждого из СсылкаНаОбъект.Товары цикл Объект.ТЧ.Добавить() и заполняешь...
4 Nast
 
28.12.11
20:02
(1) СсылкаНаОбъект.Дата
тоже ошибка документ не выбран
5 wade25
 
28.12.11
20:03
+ если управляемые формы, то ТЧ на клиенте не получишь)
6 Nast
 
28.12.11
20:06
Там по-другому заполняется табличная часть. Объект - это документ Установка цен номенклатуры. Если заполнять из модуля обработки, то можно просто к Объекту обращаться, а как из формы обработки?
7 Mort
 
28.12.11
20:14
Это чо УФ?
8 Nast
 
28.12.11
20:15
Что такое УФ? Управляемая форма? Нет, обычная форма
9 wade25
 
28.12.11
20:17
(8) Тогда так же как из модуля обращайся)
10 Nast
 
28.12.11
20:18
Почему у меня ошибка Не выбран документ?
11 Nast
 
28.12.11
20:19
Открывается форма, выбирается документ. Надо дату заполняемого документа установить такую же как у выбранного.
12 wade25
 
28.12.11
20:20
(10) Ну для начала может ВыбранныйДокумен = Объект.ПолучитьОбъект(); Не?
13 Nast
 
28.12.11
20:26
В модуле обработки процедура

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

В модуле формы процедуры по заполнению документа

Процедура КнопкаВыполнитьНажатие(Кнопка)  Экспорт
       
    Если Объект.Товары.Количество() > 0 Тогда

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

       Объект.Товары.Очистить();
   КонецЕсли;

  ДокументОприходования = ФормаВыбора.ОткрытьМодально();
 
   Если НЕ ЗначениеЗаполнено(ДокументОприходования) Тогда // ничего не выбрали
   
     Возврат;
   КонецЕсли;
   
ЗаполнитьТабличнуюЧастьПоОприходованиюНаОсновании(ДокументОприходования, Объект, Истина);
         
КонецПроцедуры

Процедура ЗаполнитьТабличнуюЧастьПоОприходованиюНаОсновании(ДокументОприходования, Объект, Перезаполнение=Ложь) Экспорт
   Перем Отказ;
     
   Отказ = Ложь;
   Объект.Дата = НачалоДня(ДокументОприходования.Дата);
.............
КонецПроцедуры
14 Nast
 
28.12.11
20:28
Даже если просто открывать форму выбора документов, а не на форме обработки располагать реквизит, то ошибка
15 Nast
 
28.12.11
20:30
А как получить документ, который заполняем? Если в модуле обработки, то просто Объект можно