|
отбор в подчиненном справочнике | ☑ | ||
---|---|---|---|---|
0
Elf56
06.03.18
✎
09:21
|
Всем доброго времени суток.
Имеется 1С:Предприятие 8.3 (8.3.10.2667) И самописная конфигурация Есть справочник "Основной" и подчиненный ему справочник "Подчиненный". Справочник "Подчиненный" отображается на форме справочника "Основной" с отбором по владельцу формы обычные. Также в процедуре "При получении данных" в табличной части отображающей "Подчиненный" справочник есть запрос получающий по определенному условию элементы подчиненного справочника владельца. Далее полученный список помещается в такое условие ТаблицаПодчиненногоСправочника.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ТаблицаПодчиненногоСправочника.Отбор.Ссылка.Значение = СпПозиции; ТаблицаПодчиненногоСправочника.Отбор.Ссылка.Использование = Истина; ЭлементыФормы.ТаблицаПодчиненногоСправочника.НастройкаОтбора.Ссылка.Доступность = Истина; где СпПозиции массив полученный из запроса. И вот что удивительно если запустить 1с то все будет работать верно, но процедуры "ПриВыводеСтроки" и "ПриПолученииДанных" будут срабатывать каждую секунду, Если же закоментировать выше указанный код т.е. не добавлять еще одного условия то процедуры не будут вызываться каждую секунду. Почему так получается? И еще мне нужно в процедуре "ПриВыводеСтроки" использовать параметр ДанныеСтроки.Ссылка, но почему то если в табличной части подчиненного справочника интерактивно из формы по стандартной кнопке табличной части отлючить отбор то параметр ДанныеСтроки становится равным НЕОПРЕДЕЛЕНО, а в процедуре у меня есть обращение к ДанныеСтроки.Ссылка, соответственно при отлючении отбора вываливается ошибка. Если Сделать проверку типо Если НЕ ДанныеСтроки = НЕОПРЕДЕЛЕНО Тогда то отлючение отбора по кнопке, получаемого в процедуре "ПриПолученииДанных" не происходит. Как организовать правильно дополнительный отбор в подчинном справочнике по мимо отбора по владельцу и чтобы отлючение этого дополнительного отбора работало корректно в моем случае. Всем заранее спасибо за ответы. |
|||
1
hhhh
06.03.18
✎
09:37
|
(0) вам надо ПриАктивизацииСтроки. ПриПолученииДанных она сразу целый экран выводит, зачем вам 20 элементов сразу обрабатывать?
|
|||
2
catena
06.03.18
✎
10:06
|
(0)Может быть, установка отбора зацикливает ПриПолученииДанных?
|
|||
3
Ёпрст
06.03.18
✎
10:18
|
(0) ёё...
выкинь свой код на помойку. У табличного поля на форме, в котором у тебя подчиненный справочник, поставь свойство "Связь по владельцу" и воткни туда ССылка. Всё. |
|||
4
Elf56
06.03.18
✎
10:30
|
Это не мой код дали исправить
Там уже стоит "связь по владельцу" просто к ней еще прибавляется условие из процедуры ПриПолученииДанных |
|||
5
Ёпрст
06.03.18
✎
10:32
|
(4) в ПриПолученииДанных отбор устанавливаешь ? - не удивительно
|
|||
6
Elf56
06.03.18
✎
10:34
|
(5) а как надо ?
|
|||
7
Ёпрст
06.03.18
✎
10:38
|
Хотя бы в ПриОткрытии установить отбор 1 раз, ну и максимум, в ПослеЗаписи
|
|||
8
catena
06.03.18
✎
10:38
|
(6)Тебе ОТБОР нужен в процедурах, которые постоянно отрабатывают при насиловании поля на форме или все-таки один раз достаточно при открытии формы?
|
|||
9
Ёпрст
06.03.18
✎
10:39
|
усё.
|
|||
10
hhhh
06.03.18
✎
10:40
|
(6) ну ты бесконечный цикл инициируешь. ПриПолученииДанных ты меняешь отбор, а при изменении отбора программа естественно получает новые данные, опять запускается ПриПолученииДанных, по второму разу, оно опять меняет отбор, потом запускается третье ПриПолученииДанных, и так до бесконечности. Должно у тебя уйти в бесконечную рекурсию. Непонятно, почему у тебя вообще этот кусок работает, видимо ты везунчик.
|
|||
11
Elf56
06.03.18
✎
10:41
|
Спасибо хот мыслей понял.
Да говорю же не я писал заметил, что косяк вот и начал в нем разбираться, а не тупо писать как программер до меня ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |