Как из внешней обработки "нажать" кнопку документа #242523


#0 by sunrise40
Создаю приказы на увольнение по списку (список гружу из EXCELя, там все что надо для заполнения документа есть), документы создаются,реквизиты все заполняются как надо, но документы не проводятся. Массовое сокращение, массовые переводы из СП1 в СП2 ( в одном увольняем, в другом принимаем). Потому для ускорения процесса кучу народу в одной базе увольняем, в другой кучку поменьше принимаем. Можно ли как-то интерактивно нажать кнопку "провести" в документе или запустить то что там написано на закладке "дополнительно" в поле "Формула" не меняя модуль документа и глобальник, только внешней обработкой?
#1 by ТелепатБот
#2 by sunrise40
Забыла сказать - 1с-Предприятие 7.7, релиз 25, ЗиК, очень сильно переделанная под себя. - на свой вопрос ответа не нашла
#3 by sunrise40
база DBF
#4 by VladZ
Вопрос не понят...
#5 by VladZ
+4 Если тебе нужно только провести, то для этого не нужно нажимать кнопку документа из обработки. Делай так: Док.Провести
#6 by sunrise40
в том то и дело, что Док.Провести не проводит документы, они в Жунале докуменов остаются непроведенными. Может быть у Прикзов на увольнение свои тонкости, там же происходит ещё перемещение в папку уводенных и запоминание исходной папки для того чтоб при отмене проведения вернуть все назад. Потому в "формула" запускается процедура, а потом идет #Записать провести. Не хотелось лезть в текст вызываемой процедуры, тк там ещё масса вызываемых. Самый простой путь - "нажать" кнопку программно.
#7 by VladZ
Поверь мне - это не самый простой путь...
#8 by Лефмихалыч
там поди надо какой-нить параметр в Провести(<>) передать. Гляди отладчиком, почему не проводятся документы
#9 by smaharbA
формулу с кнопки сюда давай ?
#10 by sunrise40
Процедура ЗапомнитьГруппу вызывает ещё расчет среднего и заполнение табоичной части документа
#11 by smaharbA
т.е. никаких параметров не передается ? и точна ЗапомнитьГруппу - это процедура ?
#12 by sunrise40
да. она в глбальном модуле. на кнопке она без параметров. Тупо скопировала то что там есть и сюда вставила
#13 by smaharbA
Интересно, если контекст в нее не передают, то как получают текдок с учетом что она в глобальнике? (я конечно умею, но сомнения что в типовой также)
#14 by smaharbA
+ Если хочешь сделать отвечай на все мои тупые вопросы :)
#15 by sunrise40
попробовала вставить вызов этой процедуры из своей обработки. Пердала как параметр документ. Средний не рассчитывает. Видимо ещё что-то где-то цепляет. В отладчике вижу что не считает, т.к. заблуждается в датах... Конфигурация не типовая. Очень давно очень сильно , пркатически полностью переписанная под себя
#16 by sunrise40
- не успеваю..., я ж на работе! Отвлекают... :)
#17 by smaharbA
процедуру скопи-пастить сложно сюда ? Ну или хотябы строк 10 первых вместе с объявлением
#18 by sunrise40
Вру. Процедура в модуле формы. Вызывает другую, которая вводит строки в табл. часть, из глобальника и туда передает контекст.
#19 by sunrise40
#20 by smaharbA
Все, теперь давай код обхода доков сюда (можна сокращенный) в смысле как ты их отбирать собралась для "нажатия кнопки" ?
#21 by sunrise40
.... ТабЗагр - табличка в которую загружаем из Экселя информацию для документов     ........... ЗагрузитьИзФайла(ВыбФайлЗагрузки);             Док.Провести - то ставлю, то убираю, в последний раз чего-то наменяла и прога ругалась что док. заблокирован...
#22 by smaharbA
Жди...(просче формексом конечно, но счас дам код без него, спасибо Рупору скажешь)
#23 by sunrise40
СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!! и рупору тоже!
#24 by smaharbA
/// Не проверено, примерно так, но луччеб переписать эту "ЗапомнитьГруппу"
#25 by sunrise40
не работает. Надо же ещё выбрать кнопку "провести",на которой висит вызов процедуры. Простое нажатие Enter на форме документа вызывает только его запись, а т.к. мы док уже записали, получаем ошибку - т.к. документ с таким номером уже есть.
#26 by sunrise40
надо как-то спозиционировать курсор на форме документа на кнопку которая называется "провести"
#27 by sunrise40
на документе ещё других кнопок много- например "Форма Т-8", "Приказ", "Печать компенсаций" и т.д.
#28 by smaharbA
Если тупа кнопу жать, то повесь на нее хоткей к примеру Ctrl+F12 и так
#29 by smaharbA
+ и без обработкиожидания, а если можна форму/модуль дока править то и таких выеженов ненада
#30 by Лефмихалыч
а б вот за такие "запомнитьГруппу" ручонки обрывал... Надо переделать эту лабуду так, тчобы документ-таки делал одинаковые действия и при интерактивном и при программном проведении
#31 by 1Сукпун
ну  так  можно еще  и клавешей  TAB  пройтись по кнопкам
#32 by Рэйв
А что если открывать док,передавать ему параметр типа "ЗагрузкаИзЕкселя",запускать эту процедуру, а в конце процедуры ПриОткрытии:
#33 by smaharbA
+ Вернее эх пита не видно, он бы точна мене звание Дятла дал за такие советы :)
#34 by smaharbA
Прав так хорошо, но лучче
#35 by Лефмихалыч
щас насоветуете, умники! а потом мало ли, может кому-то из вас же придецца это гуано разгребать...
#36 by sunrise40
Так сложились обстоятельства что править конфу нельзя, я не разработчик, только сопровожденец... Разработчики шлют обновления периодически, потому если начну самодеятельность, замордуюсь свои правки каждый раз после обновления вставлять... Могу только процедуры к себе в обработку взять и пределать. Не хотела, т.к. мало ли чего в следующий раз поправят... надо будет отслеживать, чтоб не пролететь с результатами. Я могу как-то обратиться к элементу диалога формы документа из внешней обработки? как-нибудь может так можно?        СЗ=Док.Форма.Параметр;
#37 by VladZ
+1
#38 by smaharbA
Тогда давай, снова что в не выходит ?
#39 by smaharbA
И еще вопрос - это кнопка ОК - кнопка по умолчанию ?
#40 by Лефмихалыч
бросай это дело - в таких условиях твоя мега-обработина скорее всего после следующего обновления работать перестанет...
#41 by 1Сукпун
я  ж тебе уже говорил  открой форму  жми таб  и считай  количество нажатий  пока не спозиционируешься  на  нужном  элементе  диалога  . затем
#42 by Лефмихалыч
Абрахамс праильно намякивает - проще Ctrl+Enter послать, ежели это умолчательная кнопица
#43 by sunrise40
не знаю какая кнопка по умолчанию. где посмотреть? Сейчас ещё раз все переделаю и скажу что получилось. Ругательство шло не дубликат номера документа. заблудилась в вызовах Сформировать. Надо все заново сделать и ещё раз посмотреть. как проверить когда я нужную кнопку попаду? отладчиком шлепать таб и считать? или можно как-то программно определить?
#44 by Лефмихалыч
руками таб шлёпать надо в этом случае, хотя, если ты сумеешь каким-то макаром для этого отладчик приспособить, то выложи в КЗ методу
#45 by 1Сукпун
так ты  интерактивно  в  режиме предпричтия  можешь открыть   эту  форму и  вот если б у  тебя не было мышки  как бы  ты  с помощью клавы  нажала  нужную кнопку  ?
#46 by smaharbA
+
#47 by smaharbA
И еще, если ругается на номер, то уж извини - надо делать УстановитьНовыйНомер( вовремя
#48 by sunrise40
я и устанавливаю, каждому сотруднику документ с носером=его таб. номеру. Просто получается что на 1 сотрудника 2 раза создается документ. Цикл по списку вызывает ещё раз СФормировать где опять цикл по списку. Надо с порядком разобраться. Сделаю, скажу что получилось.
#49 by sunrise40
на бегу направила, вот  бардак и получился...Попробую все посторить заново.
#50 by smaharbA
А, ну да, тока цикл в невооруженным взглядом не виден ;)
#51 by sunrise40
не попадает ни разу внутрь Попытки, создаются непроведенные документы, средний для выплаты компенсации не рассчитывается. До нажатия кнопки дело не дошло Если убрать Попытка то получается ошибка конт.Форма.ОбработкаОжидания("",0); ...УВОЛЬНЕНИЯПОСПИСКУ4.ERT}: Значение не представляет агрегатный объект (Форма) :(
#52 by sunrise40
в контекстах я не сильна... очень редко с ними сталкивалась... похоже надо разбираться... и отладчиком не видно что там в нем сидит...
#53 by Лефмихалыч
а что такое конт?
#54 by sunrise40
контекст вероятно
#55 by sunrise40
+54 - по тексту в
#56 by sunrise40
вообще все повесилось... наверное пора домой. Рабочий день закончился, комп работать отказывается... Завтра на свежую голову ещё раз посмотрю, а то уже похоже вижу то что хочется а не то что есть не самом деле. Утро вечера мудренее.. Огромное спасибо за содействие. Если удастся победить, обязательно скажу как выкрутилась.
#57 by Лефмихалыч
до НГ двое суток, пора завязывать с работой 8)
#58 by smaharbA
посмотри просче вариант - может этого достаточно
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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