Справочники

Тема в разделе "1C и всё что с ней связано", создана пользователем rubi, 22 окт 2007.

  1. rubi

    rubi Гость

    Привет всем. У меня такая проблема - в табличной чати есть реквизит Подразделение, тип реквизита Справочник.Подразделения, при выборе значения в программе она сначала запускает справочник Организации (Юр. лица), т.к. он родительский, и только потом подразделения. Как мне сразу, проскакивая родительский справочник, попасть в справочник подразделений.
     
  2. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Есть метод Использоватьродителя(). Но тебе скорее всего надо вписать в свойствах элемента формы "Связан с" имя элемента, в которм выбирается Организация, и будет тебе счастье.
     
  3. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Zab, xто-то не нашел я подобного метода ни в синтакс-помошнике ни в описании. Можно подробнрее?
     
  4. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Для: rubi извини, соврал, тебе нужен:
    Для: KiR в 7.7. существуют оба метода. Если ты ищешь в восьмерке, то, возможно, и не найдешь...
     
  5. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Точно! Искал в восьмерке и не нашел))) Хотя для меня это в восьмерке актуально!)
     
  6. b00tch

    b00tch Гость

    в восьмерке это свойство элемента формы называется "Связь по владельцу"
     
  7. rubi

    rubi Гость

    я использовал ИспользоватьВладельца. Так получилось, когда я на форме делал отдельную кнопку и прописывал для неё процедуру. Но видите ли в чем дело, когда реквизиту табличной части присваиваешь значение Справочник.Подразделения, то в таблице при клике на ячейку этого реквизита появляется кнопка <...>, которая по умолчанию вызывает сначала родителя, а юр.лицо и так выбрано(на кого бы ни кликнул дважды, все равно для одной и той же организации все выйдет). Если добавить процедуру, то программа действительно все сделает как надо, но потом снова выдаст "Выбрать Юр. лицо" -> "Выбрать подразделение" Нельзя ли как-то просто не открывать окно выбора для справочника "Организации". Спасибо за помощь!
     
  8. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    b00tch, видел такое свойство, но что-то не разобрался как его использовать. У меня в форме поле договор при выборе которого открывается сначала справочник контрагентов, а потом уже договоров. Мне нужно задать владельца - контрагента - он один и не изменяется никогда. В принцыпе то же самое что описал rubi, но тока в восьмерке)
     
  9. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    попробуй всеже прописать в свойствах колонки табличной части, на вкладке "дополнительно" "Связан с" имя реквизита, в котором выбирается организация. Думаю, она у тебя есть. Это хороший вариант. Если же всетки такого реквизита нет - используй предопределенную процедуру ПриНачалеВыбраЗначения()
     
  10. b00tch

    b00tch Гость

    <!--QuoteBegin-KiR+23:10:2007, 07:37 -->
    <span class="vbquote">(KiR @ 23:10:2007, 07:37 )</span><!--QuoteEBegin-->b00tch, видел такое свойство, но что-то не разобрался как его использовать
    [snapback]82722" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    жми на <...> и ищи в ДокументОбъект реквизит контрагент...
     
  11. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Для: b00tch
    Жму... открывается окошко Виды связи. На вкладке Данные ничего нет. На вкладке События есть ОбработкаАктивацииСобытия. Выбрал ее и прописал такую процедуру:
    Процедура ОбюработкаАктивацииОбъекта(Элемент, СтандартнаяОбработка)
    Договор.Владелец = Справочники.Контрагенты.НайтиПоНаименованию("УНИВЕР");
    КонецПроцедуры
    Вызываю ее при открытии или при начале выбора... Вываливает ошибку - {Форма.Форма(77)}: Поле объекта недоступно для записи (Владелец)
    Договор.Владелец = Справочники.Контрагенты.НайтиПоНаименованию("УНИВЕР");
     
  12. b00tch

    b00tch Гость

    если у тебя на форме есть реквизит с типом Спр-владельца, то он должен появиться на вкладке Данные...
    либо такого реквизита нет, либо ты не для того элемента пытаешься настроить связь...
     
  13. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Для: b00tch
    Такого реквизита действительно на форме нет. Но может как-то можно не добавляя реквизит в форму владельцу другого реквизита назначить постоянное значение?
     
  14. b00tch

    b00tch Гость

    добавь невидимый реквизит, определяй его в ПриОткрытии...

    или прописывай выбор вручную в событии НачалоВыбора элемента...
     
  15. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Для: b00tch
    <!--QuoteBegin-b00tch+23:10:2007, 15:27 -->
    <span class="vbquote">(b00tch @ 23:10:2007, 15:27 )</span><!--QuoteEBegin-->или прописывай выбор вручную в событии НачалоВыбора элемента...[/quote]
    С этого места подробнее можно?
     
  16. b00tch

    b00tch Гость

    во, попробуй так:
    Код (Text):
    Процедура ПриОткрытии()
    ...
    ЭлементыФормы.Подразделение.ВыборПоВладельцу(Справочники.Контрагенты.НайтиПоКоду("12345"));
    ...
    КонецПроцедуры
     
  17. rubi

    rubi Гость

    Огромное спасибо Zab, процедура ПриНачалеВыбораЗначения действительно помогла. Она уже была в модуле формы, я только добавил следующий код (кому интересно):

    Процедура ПриНачалеВыбораЗначения(ЭлемД, ФлОб)
    ...
    ИначеЕсли ЭлемД = "ПодраздСп" Тогда
    ФлОб = 0;
    Конт = ВыбраннаяФирма;
    ОткрытьФорму("Справочник.Подразделения",Конт);
    Если Форма.МодальныйРежим()=1 Тогда
    Если ПустоеЗначение(Конт) = 0 Тогда
    ПодраздСп = Конт ;
    КонецЕсли;
    КонецЕсли;
    ...
    КонецПроцедуры // ПриНачалеВыбораЗначения()
    :)
     
  18. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    <!--QuoteBegin-b00tch+23:10:2007, 17:59 -->
    <span class="vbquote">(b00tch @ 23:10:2007, 17:59 )</span><!--QuoteEBegin-->во, попробуй так:
    КодПроцедура ПриОткрытии()
    ...
    ЭлементыФормы.Подразделение.ВыборПоВладельцу(Справочники.Контрагенты.НайтиПоКоду
    ("12345"));
    ...
    КонецПроцедуры[/quote]
    Спасибо, конечно... но что-то я все равно туплю...
    ЭлементыФормы чему должно быть равно?
     
  19. b00tch

    b00tch Гость

    ЭлементыФормы - предопределенная коллекция элементов текущей формы...
    инициализировать ее не надо...
     
  20. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    <!--QuoteBegin-b00tch+24:10:2007, 14:35 -->
    <span class="vbquote">(b00tch @ 24:10:2007, 14:35 )</span><!--QuoteEBegin-->ЭлементыФормы - предопределенная коллекция элементов текущей формы...
    инициализировать ее не надо...[/quote]
    Гм... странно тогда, ибо если делаю это в процедуре при открытии - вываливает такую ошибку
    {Форма.Форма(84)}: Метод объекта не обнаружен (ВыборПоВладельцу)
    ЭлементыФормы.Договор.ВыборПоВладельцу(Справочники.Контрагенты.НайтиПоНаименован
    ию("УНИВЕР"));
     
Загрузка...

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