Возникла задача при записи элементов справочников Контрагентов и Автомобилей элемент записывался в группу справочника. которая определяется набором реквизитов этого элемента. Проще говоря нужно, что бы независимо от того в какой группе находится элемент до записи при записи его нужно переносить в конкретную группу.При этом должно происходить обновление списка справочника,с позиционированием на новое местоположение элемента.
В Подписке на событие изменил процедуру обработки. Для наглядности приведу код-он обрабатывает только справочник Автомобили:
Сам механизм переноса в другую группу срабатывает нормально. Но обновление списка справочника, откуда вызвана форма редактирования элемента, отрабатывается как то непонятно.
В справочнике Контрагенты обновление вообще обновление не происходит, никак. А в справочнике Автомобили обновление происходит , но только в основой форме списка Справочника и только при повторной записи элемента. Т.е. открываем элемент, жмем кнопку записать -в списке справочника элемент из корня исчезает (перенос происходит в заданную группу ), и все.Жмем второй раз кнопку записать -происходит обновление списка справочника и позиционирование в необходимой группе справочника на текущей позиции справочника.
В коде я пытался найти место где происходит обновление формы списка - не нашел.
Если возникнет вопрос для чего это нужно, поясню при оперативной работе наши мастера забивают машины и клиентов где смогли. В результате через нескольких дней клиентов и автомобилей без разбивки по группам очень много. А эта разбивка очень нужна для нашей работы, причем отследить пользователи это не всегда успевают.
Если кто подскажет, где нужно смотреть код обновления формы с позиционированием на текущем элементе -буду очень рад
В Подписке на событие изменил процедуру обработки. Для наглядности приведу код-он обрабатывает только справочник Автомобили:
Код |
---|
ЕСли ТипЗнч(ЭлементСпр)=Тип("СправочникОбъект.Автомобили") тогда Род=Справочники.Автомобили.ПустаяСсылка(); Если ЭлементСпр.Родитель=Справочники.Автомобили.ПустаяСсылка() тогда //Сообщить("Мы попали"); ИмяРодителя1Уровня=СокрЛп(ЭлементСпр.Модель.Производитель.Наименование); если ЗначениеЗаполнено(ИмяРодителя1Уровня) тогда Группа1= Справочники.Автомобили.НайтиПоНаименованию(ИмяРодителя1Уровня); ЕСли Группа1.ЭтоГруппа тогда Если Группа1<>Справочники.Автомобили.ПустаяСсылка() тогда Род =Группа1.Ссылка; //ищем второе вложение ИмяРодителя2Уровня=СокрЛп(ЭлементСпр.Модель.Наименование); Группа2= Справочники.Автомобили.НайтиПоНаименованию(ИмяРодителя2Уровня,,Род); ЕСли Группа2.ЭтоГруппа тогда Если Группа2<>Справочники.Автомобили.ПустаяСсылка() тогда Род =Группа2.Ссылка; конецесли; конецесли; конецесли; конецесли; конецесли; конецесли; если Род<>Справочники.Автомобили.ПустаяСсылка() тогда ЭлементСпр.Родитель=Род; Конецесли; конецесли; |
Сам механизм переноса в другую группу срабатывает нормально. Но обновление списка справочника, откуда вызвана форма редактирования элемента, отрабатывается как то непонятно.
В справочнике Контрагенты обновление вообще обновление не происходит, никак. А в справочнике Автомобили обновление происходит , но только в основой форме списка Справочника и только при повторной записи элемента. Т.е. открываем элемент, жмем кнопку записать -в списке справочника элемент из корня исчезает (перенос происходит в заданную группу ), и все.Жмем второй раз кнопку записать -происходит обновление списка справочника и позиционирование в необходимой группе справочника на текущей позиции справочника.
В коде я пытался найти место где происходит обновление формы списка - не нашел.
Если возникнет вопрос для чего это нужно, поясню при оперативной работе наши мастера забивают машины и клиентов где смогли. В результате через нескольких дней клиентов и автомобилей без разбивки по группам очень много. А эта разбивка очень нужна для нашей работы, причем отследить пользователи это не всегда успевают.
Если кто подскажет, где нужно смотреть код обновления формы с позиционированием на текущем элементе -буду очень рад