#0
by eandrs
Суть такова: необходимо передать параметр в типовую процедуру, имеющую большой уровень вложенности от места вызова, не изменяя промежуточные типовые процедуры. Для наглядности: КонецПроцедуры Идеи? Предложения?
#4
by eandrs
Допустим, ПроцедураПервая - в модуле некоторой формы некоторой обработки. Остальные вложенные вызовы - в типовых модулях. От первого вызова ПроцедураПервая до ПроцедураТиповаяВложеннаяСтоПятьдесятПервая - множество промежуточных вложенных вызовов других типовых функций, в которые я бы не хотел впиливать свой параметр.
#5
by Анютик
в смысле речь идет не об управляемом приложении? я имела в виду на клиенте или на сервере процедуры:)
#10
by Анютик
это был мой второй вопрос:) КОТ НА СЕРВЕРЕ:))) отдохните, завтра будет легче. А вообще это существенно откуда и куда идет вызов. Грубо, если все процедуры работают на клиенте, можно в какой-то фиктивный реквизит формы значение запихать. Если на сервере - в глобальную переменную попробовать. Если код блуждает клиент-сервер-клиент...тут надо думать, вероятно никак без переделки всех функций. Кстати да, а модальность-то при чем?:)))
#11
by eandrs
Процедуры в общих модулях, доступа к реквизитам формы оттуда нет. Глобальные переменные как раз на клиентах и лежат. В варианте без отказа от модальности - можно обойтись временным хранилищем, помещая нужный параметр в хранилище до вызова типового кота и, удаляя после окончания этого вызова. С отказом от модальности это не прокатывает.
#13
by Анютик
я для примера спросила. Вы говорите, что неважно где код(кот), а я попыталась объяснить, что важно.
#17
by eandrs
Отказ от модальности - это в типовом коде работы с присоединенными файлами в УТ11 (проверка и установка расширения для работы с файлами, помещение файло на сервер для веб-клиента и т.п.). Ранее всё это было через модальные вызовы. Теперь там всё сделано на ОписаниеОповещения, соответственно - я не могу гарантированно "вовремя" удалить свой параметр из временного хранилища, что не есть хорошо.
#18
by Torquader
А причём здесь отказ от модальности ? Если у вас выполняется сначала одна процедура, а потом другая - то можно в хранилище что-то сохранить. А если между вызовом первой и второй может быть пауза или вторую не вызовут, то вы потеряете только память на запихивании в хранилище. А если вторую вызовут два раза ? Просто, если что-то выполняется на сервере без контекста, то возникает вопрос - как понять, чей вызов пришёл, если будет вызываться с двух рабочих мест, где параметры, которые мы хотим передать, разные. Если же они одинаковые, то его можно задать один раз при запуске программы.
#19
by eandrs
Ладно. Совсем подробно объясню. Есть типовой механизм работы с присоединенными файлами. Есть общая форма, запиленная под этот механизм. В форму внесены мои доработки. Один дополнительный реквизит. Запись присоединенного файла в базу и создание соответствующего элемента справочника делает типовой код. Содержащий длинную цепочку вызовов. Мне нужно передать значение моего реквизита в процедуру, осуществляющую непосредственную запись элемента справочника в базу. Править всю цепочку модулей от формы до записи - не хочеца. В случае использования модальных вызовов - последовательность вызовов линейна - т.е. можно поместить значение реквизита во временное хранилище перед вызовом типового кода, потом в процедуре записи - считать его и установить у объекта, после завершения типового кода - убрать из временного хранилища, чтобы потом он не был использован для другого присоединённого файла. Для случая отказа от модальности такая схема не будет работать, т.к. значение из временного хранилища может быть удалено раньше (и так скорее всегда и будет), чем будет произведена запись элемента справочника. Кончил и закурил.
#20
by eandrs
"возникает вопрос - как понять, чей вызов пришёл, если будет вызываться с двух рабочих мест, где параметры, которые мы хотим передать, разные." - эту часть я совсем не понял.
#23
by Рэйв
У одного меня создается впечатление, что ТС хочет передать параметр и что бы там он "както так" сам обработался?
#28
by eandrs
Да, именно так. То, что в длинной портянке типовых вызовов - меня мало интересует. А, зная страсть разработчиков УТ11 к "а почему-бы не перепилить ещё разок вот этот-вот механизм" - не хочется каждый раз участвовать в этом акробатическом номере.
#30
by Torquader
Разговор о том, что если у пользователя открыто несколько форм, то где гарантия, что мы не перепутаем вызовы вообще, если мы не можем узнать, из какой формы нас вызвали. P.S. Если есть имя файла, то почему нельзя вместо него, например, передать структуру - особенно - если его "в пути" никто не трогает. А в процедуре проверить - если строка, то всё в порядке, если не строка, то это наш вызов. Жаль что в 1с нет объектов, которые преобразуются в строку с вызовом функции преобразования.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Безвозмездная передача фотоаппарата госучреждению. Проводки???
- Передача параметра типа Дата в ADODB
- v7: Передача параметров в процедуру ОбработкаПроведения
- Передача параметров при создании записи регистра сведений
- Передача параметров в новую форму записи регистра сведений 1С 8.1
- Передача товаров операция: передача товаров/материалов переработчику цена,сумма
- XSLT и передача параметров в шаблон
- Отказ от модальности окон в 1с 8.3. Как решить следующую задачу без модальности?
В этой группе 1С
- Как вывести сообщение пользователю при выполнении регламентного задания в 8.3
- 1C-фукция Base64Строка() работает?
- КД 2.0 перенос движений документа "регламентная операция"
- Использование внешнего источника данных в запросе
- RLS к реквизитам (ресурсам, измерениям) в регистрах расчета
- Как в запросе проверить на незаполненное значение поле типа "ДокументСсылка"
- Где хранятся пользовательские настройки компоновки данных
- Возможно ли изменить ГУИД у элемента справочника?
- Группировка данных в СКД на примере
- Передача Enumeration (VB) через 1c (8.2) (COM Соединение)
- Проблема с SQL базой после обновления
- Коммутатор на 30-48 портов
- Как создать одну номенклатуру в разных группах?
- Кто-нибудь видел интеграцию Viber с 1С?
- В чем смысл регистра Взаиморасчеты по документам расчета в УПП?
- Ежедневная рассылка отчета из 1С на почту
- УТ11. Чек ККМ. Где при продаже устанавливается цена НДС?
- Как узнать список и содержимое таблиц 1С в MS SQL
- Дважды измененная форма, порядок обновления
- Конвертация данных. Перенос движений документа