Вход | Регистрация

1С:Предприятие ::

Метки: 

отбор в подчиненном справочнике

Я
   Elf56
 
06.03.18 - 09:21
Всем доброго времени суток.

Имеется 1С:Предприятие 8.3 (8.3.10.2667) 
И самописная конфигурация 

Есть справочник "Основной" и подчиненный ему справочник "Подчиненный".
Справочник "Подчиненный" отображается на форме справочника "Основной" с отбором по владельцу формы обычные.

Также в процедуре "При получении данных" в табличной части отображающей "Подчиненный" справочник есть запрос получающий по определенному условию элементы подчиненного справочника владельца.

Далее полученный список помещается в такое условие
ТаблицаПодчиненногоСправочника.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; 
ТаблицаПодчиненногоСправочника.Отбор.Ссылка.Значение = СпПозиции; 
ТаблицаПодчиненногоСправочника.Отбор.Ссылка.Использование = Истина; 
ЭлементыФормы.ТаблицаПодчиненногоСправочника.НастройкаОтбора.Ссылка.Доступность = Истина; 

где СпПозиции массив полученный из запроса. 

И вот что удивительно если запустить 1с то все будет работать верно, но процедуры "ПриВыводеСтроки" и "ПриПолученииДанных" будут срабатывать каждую секунду, Если же закоментировать выше указанный код т.е. не добавлять еще одного условия то процедуры не будут вызываться каждую секунду. Почему так получается?

И еще мне нужно в процедуре "ПриВыводеСтроки" использовать параметр ДанныеСтроки.Ссылка, но почему то если в табличной части подчиненного справочника интерактивно из формы по стандартной кнопке табличной части отлючить отбор то параметр ДанныеСтроки становится равным НЕОПРЕДЕЛЕНО, а в процедуре у меня есть обращение к ДанныеСтроки.Ссылка, соответственно при отлючении отбора вываливается ошибка. Если Сделать проверку типо

Если НЕ ДанныеСтроки = НЕОПРЕДЕЛЕНО Тогда 

то отлючение отбора по кнопке, получаемого в процедуре "ПриПолученииДанных" не происходит. 

Как организовать правильно дополнительный отбор в подчинном справочнике по мимо отбора по владельцу и чтобы отлючение этого дополнительного отбора работало корректно в моем случае.
Всем заранее спасибо за ответы.
 
 
   hhhh
 
1 - 06.03.18 - 09:37
(0) вам надо ПриАктивизацииСтроки. ПриПолученииДанных она сразу целый экран выводит, зачем вам 20 элементов сразу обрабатывать?
   catena
 
2 - 06.03.18 - 10:06
(0)Может быть, установка отбора зацикливает ПриПолученииДанных?
   Ёпрст
 
3 - 06.03.18 - 10:18
(0) ёё...
выкинь свой код на помойку.

У  табличного поля на форме, в котором у тебя подчиненный справочник, поставь свойство "Связь по владельцу" и воткни туда ССылка.
Всё.
   Elf56
 
4 - 06.03.18 - 10:30
Это не мой код дали исправить

Там уже стоит "связь по владельцу" просто к ней еще прибавляется условие из процедуры ПриПолученииДанных
   Ёпрст
 
5 - 06.03.18 - 10:32
(4) в ПриПолученииДанных отбор устанавливаешь ? - не удивительно
   Elf56
 
6 - 06.03.18 - 10:34
(5) а как надо ?
   Ёпрст
 
7 - 06.03.18 - 10:38
Хотя бы в ПриОткрытии установить отбор 1 раз, ну и максимум, в ПослеЗаписи
   catena
 
8 - 06.03.18 - 10:38
(6)Тебе ОТБОР нужен в процедурах, которые постоянно отрабатывают при насиловании поля на форме или все-таки один раз достаточно при открытии формы?
   Ёпрст
 
9 - 06.03.18 - 10:39
усё.
   hhhh
 
10 - 06.03.18 - 10:40
(6) ну ты бесконечный цикл инициируешь. ПриПолученииДанных ты меняешь отбор, а при изменении отбора программа естественно получает новые данные, опять запускается ПриПолученииДанных, по второму разу, оно опять меняет отбор, потом запускается третье ПриПолученииДанных, и так до бесконечности. Должно у тебя уйти в бесконечную рекурсию. Непонятно, почему у тебя вообще этот кусок работает, видимо ты везунчик.
 
 Рекламное место пустует
   Elf56
 
11 - 06.03.18 - 10:41
Спасибо хот мыслей понял.
Да говорю же не я писал заметил, что косяк вот и начал в нем разбираться, а не тупо писать как программер до меня )


Список тем форума
Рекламное место пустует Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует