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

Тема в разделе "1C и всё что с ней связано", создана пользователем tigrem, 20 май 2008.

Статус темы:
Закрыта.
  1. tigrem

    tigrem Гость

    Привет Всем.

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

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

    т.е.

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

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


    Спасибо.
     
  2. Isabela

    Isabela Гость

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

    tigrem Гость

    Спасибо за ответ.

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

    Isabela Гость

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

    tigrem Гость

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

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

    Спасибочки за подсказки
     
  6. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    ф = ОткрытьФормуМодально("Обработка._ВводГрафика", ТекущийЭлемент().Владелец, 0);
     
  7. tigrem

    tigrem Гость

    Выше я тоже самое писал. Когда в подчиненном справочнике есть хотя бы одна запись, то данный вариант работает на все 100%, а если подчиненный справочник пуст и необходимо добавить первую запись, то данный вариант не работает.

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

    Вот так вот получается :)
     
  8. LSH

    LSH Гость

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

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

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

    tigrem Гость

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

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

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

    Спасибо огромное LSH
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей