Как очистить подчиненный справочник? #28455


#0 by nemo
Это не срабатывает :(
#1 by android
Хорошо подумал про Удалить ? Может быть Удалить ?после СпрДох.Удалить; выборка сбивается.
#2 by nemo
Подумал именно удалить либо удалить :) а за помощь спасибо сейчас попробую :)
#4 by Плюшкин
Ничего она не сбивается ! Не тот случай.Делай как у тебя было в ,только Удалить поставь.
#5 by nemo
сделал как было в автономной обработке но срабатывает только если нажать кнопку :( автоматом на удаление на помечает :( Хотя мне вообщето надо не пометить а удалить.....
#6 by АБЗ
#7 by nemo
не срабатывает это :( см Забыл сказать что у меня это в модуле отчета может в этом причина?
#8 by АБЗ
В 1 подругому
#9 by Diter
Меня терзают смутные сомнения по поводу "ФЛЭлем".Случайно не происходит такая фигня - вначале это не есть элемент справочника-владельца, а потом (при нажатии какой то кнопки) - является (вот поэтому и срабатывает).
#10 by nemo
передаю как параметр в обработку нажимаю кнопу все ок (без выбора из справочника) а вот если сделать ВызовПроцедуры не катит :(
#11 by Diter
А вот отсюда поподробнее.Т.е. ты привесив например процедуру "Очистить" на формулу кнопки получаешь рабочий вариант, а вызывая эту же процедуру из модулю - фиг?Тогда давай код вызова и проверь, не переприсваиваешь ли ты где либо эту переменную. Может она у тебя глобально объявлена? Как ты вообще получаешь этот самый "ФЛЭлем".
#12 by nemo
......
#13 by nemo
ОткрытьФорму("Обработка.НашаФорма",ФЛЭлем); вызываю так
#14 by Diter
Я тебя чего попросил показать? Я тебя попросил показать как ты в коде вызываешь обработку, а ты чего показал?Отладчиком проверь Форма.Параметр при открытии обработки программно. И ещё проверь что имекнно ты пытаешься передать.
#15 by nemo
Это работаетвызыв из отчетаДавим кнопку все ОК
#16 by Diter
Стань в отладчике на строкуСотр=Форма.Параметр и набери в окне отладкиТипЗначенияСтр(Сотр)Всё станет понятно.
#17 by nemo
ТипЗначенияСтр(Сотр) = "Справочник"
#18 by Diter
ОК. А вид справочника совпадает с видом возможного владельца?
#19 by Diter
(+18) И всё таки покажи как ты открываешь программно форму обработки передавая в неё параметр.
#20 by nemo
Не дело не в том похоже Сотр у меня поле на форме имеет тип Справочник.Сотрудники оно то присвайваеться без вопросов и ведь от кнопки то срабатывает с теми же значениями т.е. в интерактивном режиме......
#21 by Diter
А я тебе говорю - сделай . Очень может быть что ты пишешь
#22 by nemo
Да нет никаких лишних строк там нет именно так как уж не срабатывает ли Удалить только в интерактивном режиме? процедура то выполняеться отладциком проходил а вот Удалить=0 :(
#23 by Diter
Вот блин. Я тебе говорю проверь что за параметр ты передаёшь в открываемую программно обработку. В отладчике его значение может быть одно и тоже (например "Иванов") но на деле оказаться что в первом случае ты передаёшь уже спозиционированный элемент (через выбор его на форме обработки), а во втором - перебором или поиском по справочнику (как объекту метаданных) - неспозиционированный через ТекущийЭлемент. Напиши, как ты программно вызываешь форму, передаваЯ ей параметр.Пля, клянусь - если сейчас не приведёшь кусок кода со строкойОткрытьФорму("Отчет.МояОбработка",ПередаваемыйПараметр); больше писать в эту ветку не буду.
#24 by Uho
Учитывая попробуй вызывать Сформировать в ПриОткрытии
#25 by nemo
Я же говорю Обработка вызываеться ИЗ ОТЧЕТА нет там никакихСотр.ТекущийЭлементИли я чего то не понимаю уж извини тупого
#26 by nemo
не катит
#27 by Diter
Откуда берётся ФЛЭлем
#28 by nemo
Вызов из справочника сотрудники отчета хотя странно что вызываеться как обработка....
#29 by Diter
И чего? Теперь понятно?Вторым в списке ПарамНК что идёт? Текущий контекст - элемент справочника. А ты как открываешь обработку эту? Что передаёшь в качестве параметра?
#30 by nemo
тогда почему не работает такой вариант?Процедура Сформировать
#31 by Diter
Начинаем с начала. Как ты вызываешь открытие формы этой обработки? Приведи код.
#32 by nemo
да причем тут вызов я же уже в обработке позицонируюсь на нужный элемент...Да и если просто использую форму я не выбираю сотрудника я использую то что передалось параметром, или в данном случае тот элемент на котором спозиционировался. Я только щелкаю кнопку запускающую процедуру удаления ничего не меняя в форме.... И причем тут вызов? Чего я не понимаю?
#33 by Diter
Да притом. Где ты в обработке позиционируешься на нужном элементе справочника - владельца?
#34 by nemo
????? Так я что спозиционироваться не могу?Сотруд=Форма.Параметр;
#35 by Uho
Короче, резюмируем все вышесказанное:1. Из формы элемента справочника Сотрудники вызывается обработка НалоговаяКарточка, которой передается в качестве параметра список значений, одним из которых является, СПОЗИЦИОНИРОВАННЫЙ ЭЛЕМЕНТ справочника Сотрудники2. Из обработки НалоговаяКарточка в свою очередь запускается ТвояОбработка, которой передается в качестве параметра СПОЗИЦИОНИРОВАННЫЙ ЭЛЕМЕНТ справочника Сотрудники3. На форме твоей обработки есть поле с типом Справочник.Сотрудники, которое заполняется при открытии значением Форма.Параметр.4. Так вот поле заполняется, и после нажатия на кнопку запускается процедура Сформировать. Нужно чтобы процедура запускалась автоматом при открытии обработки. Этого не происходит.Вопросы: Процедура вообще вызывается? Или это код внутри процедуры не срабатывает?
#36 by Diter
Да если Форма.Параметр НЕ СПОЗИОНИРОВАНА НА ЭЛЕМЕНТЕ то ты не сможешь ничего сделать.Конструкция Сотр1.НайтиЭлемент(Сотруд) не выдаст ошибку даже если у тебя Сотруд="Вася" (т.е. строка).
#37 by nemo
именно так процедура ВЫПОЛНЯЕТЬСЯ прохожу отладчиком тормозиться на точке останова в нутри процедуры но Удалить возвращает 0!!!! Т.е. не срабатывает именно Удалить
#38 by nemo
хорошо как тогда спозиционироваться корректно?
#39 by Diter
Как происходит вызов процедуры, в которой этот кодСотруд=Форма.Параметр;Сотр=Сотр1.ТекущийЭлемент;Приведи код пожалуста
#40 by Uho
Когда остановился отладчиком на Дох.Удалить, посмотри что такое Дох. И правильный ли Дох для этого сотрудника.
#41 by Diter
Тьфу блин. Не "процедуры" а "обработки" конечно
#42 by nemo
ОткрытьФорму("Обработка.ОчисткаСправочника",ФЛЭлем);
#43 by Diter
А ДО этого чего написано?Стань в отладчике т посмотри чему ДО вызова этой обработки равен ФЛЭлем
#44 by nemo
Дох.ТекущийЭлемент в случае автоматического запуска и ручного имеет то же значение и похоже принадлежит владельцу и в том и другом случае
#45 by nemo
ФЛЭлем = Абрамова Ольга Алексеевна
#46 by nemo
Дох спозиционирован правильно в обоих случаях
#47 by Diter
Что возвращает Сотр1.НайтиЭлемент(Сотруд)=???
#48 by Uho
Ты, как я понял, удаляешь все подчиненные ДОХи? Тогда не мучайся и сделай так: Пометятся на удаление все подчиненные элементы, а сотрудник не пометится.
#49 by nemo
мне вообщето их физически удалить надо :(
#50 by Uho
Тогда Дох.Удалить;
#51 by nemo
блин если бы можно было нажать кнопку программно :(
#52 by Uho
Дело не в этом! У тебя же выполняется процедура. ТипЗначенияСтр(Дох) на строке Дох.Удалить чему равен?
#53 by nemo
Да в том то и дело что не срабатывает Дох.Удалитьмда :(Форма.Параметр.Удалить;{Обработка.ОчисткаСправочника.Форма.Модуль}: Не выбран элемент!
#55 by nemo
ТипЗначенияСтр(Дох) = "Справочник"
#56 by Uho
тогда см. !!!Проверь ТипЗначенияСтр(Форма.Параметр)
#58 by nemo
извини упустил постСотр1.НайтиЭлемент(Сотруд) = 1Выслать то я могу толку это надо с карточкой а карточка отвязанно от базы работать просто не будет
#59 by nemo
Всем огромное спасибо за помощь заставили думать в нужном направлениии :) хотя все и оказались не правы :) :) :)
#60 by Viet
Блин, уже ночь, почта не качается, и все читать почти лень... Но?ВопросУ тебя не удаляется ни один элемент?Может быть так...Пока СпрДох.ВыбратьЭлементы <> 0 Цикл...
#61 by Viet
Форма списка справочникаНа форме одна кнопка с вызовом "ПоКнопке"//__________________________________________________Внешняя форма ttt.ert
#62 by nemo
:) см вопрос снят дело было не в бабине :)
#63 by Uho
Ну тогда расскажи, в чем было дело... Интрересно же...
#64 by UF
а просто файл удалить не судьба?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С