Не могу определить Владельца справочника

  • Автор темы tigrem
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

tigrem

#1
Привет Всем.

Помогите плиз решить проблемку.

Есть справочник "Сотрудники", и справочник "ИндивидуальныйГрафик". Справочник "ИндивидуальныйГрафик" подчинен спр. "Сотрудники". В справочнике "ИндивидуальныйГрафик" есть реквизит "Период" (тип "Дата"). Этот реквизит должен быть уникальным (т.е. пользователю нельзя давать возможность его редактировать). Но в тоже время пользователь должен иметь возможность выбирать дату периода, которую он хочет ввести. Для этого я делаю обработку "ВводГрафика", которую вызываю в процедуре "ПриВводеСтроки()" .
Возникла такая проблема, когда я открываю форму обработки в процедуре "ПриВводеСтроки()" я должен передать Владельца справочника "ИндивидуальныйГрафик", но Владелец всегда = null :) если справочник пустой.

т.е.

Процедура ПриВводеСтроки()
ф = ОткрытьФормуМодально("Обработка._ВводГрафика", Владелец, 0);
СтатусВозврата(0);
КонецПроцедуры

"Обработка._ВводГрафика" проверяет наличие записи в справочнике, и если не находит, то добавляет новую.


Спасибо.
 
I

Isabela

#2
Похоже, надо так :
Процедура ПриВводеСтроки()
Владелец = ТекущийЭлемент();
ф = ОткрытьФормуМодально("Обработка._ВводГрафика", Владелец, 0);
СтатусВозврата(0);
КонецПроцедуры
 
T

tigrem

#3
Похоже, надо так :
Процедура ПриВводеСтроки()
Владелец = ТекущийЭлемент();
ф = ОткрытьФормуМодально("Обработка._ВводГрафика", Владелец, 0);
СтатусВозврата(0);
КонецПроцедуры
Спасибо за ответ.

Но данный вариант не подходит, потому что обработка запускается из спр. "_ИндивидуальныйГрафик" и ТекущегоЭлемент будет значить элемент этого же справочника, а мне необходимо передать Элемент спр. "Сотрудники" (т.е. Владельца спр. "_ИндивидуальныйГрафик".
Если спр. "_ИндивидуальныйГрафик" имеет хоть одну запись, то мой вариант работает, а если справочник пуст, то Владелец всегда null.
:)
 
I

Isabela

#4
Сейчас некогда вспоминать, попробуй посмотреть, как устроен справочник "Цены" (подчинен номенклатуре)
 
T

tigrem

#5
Справочник "Цены" с "номенклатурой" это стандартный способ взаимодействия подчиненного спр. со спр. владельцем. У меня этот способ был немного не стандартным. Для ввода новой записи в подчиненный справочник у меня использовалась Обработка, а не форма элемента справочника, как в случае со справочником "Цены".

В результате пришлось сделать все более стандартно, примерно также как спр. "Цены", и не так хитро как было задумано вначале :).

Спасибочки за подсказки
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#6
ф = ОткрытьФормуМодально("Обработка._ВводГрафика", ТекущийЭлемент().Владелец, 0);
 
T

tigrem

#7
ф = ОткрытьФормуМодально("Обработка._ВводГрафика", ТекущийЭлемент().Владелец, 0);
Выше я тоже самое писал. Когда в подчиненном справочнике есть хотя бы одна запись, то данный вариант работает на все 100%, а если подчиненный справочник пуст и необходимо добавить первую запись, то данный вариант не работает.

Я думаю, что это происходит потому, что просто в подчиненном справочнике нет "ТекущегоЭлемента()" еще, и в этом случае 1С не предоставляет функций для определения "Владельца" справочника. :)

Вот так вот получается :)
 
L
#8
А если попробовать:

ф = ОткрытьФормуМодально("Обработка._ВводГрафика", ИспользоватьВладельца(), 0);

Если не поможет, то предварительно попробуйте записать вновь созданный элемент.
 
T

tigrem

#9
А если попробовать:

ф = ОткрытьФормуМодально("Обработка._ВводГрафика", ИспользоватьВладельца(), 0);

Если не поможет, то предварительно попробуйте записать вновь созданный элемент.
А я почему-то не обратил на метод "ИспользоватьВладельца()" должного внимания :( и всегда использовал этот метод для установки владельца справочника. Это мой большой промах... :(

И действительно метод "ИспользоватьВладельца()" используемый без параметров, возвращает Владельца справочника даже если справочник пустой.

Теперь можно будет сделать как я хотел :)

Спасибо огромное LSH
 
Статус
Закрыто для дальнейших ответов.