Группа: Пользователи
Сообщений: 56
Из: Краматорск, Донецкая, Украина
Спасибо сказали: 16 раз
Рейтинг: 0
Здравствуйте. В табличную часть документа поле "поступл" (тип справочник.ПлатежиПоступления) нужно организовать подбор, справочник справочник.ПлатежиПоступления подчинён справочнику справочник.ВидыРасходПриход с реквизитами для отбора("ДляПрихода" и "ДляРасхода" галочки в свойствах установлены) при котором имеються формысписка "ДляПрихода" и "ДляРасхода" в каждой из этих форм в модуле процедура
Процедура ПриОткрытии() УстановитьОтбор("ДляПрихода",1);//"1" здесь значение для отбора КонецПроцедуры
Как сделать чтобы при обработкеподбора открывалась формасписка "ДляПрихода" справочника справочник.Виды.РасходПриход (уже отфильтрованого с нужным значением отбора), затем при выборе элемента-хозяина открывалась формасписка дляПодбора подчинённого справочника справочник.ПлатежиПоступления и потом выбранный элемент залетал в табличную часть???????????.
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
Во-первых - все-таки лучше бы сначала аккуратнее сформулировать - "кто на ком стоял?" В форме документа? Какого? В реквизиты? В какие? Выполняется ПОДбор (нажатием на кнопку на кнопку, вызывающую процедуру, которая программно открывает подбор с помощью "ОткрытьПодбор") или все-таки ВЫБор значения (нажатием на кнопку выбора или клавишей F4 в самом реквизите)? Какого типа(+вида) реквизит(ы)? и как-откуда-что нужно выбрать - что потом открыть - и что в результате куда подставить?
Группа: Пользователи
Сообщений: 56
Из: Краматорск, Донецкая, Украина
Спасибо сказали: 16 раз
Рейтинг: 0
Цитата(Cthulhu @ 28.01.13, 19:41)
Во-первых - все-таки лучше бы сначала аккуратнее сформулировать - "кто на ком стоял?" В форме документа? Какого? В реквизиты? В какие? Выполняется ПОДбор (нажатием на кнопку на кнопку, вызывающую процедуру, которая программно открывает подбор с помощью "ОткрытьПодбор") или все-таки ВЫБор значения (нажатием на кнопку выбора или клавишей F4 в самом реквизите)? Какого типа(+вида) реквизит(ы)? и как-откуда-что нужно выбрать - что потом открыть - и что в результате куда подставить?
нажатием на кнопку на кнопку, вызывающую процедуру, которая программно открывает подбор с помощью "ОткрытьПодбор". В интерактивном (при тычке в строке табличной части документа для которого происходит подбор ) открываеться форма списка справочника для подбора , но без сортировки по реквизиту. Выбираю владельца, открываеться подчинённый справочник выбираю нужный элемент -- всё нормально залетает в документ. Нужно отсортировать по реквизиту справочник владелец
Группа: Пользователи
Сообщений: 56
Из: Краматорск, Донецкая, Украина
Спасибо сказали: 16 раз
Рейтинг: 0
Цитата(uanr81 @ 28.01.13, 20:07)
нажатием на кнопку на кнопку, вызывающую процедуру, которая программно открывает подбор с помощью "ОткрытьПодбор". В интерактивном (при тычке в строке табличной части документа для которого происходит подбор ) открываеться форма списка справочника для подбора , но без сортировки по реквизиту. Выбираю владельца, открываеться подчинённый справочник выбираю нужный элемент -- всё нормально залетает в документ. Нужно отсортировать по реквизиту справочник владелец
Прочтите сначала вроде всё описал
!
Правила, п.13
Попробую перефразировать. Нужно открыть подбор из формы документа , вначале выбрать элемент-владелец на форме спика справочника владельца, при выборе которого - откроеться формасписка подчиненных элементов, где при выборе элемента осуществиться тот выбор и выбранный элемент попадёт в табличную часть документа
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
С трудом продираясь через сложно-подчиненные конструкции, все-таки уточню: я правильно понял, что проблема заключается в сортировке формы списка справочника владельцев - при выборе владельца, для которого потом в реквизит выбирается элемент подчиненного справочника? если "да" - то вроде никто не отменял при просмотре формы списка Справочника "Меню"-"Действия"-"Сортировка"-"По наименованию" (или на форме списка ПКМ - "Сортировка"-"По наименованию", или даже просто Ctrl+2)... при этом во следующие разы эта самая форма списка будет открываться именно с той сортировкой, которая была (установлена) в прошлый раз. или об чём таки речь?..
Группа: Пользователи
Сообщений: 56
Из: Краматорск, Донецкая, Украина
Спасибо сказали: 16 раз
Рейтинг: 0
Цитата(Cthulhu @ 29.01.13, 18:44)
С трудом продираясь через сложно-подчиненные конструкции, все-таки уточню: я правильно понял, что проблема заключается в сортировке формы списка справочника владельцев - при выборе владельца, для которого потом в реквизит выбирается элемент подчиненного справочника? если "да" - то вроде никто не отменял при просмотре формы списка Справочника "Меню"-"Действия"-"Сортировка"-"По наименованию" (или на форме списка ПКМ - "Сортировка"-"По наименованию", или даже просто Ctrl+2)... при этом во следующие разы эта самая форма списка будет открываться именно с той сортировкой, которая была (установлена) в прошлый раз. или об чём таки речь?..
"справочник.ПлатежиПоступления" подчинён "справочник.ВидыРасходПриход". У хозяина два реквизита для отбора -"ДляПрихода", "ДляРасхода". Если элемент используеться, в данном реквизите устанавливаеться "1", элемент может использоваться и для одного и для другого и для обоих сразу. В документ для которого идёт подбор тип значения подбора "справочник.ПлатежиПоступления", какя должна быть процедура?
открываеться форма "не выбран владелец" , я уже и так писал
процедура добавить() открытьподбор("Справочник.ВидыРасходПриход","ДляРасхода"); конецпроцедуры процедура обработкаподбора(эл,конт) открытьподбор("Справочник.ПлатежиПоступления,"ДляВыбора",ел);// здесь в форму передавал элемент //владелец, только не понятно а куда вторую процедуру обработку подбора всунуть? конецпроцедуры
Сделал так :
перем спрпп,спрврп,спхоз,спподч; процедура добавить() перем хоз,подч,нп,пост; хоз=""; подч=""; спподч.УдалитьВсе(); если спхоз.ВыбратьЗначение(хоз,"Выбери тип затрат",,,0)=1 тогда спрпп.ИспользоватьВладельца(хоз); спрпп.выбратьэлементы(); пока спрпп.получитьэлемент()=1 цикл спподч.добавитьзначение(спрпп.текущийэлемент()); конеццикла; если спподч.ВыбратьЗначение(подч,"Выбери затрату",,,0)=1 тогда подск="Из казны в: "+строка(подч.наименование); су=0; если ВвестиЧисло(су,подск,8,2,)=1 тогда новаястрока(); Расход=подч; сумма=су; конецесли; конецесли; конецесли; конецпроцедуры спрпп=создатьобъект("справочник.ПлатежиПоступления"); спрврп=создатьобъект("справочник.ВидыРасходПриход"); спхоз=создатьобъект("списокзначений"); спподч=создатьобъект("списокзначений"); спрврп.ВыбратьЭлементыПоРеквизиту("ДляРасхода",1,,); пока спрврп.получитьэлемент()=1 цикл спхоз.добавитьзначение(спрврп.текущийэлемент()); конеццикла;
Но вопрос остался открытым. Спасибо за то что прочли. С этими подборами что то не выходит, подскажите как с ними справиться
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
Да вроде из ОбработкаПодбора при выборе владельца - никто не мешает сделать ОткрытьПодбор подчиненного справочника с установкой для него выбранного владельца, и в этой же ОбработкаПодбора выбранное из подчиненного справочника значение - занести в реквизит... надеюсь, что про различение в ОработкаПодбора того, что именно выбрано (по типу+виду выбранного значения) и так поятно?..
Группа: Пользователи
Сообщений: 56
Из: Краматорск, Донецкая, Украина
Спасибо сказали: 16 раз
Рейтинг: 0
спасибо Cthulhu, всё заработало. Вот код
процедура добавить() открытьподбор("Справочник.ВидыРасходПриход","ДляРасхода",,0); конецпроцедуры процедура обработкаподбора(эл,конт) если эл.вид()="ВидыРасходПриход" тогда открытьподбор("Справочник.ПлатежиПоступления","ДляРастрат",,0,эл);//В этой форме - процедура приоткрытии() метод использоватьвладельца(форма.параметр,0) иначеесли эл.вид()="ПлатежиПоступления" тогда подск="Из казны в: "+строка(эл.наименование); су=0; если ВвестиЧисло(су,подск,8,2,)=1 тогда новаястрока(); Расход=эл; сумма=су; конецесли; конецесли; конецпроцедуры
По суте для подбора можно пройти сколько угодно уровней подчинения. Ещё раз спасибо Cthulhu и всем кто потратил на меня время
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
Цитата(uanr81 @ 09.02.13, 11:31)
... для подбора можно ...
Пара замечаний. 1. В обработке подбора такой код потенциально ошибочен - потому что метод ".Вид()" есть не у всех типов данных. Лучше подобных ситуаций избегать - предварительно анализируя ТИП полученного из подбора значения: конструкцию
Если эл.Вид()="ВидыРасходПриход" ... ИначеЕсли эл.Вид()="ПлатежиПоступления" ... КонецЕсли;
лучше "обернуть" в проверку типа полученного из подбора значения - например (в данном конкретном случае):
Если ТипЗначенияСтр(эл)="Справочник" Тогда <... тот же код ...> КонецЕсли;
2. Некоторые операции в открытой форме можно сделать кодом прямо из того места, в котором эта форма открывается (и в которую возвращается управление после того, как форма открыта и ф ней отработала предопределенная процедура "ПриОткрытии), например (в данном конкретном случае):
//открытьподбор("Справочник.ПлатежиПоступления","ДляРастрат",,0,эл);//В этой форме - процедура приоткрытии() метод использоватьвладельца(форма.параметр,0) тКонт=Эл; // а можно и пропустить - если переменная "тКонт" описана в "Перем" открытьподбор("Справочник.ПлатежиПоступления","ДляРастрат",,0,тКонт); // получили в переменную контекст открытой для подбора формы тКонт.ИспользоватьВладельца(эл); // установили в открытой для побдора форме отбор по нужному владельцу // при этом никаких изменений в саму открываемую для подбора (или просто по ОткрытьФорму - так, на будущее) форму (списка) никаких изменений вносить не надо.
При этом в открытую форму управление перейдет уже после завершения выполнения всего кода после ОткрытьПодбор/ОткрытьФорму (до конца процедуры).
Сообщение отредактировал Cthulhu - 09.02.13, 15:34
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!