1с параметры формы в модуле объекта
Здравствуйте, есть обработка, в модуле формы переменная НачДата, заполняется значением на форме, как можно передать это значение в модуль объекта?
(0) только не в модуль объекта, а в объект:
А без использования процедуры ПередЗаписью?
В обработке поле ввода типа Дата, вводится дата и выполняется запрос, который лежит в модуле объекта, вот туда нужно передать эту дату для фильтра запроса и всё
(7) Где хранятся данные, которые вводятся через это @поле типа Дата"? В реквизитах объекта или реквизитах формы?
(9) > Реквизит объекта
В этом случае эта дата доступна в том же самом реквизите объекта при работе метода внутри контекста объекта.
(12) что это? Если это реквизит объекта, то вынеси его на форму. Всё будет сохраняться в объекте "само"
Если указать дату строкой в модуле объекта, то всё работает, а перенести значение с формы не получается
(19) да, ошибся. Но если как в (7), то у него вообще ничего в базу не пишется, а он пробует запросом прочитать дату из базы.
Нет, у меня на форме реквизит Дата, и кнопка, кнопка выполняет запрос который в модуле объекта, в запросе есть фильтр по дате и мне нужно передать из формы реквизит Дата в модуль объекта
Это решение. Но судя по тому, что ты пишешь, это будет решением на неправильно поставленную задачу. Если ты что-то проверяешь запросом, то логичнее всего, что это должно происходить при записи, и скорее всего, в подписке на событие. Если же это проверка интерактивных действий пользователя, то вряд ли тут нужен модуль объекта вообще, и все проверки следует делать на форме.
(26) > не про модуль обработки
Каким органом вы все читаете?
Вы вот, т-щи 1Сники, и с ТЗ же так поступаете.
Я так понимаю ТС не может в процедуру/функцию модуля объекта параметр передать из формы? Что мешает ВашаПроцедура(НужнаяДата) использовать?
Так же есть ДополнительныеСвойства, для этого дела, а если еще и БСП есть в конфе и речь о внешней обработке встроенной, то можно воспользоваться хранилищем настроек
Хочу передать значение из формы документа в модуль объекта и сделать проверку при проведении.
В модуле формы в какой-либо процедуре:
--------------------
ЗначениеПеременной = Истина;
УстановитьГлобальноеЗначениеПеременнойВОбъекте(ЗначениеПеременной);
Перем мПеременная;
Функция УстановитьГлобальноеЗначениеПеременнойВОбъекте(Переменная) Экспорт
мПеременная = Переменная;
КонецФункции
Если мПеременная = ИСТИНА Тогда .
Не работает, подскажите ошибку.
Зараннее спасибо.
(1) fugu, или в модуле документа определяй переменную как экспортную, или вставляй в ЭтотОбъект.ДополнительныеСвойства(имхо, этот способ лучше)
(4) Allexe8.1, ДополнительынеСвойства работают только в пределах модуля объекта. Т.е. можно установить в процедуре ПередЗаписью, и потом прочитать в ОбработкаПроведения. Установить ДополнительныеСвойства из модуля формы, и потом прочитать в модуле объекта не получится.
user633736_actors.bas; RomanKod; erazh; Irwin; Tangram; portwein; arabesca; -Denton-; GeraZ; PLAstic; rrunover; a45; + 12 – Ответить
лучше через доп. свойства объекта. при каждом обращении к объекту он занаво инициализируется..
вот пример аналогичного вопроса:
В модуле объекта справочника объявляю переменную:
Перем м_Перем Экспорт;
В этом же модуле инициализирую переменную значением:
м_Перем = "1";
Далее, в обработчике ОбработкаЗаполнения() или ПриКопировании() этой переменной присваивается другое значение:
м_Перем = "2";
Вопрос: почему в модуле формы в процедурах ПриСозданииНаСервере() или ПриЧтенииНаСервере() значение выражения РеквизитФормыВЗначение("Объект").м_Перем равно "1", а не "2"? Естественно, либо ОбработкаЗаполнения(), либо ПриКопировании() обрабатывается. Кто мне может объяснить это поведение? Как нужно менять значение экспортируемой переменной модуля объекта, чтобы её изменённое значение было доступно в форме?
почитайте про видимость экспортных переменных в 8.2
(5) может и так.. не пробовал из формы менять
А нужно: В модуле объекта:
Перем мПеременная Экспорт ;
Затем в модуле формы - присваивай ей любое значение!
И в обработке проведения проверяй на значение!
(8)(3) Так как Вы предложили не работает.
(9) У меня обычная не управляемая форма.
Может ещё что-то подскажите?)
Ещё раз всем спасибо, кто откликнулся.
(10) fugu, Такого принципе быть не должно, если ты делаешь В МодулеОбъекта "свою переменную" и делаешь её " гулящей " по всему объекту, то она держится в нём! А ты скорее всего её про100 затираешь где-то в своём коде!
Дай код посмотреть, что ты хо сделать!
странно,
в обычных формах там почти и хитростей никаких нет, должно все работать.
Присоединяюсь к мнению (11)
Вводи реквизит и в модуле формы присваивай ему значение или в Модуле объекта Перем Переменная Экспорт и в модуле формы будет доступна эта переменная, а так как у тебя написано насколько я помню работать не будет.
прокатит и через экспортную переменную модуля и через дополнительные свойства если присваивать в обработчиках, где в параметрах есть наш объект, например:
а вот если присваивать получая объект из данных формы, то ни так ни так работать не будет:
SadrA; user909558; mangy; zyama; pyrkin_vanya; Olenevod; Патриот; kholkin; portwein; cwant; slawanix; MsDjuice; PLAstic; solary; Talim; kentavr27; McCoy77; Allexe8.1; + 18 – Ответить
(11) ong1990, ну массив куда передается? я предположил, что в некий метод объекта.
Соответственно, "ТвойМетод" - это имя экспортной процедуры из модуля объекта.
"ТвойМассив" - переменная, содержащая массив.
(13) ditp, Так. из модуля первой формы в модуль объекта передается массив, это уже хорошо. А вот из модуля объекта в модуль второй формы(этого же объекта) чет никак не выходит(((
(14) ong1990, вопрос был, как из модуля формы передать данные в модуль объекта, на вопрос ответ был получен, но как оказалось, на самом деле не это надо было. Может все таки сразу описать задачу, которую требуется решить и тогда будет ясно как помочь?
(15) Roman_Go, внешняя обработка. в не две формы с ТЧ. В ТЧ первой формы загружаются данные из EXcel(). потом по нажатию кнопки открывается вторая форма, в ТЧ которой должны загрузиться данные(Массив не найденной номенклатуры) из первой формы.
(17) ong1990, ага, т.е. передаем всте-таки не из модуля объекта во вторую форму, а и з первой формы во вторую.
Соответственно, нужные данные передавайте параметрами формы при открытии.
(21) ong1990, да хоть что можно передать, разными способами, в разных ситуациях по разному.
Массив, знаете - это тоже такой параметр, не являющийся конечным значенем. Массив OLE объектов, тоже массив, только никуда вы его не передадите.
У вас вообще там непонятно о чем идет речь. Остается только догадываться.
Приложили бы выкладку кода, что открывается, как открывается, что передается. Тогда бы уже предметно подсказали.
Да и по вопросам видно, что вам бы элементарные курсы по программированию сначала просмотреть, чтобы понимали мат часть, хоть немного.
Во втором блоке как Вы видете я заполнил массив не найденными значениями.
и мне теперь необходимо по кнопке открыть вторую форму и чтобы она заполнилась данными из массива.
(24) ong1990, массив - у вас назад на клиента не возвращается.
Заполнить вы его заполнили, а где возврат ?
Вам нужно, сделать не процедуру а функцию,
заканчиваться она должна Возврат Массив;
На клиенте этот массив должен где то хранится,
для этого нужно либо объявить переменную в начале модуля формы,
либо завести реквизит такой.
Потом делаем кнопку, откурытия второй формы и в ее обработчике, передать этот массив в нее.
как это делается вам написали в (23)
(26) ong1990,
что непонятного,
вы передаете массив из первой формы во вторую в параметрах формы,
во второй форме, эти параметры нужно получить, и дальше уже делать то-что нужно.
Это можно сделать, в процедуре ПриСозданииНаСервере - примерно таким кодом.
Можно еще по другому, на вкладке параметр завести такой параметр, поставить галку "ключевой",
и тогда он будет там хранится и доступен на клиенте.
эта Часть правильная?
только в вызове функции
вместо
т.е. функция вернет вам массив, и вы его в объявленную на клиенте переменную засунете.
(29) Boneman, во второй форме добавил новый параметр(В вкладке "Параметры", поставил галку "ключевой"),назвал его "ПараметрыНовойФормы".
в этот параметр возвращается структура.
Это значит, что в параметр с именем Масс - запишется значение.
А ты его обозвал "ПараметрыНовойФормы"
ну или можешь сделать
(31) Boneman, а какой тип должен иметь этот параметр во второй форме?? я поставил строка. и теперь он мне возвращает "Массив"
(32) ong1990, ну типы то данных должны быть одинаковые. Зачем ставить строка, если передаешь массив ? Поставь, хотябы произвольный
(34) ong1990, Так типа Макссив не может быть в Параметрах формы. Грузить нужно в список значений. И его передавать.
(34) ong1990, есть такая штука, как отладчик, где можно пошаговой трассировкой шагать по выполняемому коду, и смотреть как и что передается, и в каких переменных что содержится. Иначе гадать можно до бесконечности.
Иногда возникает необходимость передачи параметров 1С, установленных в определенной управляемой форме документа 1С, в модуль объекта 1С 8.3. При этом крайне нежелательно создавать отдельные реквизиты для этого документа. Поэтому в данной ситуации можно пользоваться глобальными переменными 1С. В дальнейшем они могут быть использованы в процедурах и функциях этого модуля. Если переменная определена с ключевым словом «экспорт», то она будет доступна вне данного модуля.
1. Задача передачи параметров 1С
Предположим, есть некий документ, на основной форме документа которого располагается гиперссылка в 1С, вызывающая другую форму с вводом определенных настроек. Необходимо чтобы после выбора настроек они были переданы в модуль объекта 1С 8.3 документа для последующей обработки в процедуре проведения.
2. Реализация с модулем объекта документа 1С
В самом начале модуля объекта документа 1С необходимо определить переменную, в которую будут передаваться выбранные настройки. Также необходимо ей присвоить признак «экспорт», чтобы переменная была доступна в любом месте документа.
В модуле основной формы документа в обработчике события 1С кнопки, открывающей форму с выбором настроек, необходимо указать процедуру Новый ОписаниеОповещения(). Это определяет результат после закрытия формы настроек в 1С 8.3.
В форме настроек для сохранении и передачи параметров 1С (в нашем случаи это структура) необходимо указывать процедуру ОповеститьОВыборе()
Далее нужно создать саму процедуру оповещения, в которой будем обрабатывать в результате закрытия формы настроек. В качестве приемника создаем реквизит основной формы ПараметрыПереоценки (можно создать глобальную переменную в модуле основной формы) и в нее передаем результат закрытия.
И в заключительном этапе (например, в процедуре ПередЗаписьНаСервере() передадим из реквизита формы сохраненную структуру настроек в глобальную переменную, которую определяли в модуле объекта документа.
В итоге настройки, выбранные на дочерней форме открытой из основной формы документа, теперь доступны в модуле объекта и могут быть обработаны в любой его процедуре, например, в процедуре проведения.
Разработчик 1С компании ООО “Кодерлайн”
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
Иногда возникает необходимость передачи параметров 1С, установленных в определенной управляемой форме документа 1С, в модуль объекта 1С 8.3. При этом крайне нежелательно создавать отдельные реквизиты для этого документа. Поэтому в данной ситуации можно пользоваться глобальными переменными 1С. В дальнейшем они могут быть использованы в процедурах и функциях этого модуля. Если переменная определена с ключевым словом «экспорт», то она будет доступна вне данного модуля.
1. Задача передачи параметров 1С
Предположим, есть некий документ, на основной форме документа которого располагается гиперссылка в 1С, вызывающая другую форму с вводом определенных настроек. Необходимо чтобы после выбора настроек они были переданы в модуль объекта 1С 8.3 документа для последующей обработки в процедуре проведения.
2. Реализация с модулем объекта документа 1С
В самом начале модуля объекта документа 1С необходимо определить переменную, в которую будут передаваться выбранные настройки. Также необходимо ей присвоить признак «экспорт», чтобы переменная была доступна в любом месте документа.
В модуле основной формы документа в обработчике события 1С кнопки, открывающей форму с выбором настроек, необходимо указать процедуру Новый ОписаниеОповещения(). Это определяет результат после закрытия формы настроек в 1С 8.3.
В форме настроек для сохранении и передачи параметров 1С (в нашем случаи это структура) необходимо указывать процедуру ОповеститьОВыборе()
Далее нужно создать саму процедуру оповещения, в которой будем обрабатывать в результате закрытия формы настроек. В качестве приемника создаем реквизит основной формы ПараметрыПереоценки (можно создать глобальную переменную в модуле основной формы) и в нее передаем результат закрытия.
И в заключительном этапе (например, в процедуре ПередЗаписьНаСервере() передадим из реквизита формы сохраненную структуру настроек в глобальную переменную, которую определяли в модуле объекта документа.
В итоге настройки, выбранные на дочерней форме открытой из основной формы документа, теперь доступны в модуле объекта и могут быть обработаны в любой его процедуре, например, в процедуре проведения.
Разработчик 1С компании ООО “Кодерлайн”
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
Читайте также: