Имя: Пароль:
1C
1С v8
Как из обработки обратится к открытому документу?
0 Yuriy78
 
12.12.11
01:39
Задача такая. Из формы открытого документа кнопкой я вызываю обработку, которая выполняет редактирование этого же документа, колонку "количество". И потом сохраняет открытый документ. Как в обработке получить ссылку на интересующий меня открытый документ и отредактировать его?
1 IamAlexy
 
12.12.11
01:40
открой любую типовую.. там тыщи примеров..
2 Grusswelle
 
12.12.11
01:40
ПолучитьОбъект()
3 Yuriy78
 
12.12.11
01:49
(2) А как ПолучитьОбьект() если он еще не сохранен?
4 Grusswelle
 
12.12.11
02:00
(3) ПолучитьСсылкуНового()
Возвращаемое значение:
Тип: ДокументСсылка.
Описание:
Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки.
См. также:
ДокументМенеджер, метод ПолучитьСсылку
5 mirosh
 
12.12.11
02:01
(0) получаешь форму обработки, указывая в параметрах к качестве владельца форму открытого документа.
Затем в форме обработке обращаешься к документу так:
ВладелецФормы.ДокументОбъект.
6 golden-pack
 
12.12.11
02:38
(2,4) что ты несешь ?
7 Yuriy78
 
12.12.11
12:58
(5) Спасибо, сейчас попробую. Похоже из всех советов ваш наиболее работоспособный. Вы уже применяли его на практике?
8 Yuriy78
 
12.12.11
23:16
В документе при нажатии кнопки вызываю форму. Вот этот код:
Аналоги=Обработки.КоличествоАналогов.ПолучитьФорму(ЭтаФорма,"ФормаДокумента", );
Аналоги.Открыть();
Этот код работает, форма обработки открывается. Но вот правильно я записал владельца формы?
В форме обработки пишу:
Процедура КнопкаВыполнитьНажатие(Кнопка)
   докПланЗакупок = ВладелецФормы.ДокументОбъект;
Выдает ошибку:
{Обработка.КоличествоАналогов.Форма.Форма(6)}: Значение не является значением объектного типа (ДокументОбъект)
   докПланЗакупок = ВладелецФормы.ДокументОбъект;
Где мой ошибка и как будет правильно?
9 Yuriy78
 
13.12.11
13:52
[CODE]Перем перПланЗакупок Экспорт;[/CODE]
На форме документа при нажатии кнопки:
[CODE]перПланЗакупок = ЭтотОбъект.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму());[/CODE]
в форме обработки пишу такой код:
[CODE]докПланЗакупок = перПланЗакупок;
   
   Для Каждого ТекущаяСтрока Из докПланЗакупок.СоставПлана Цикл
       НаимНом = ТекущаяСтрока.Номенклатура;
[/CODE]
Выдает ошибку:
{Обработка.КоличествоАналогов.Форма.Форма(7)}: Значение не является значением объектного типа (СоставПлана)
   Для Каждого ТекущаяСтрока Из докПланЗакупок.СоставПлана Цикл
Что не так сделал? Тип значения переменной перПланЗакупок "форма". Как написать правильно?
10 Yuriy78
 
13.12.11
13:54
в обработке, в модуле объекта объявил переменную:
[CODE]Перем перПланЗакупок Экспорт;[/CODE]
На форме документа при нажатии кнопки:
[CODE]перПланЗакупок = ЭтотОбъект.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму());[/CODE]
в форме обработки пишу такой код:
[CODE]докПланЗакупок = перПланЗакупок;
   
   Для Каждого ТекущаяСтрока Из докПланЗакупок.СоставПлана Цикл
       НаимНом = ТекущаяСтрока.Номенклатура;
[/CODE]
Выдает ошибку:
{Обработка.КоличествоАналогов.Форма.Форма(7)}: Значение не является значением объектного типа (СоставПлана)
   Для Каждого ТекущаяСтрока Из докПланЗакупок.СоставПлана Цикл
Что не так сделал? Тип значения переменной перПланЗакупок "форма". Как написать правильно?
11 Starhan
 
13.12.11
13:58
(9)(10) у формы нет таб части "состав плана" возможно только элемент формы таб поле с именем "Состав плана".
Обращайся либо через объект, либо через элементы формы
12 Starhan
 
13.12.11
14:00
в (8) неправильно передал параметры

смотри СП

Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)

Тип: Строка; ОбъектМетаданных: Форма . Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)

Тип: Форма; Элемент управления. Объект, который будет являться владельцем открываемой формы.
13 Seeker
 
13.12.11
14:08
Для начала надо сделать кнопку на форме, по которой ты будешь открывать свою обработку.
в модуле, на нажатие на кнопку пишешь примерно следующее

Обработка.МояОбработка.ПолучитьФорму("ФОрма", ЭтаФорма, ЭтотОбъект).Открыть();

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

ну вот как то так...
все писал руками, возможны синтаксические ошибки
14 Yuriy78
 
13.12.11
15:51
(13)
Вот что на все это оно выдало:
{Обработка.КоличествоАналогов.Форма.Форма(121)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено): Проверка мутабельных значений на заполненность не поддерживается
   Если ЗначениеЗаполнено(ВладелецФормы) Тогда
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс