Версия для печати темы (https://pro1c.org.ua/index.php?s=7be0ad05e3529212975500fb3b789f6c&showtopic=41741)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Работа с владельцем формы (1с 8.2.19.106)

Автор: andrew76 08.11.17, 11:16

Доброго всем дня !

Имеется документ с реквизитом Сотрудник ссылочного типа.Ссылка на Справочник Сотрудники.Документ привязан к журналу Документов.
При выборе Сотрудника в форме Списка справочника Сотрудники в журнале Документов делается Отбор по выбранному сотруднику.
Как сделать так,что если пользователь в открытом журнале документов (в этот момент уже работает отбор по сотруднику) решил добавить
новый документ ,в результате добавления (при открытии формы документа) реквизит Сотрудник заполнялся автоматически значением отбора.
А если новый документ добавляется пользователем из формы списка Документов,то реквизит Сотрудник автоматически не заполнялся.

Автор: Bernet 08.11.17, 12:35

andrew76 @ Сегодня, 11:16 * ,
Можно через Владельца формы вытаскивать по идее.
В форме документа проверяйте при открытии есть ли форма владелец - если есть то вы имеете доступ к её реквизитам и оттуда можно вытащить значение вашего отбора.

Автор: pablo 08.11.17, 14:34

Всегда можно использовать Параметры формы при ее открытии.
Хотя все зависит от того, как вы открываете форму - из кода через ОткрытьФорму (или аналогичными методами) или стандартными средствами (открытие формы по умолчанию).

Автор: andrew76 08.11.17, 15:50

pablo @ Сегодня, 17:34 * ,

Цитата(Bernet @ 08.11.17, 15:35) *
оттуда можно вытащить значение вашего отбора


Вот как раз на форме списка документов (не журнала) нет отбора.Отбор включен только на форме Журнала документов.
Как примерно можно этот момент описать программно ? Т.е. есть 2 формы.Одна форма с включенным отбором по Сотруднику.
Вторая форма вообще без отбора,ибо он там мне не нужен.Когда новый документ создается из-под формы журнала документов(значение отбора записывается при открытии в реквизит Документа Сотрудник).Если новый документ создается из-под формы просто списка документов в реквизит Сотрудник не пишется ничего,потому что отбор не определён вообще.

Автор: andrew76 09.11.17, 9:55

И как быть, если владелец формы -это ТабличноеПоле ? Как в этом случае отследить с какой формы была запущена процедура добавления
нового документа ?

Автор: logist 09.11.17, 14:23

Цитата(andrew76 @ 09.11.17, 10:55) *
И как быть, если владелец формы -это ТабличноеПоле

У ТабличногоПоля тоже есть Владелец.

Автор: andrew76 09.11.17, 15:35

Так что ли :

ЭтаФорма.ВладелецФормы.ВладелецФормы ?

Автор: logist 09.11.17, 15:50

Не вспомню, работает ли это в 8.2, в 8.3 это точно есть.
Если нет то назовите исходные ТбаПоля по разному, что бы могли отличить, только по владельцу формы.

Автор: andrew76 10.11.17, 4:14

Следующая строка- ЭтаФорма.ВладелецФормы.ВладелецФормы в 1с 8.2 выдает ошибку- Поле объекта не обнаружено :

Решил сделать вариант определения формы(вернее её табличной части по поиску определённой колонки в ней)
на нужной форме есть колонка в ТЧ с названием ВидДокумента ,на другой форме эта колонка отсутствует.

Процедура ПриОткрытии()    

Если ЭтоНовый тогда

  Если ЭтаФорма.ВладелецФормы.Колонки.Найти("ВидДокумента") = Неопределено Тогда
    
      Иначе
        //здесь определяю ,включен ли отбор по сотруднику
       // если включен отбор ,пишу значение отбора в реквизит Док-та Сотрудник
     сообщить("запуск из под формы ж-ла документов");

  КонецЕсли;    

КонецЕсли;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua