Сохраненные значения элементов формы #634410


#0 by cube033
Делаю внешнюю обработку для работы с конфигурацией на поддержке. Одна из задач обработки - создавать стандартный отчет. Отчет автоматически заполняется нужными настройками и формируется. Все было бы идеально, но "Организация" в отчет подставляется как последнее сохраненное значение формы. Пользователю в течение дня придется работать с двумя организациями  и он будет постоянно путаться. Можно ли обратиться к сохраненному значению и изменить его программно? P.S. Все попытки изменить реквизит отчета, или значения элемента формы - провалились.
#1 by Галахад
Не понятно.
#2 by cube033
В принципе можно упростить условие. По моему в большинстве отчетов в большинстве конфигураций. В форме отчета есть "Организация". Мы открываем отчет - видим "Организация1", меняем на "Организация2", закрываем. Открываем снова - видим "Организация2" - т.е форма сохраняет последнее значение при закрытии. Отчеты из моей обработки должны всегда открываться с "Организация2", даже если пользователь работал до этого с "Организация1"
#3 by чувак
Создай реквизит отчета "Организация", спихай код в событии "ПриОткрытии". Всего то делов
#4 by Живой Ископаемый
2 зачем? Чтобы другой пользователь замучался перевыбирать? Убери тогда организацию из сохранеямых значений
#5 by cube033
Вот за этим были написаны первые два предложения. Внешняя обработка рассчитывает нормы потребления, принимает платежи от населения, устанавливает тарифы, создавая документы и записи регистров основной конфигурации, а затем кассир должен выдать человеку СТАНДАРТНУЮ квитанцию из ОСНОВНОЙ конфигурации, и менять там ничего нельзя.
#6 by Живой Ископаемый
ничего не понятно. впрочем как и то, что же помешало реализовать любым доступным способом.
#7 by cube033
Ситуация в том, что Организация подставляется только при автоматическом заполнении квитанции, его можно отключить. Но заполнение вручную еще хуже. Там куча неприятных мелочей, как например - изначально у Отчета отсутствует необходимая форма, которая пришла с обновлением, список форм отчета формируется кодом разработчика и т.д. Пробовал создав отчет поменять ему организацию, пробовал получив форму отчета поменять в ней организацию - не поддается. Пробовал, даже кривые варианты вроде: открыть квитанцию  без заполнения, поменять организацию, ЗАКРЫТЬ, потом открыть с заполнением. Но там тоже много подводных камней, а главное - при программном ЗАКРЫТИИ не запоминаются значения формы. " реализовать любым доступным способом." - вот это самое интересное. Какие для этого есть способы.
#8 by Живой Ископаемый
Я ж говорю, ничего не понятно. Известно только, что любой реквизит любой формы установить в нужное значение можно.
#9 by Живой Ископаемый
не понятен контекст, не понятно в какой момент, откуда пытался установить... Можешь отряхнуть от пыли самый по-твоему годный способ, которым ты пытался это сделать, но не вышло, и запостить сюда с пометкой, типа вот в этом месте что-то должно происходить, но не происходит?
#10 by cube033
Сложность как раз в логике. В автоматическом заполнении, разобрать его трудно, так как в модуле отчета 39 процедур и функций + вызываемые экспортные. Формирование происходит при открытии, все, что сделано до открытия будет затерто, а после открытия уже не имеет смысла. Поэтому единственную лазейку вижу в том, что Автозаполнение берет Организацию из сохраненных данных форм - их я и хочу заменить, но не знаю как Отчет = Отчеты.КВП_КвитанцииИзвещения.Создать;
#11 by Живой Ископаемый
ЭтотОтчет Стандартный? Работать не будет, понятно почему, потому что в момент открытия установленные тобой значения затираются сохраненными, и используемыемыми по-умолчанию Выходом было бы поменять эти две строчки местами. Либо внимательней изучить модули отчеты, чтобы разглядеть как он может принимать параметры.
#12 by cw014
А сложно галку убрать у "Организация" - "Сохранять значения"?
#13 by cube033
конфа на поддержке
#14 by Живой Ископаемый
а сложно включить возможность изменений?
#15 by Галахад
Гм. А если перед закрытием очищать организацию?
#16 by Живой Ископаемый
2 конфа на поддержке.
#17 by cube033
менять не выход - так как после формирования уже не актуально во первых, а во-вторых пробовал - не меняет и все. Более того - менял организацию после открытия, а потом записывал в переменную данные из формы. Отладчик говорит, что в перемнной хранится "Организация2", а на форме выведена "Организация1". Сложность в том, что трудно убедится в названии элемента формы, так как форма пришла с обновлением и в конфигураторе её нет. Но во всех остальных вариантах квитанции поле называется именно так. Запись в переменную из поля происходит, значит такое поле есть. По поводу изменений - оно того не стоит. Такой вариант внешней обработки вполне закончен, просто не могу успокоится - три дня бьюсь над такой мелочью. И все же вопрос - как достучаться до Сохраненных значений формы????? "Гм. А если перед закрытием очищать организацию?" - да уж лучше перед закрытием выбирать нужную, только метод Закрыть("ОК"); не сохраняет значения формы, да и формой этой пользуются и из конфигурации (как раз тогда и нужна "Организация1", тогда очистка нужна там.
#18 by cw014
o_O форма пришла с обновлением и в конфигураторе её нет
#19 by cube033
"форма пришла с обновлением и в конфигураторе её нет" более того есть код, который добавляет новую форму в список для выбора динамически
#20 by cube033
#21 by Галахад
Ну, идея такая. Программно открыть отчет. Программно установить "Организацию". Программно закрыть отчет. Тут все как надо сохранится. Программно открыть отчет. Я не сильно извратился?
#22 by cube033
В сообщении №7 я описывал данный вариант):
#23 by cube033
"Программно закрыть отчет. Тут все как надо сохранится." Нужен метод закрытия с сохранением, а я такого не знаю
#24 by cube033
подводные камни типа: при открытии без заполнении выскакивает сначала форма настроек, так как я её не просил, то и в переменной её у меня нет. Приходится извращаться методами Sendkey
#25 by cube033
На очередном этапе таких эксперемнтов с посылами Enter'a обработка стала грузится минуты на 3, что убедило меня порвать с Wscript.Shell
#26 by Галахад
А если закрывать методами Sendkey alt + F4?
#27 by cube033
Интересно
#28 by cube033
Как по вашему мнению по итогам такого кода Что должно быть на экране? У меня Организация1
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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