Передача элемента управляемой формы в общий модуль

1. frontik 20.09.24 12:12 Сейчас в теме
Проблема такая, Конфигурация ЗУП версии 3.1, мне нужно в процедуру, которая отвечает за печать в справочнике сотрудника (которая находится в общем модуле), в нее передать значение элемента, который сам по себе ссылка на другой справочник, пробовал писать процедуру на сервере, как где то читал, но ничего не помогает, заранее благодарю.

Пример оставлю здесь, где то читал, что если поместить в соответствие, то затем я смогу и в общий модуль передать.

&НаСервере
Процедура ПередатьОкладИзФормы() Экспорт   
	
	ЗначениеОклада = ЭтаФорма.ТекущаяДолжностьПоШтатномуРасписанию.ОкладТариф;
	ЗначениеОкладаСоответствие = Новый Соответствие;
	ЗначениеОкладаСоответствие.Вставить("Оклад", ЗначениеОклада);
	
КонецПроцедуры
Показать


И выходит такая ошибка:
{ОбщийМодуль.СотрудникиБазовый.Модуль(1248,2)}: Процедура или функция с указанным именем не определена (ПередатьОкладИзФормы)
<<?>>ПередатьОкладИзФормы(); (Проверка: Сервер)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
34. Sashares 35 20.09.24 14:40 Сейчас в теме
(1) В форме это значение как-то заполняется и где-то хранится в базе.
Соответственно, надо не передавать что-то в процедуру печати, а в процедуре печати получить это значение.
Т.к. печать может выполняться не из формы.
2. Burgunchic 5 20.09.24 12:23 Сейчас в теме
А если поместить в ОбщийМодуль.СотрудникиВызовСервера и убрать директиву &НаСервере?
4. frontik 20.09.24 12:37 Сейчас в теме
(2) Попробовал

Модуль Формы элемента:

Функция ПередатьОкладИзФормы() Экспорт   
	
	ЗначениеОклада = ЭтаФорма.ТекущаяДолжностьПоШтатномуРасписанию.ОкладТариф;
	ЗначениеОкладаСоответствие = Новый Соответствие;
	ЗначениеОкладаСоответствие.Вставить("Оклад", ЗначениеОклада);
	Возврат ЗначениеОкладаСоответствие;
	
КонецФункции 


Общий Модуль.СотрудникиВызовСервера:

Функция ПередачаОкладаСФормы() Экспорт  
		
    Оклад = ПередатьОкладИзФормы();
	
КонецФункции


Ошибка:
{ОбщийМодуль.СотрудникиВызовСервера.Модуль(153,13)}: Процедура или функция с указанным именем не определена (ПередатьОкладИзФормы)
Оклад = <<?>>ПередатьОкладИзФормы(); (Проверка: Сервер)
6. nomad_irk 76 20.09.24 12:41 Сейчас в теме
(4)Общий Модуль.СотрудникиВызовСервера:
Функция ПередачаОкладаСФормы() Экспорт  
        
    Оклад = ПередатьОкладИзФормы();
    
КонецФункции


Почему вы уверены, что общий модуль вообще в курсе того, где находится метод ПередатьОкладИзФормы()?
7. frontik 20.09.24 12:43 Сейчас в теме
(6) Почему вы уверены что я уверен? Я здесь как раз таки и написал, потому что я не уверен) Как мне тогда сделать так, чтобы общий модуль был в курсе?
8. nomad_irk 76 20.09.24 12:45 Сейчас в теме
(7) получить форму(где есть этот экспортный метод) внутри метода общего модуля или передать ее в качестве одного из параметров метода общего модуля.
11. frontik 20.09.24 12:55 Сейчас в теме
(8) Спасибо за ответ, но я не совсем понимаю как это делается, так как собственно ни разу с этим не сталкивался.
14. nomad_irk 76 20.09.24 12:59 Сейчас в теме
(11) прекрасно. теперь давайте выясним, зачем вы пытаетесь условно удалить аппендикс, абсолютно неразбираясь в этом?
15. frontik 20.09.24 13:01 Сейчас в теме
(14) Потому что того требует задача?)
17. user2033930 20.09.24 13:04 Сейчас в теме
(15) Зачем ты взялся за задачу, в которой нет компетенций?
nomad_irk; +1 Ответить
20. frontik 20.09.24 13:16 Сейчас в теме
(17) Мне серьезно отвечать на этот вопрос? Спасибо кстати что по делу отвечаете, это очень правильный поступок!
22. user2033930 20.09.24 13:18 Сейчас в теме
(20) Вау. Хочу все знать - кто, когда, и за какие деньги обязал меня отвечать тебе по делу?
28. frontik 20.09.24 14:13 Сейчас в теме
(22) Здравствуйте, увидел ваш ответ, если у вас тоже проблемы с этим вопросом и вы не понимаете как его решить, то спасибо за уделенное время, но попрошу отвечать все таки что то по теме данного вопроса, иначе мне нечего вам сказать.
32. user2033930 20.09.24 14:21 Сейчас в теме
(28) Да не надо здесь ничего РЕШАТЬ. И вопроса-то нет никакого.
1. Надо просто использовать модули в соответствии с их назначением. Это вопрос базовых знаний, а не опытных умений. Это первое.
2. Надо знать что такое процедура, что такое функция, как между ними передаются параметры, и использовать их правильно. Это тоже вопрос базовых знаний, а не опытных умений.

Обеим этим вещам учат на первых страницах всех самоучителей и на первых занятиях всех курсов.

А когда человек не знает, и что страшнее - не пытается знать, то зачем ему пытаться "что-то сказать"? Зачем пытаться помогать человеку правильно выстраивать пунктуацию в предложении, если он и букв-то не знает?
18. nomad_irk 76 20.09.24 13:06 Сейчас в теме
(15) так может перед решением задачи надо какие-то курсы пройти/обучиться самостоятельно, попробовать на простейших примерах, не?

то, что вы никогда не делали, по вашим словам - это прям совсем базовый уровень, без его понимания и практики на простецких задачках - ничего не получится вообще.
19. frontik 20.09.24 13:13 Сейчас в теме
(18) Во первых то что вы говорите, это честно говоря какое то неадекватное поведение, существует форум, на нем люди задают вопросы, мне нельзя получается задавать вопросы? Я устроился на свою первую работу и за все свои 7 месяцев я с такими вещами не сталкивался, сталкивался с другими проблемами и их спокойно решал, сейчас я вообще в первые столкнулся с типовой конфигурацией и пока что я в ней еще путаюсь, у всех людей совершенно разный может быть опыт и время для того, чтобы чему то научится. Правильно ли я понимаю, что мне сейчас нужно просто встать и не знаю там... Уволится или еще что? Я просто заметил, что почему то именно программисты 1с строят из себя каких то пупов земли, которые считают, что все остальные должны все знать на том же уровне, что и они, честно говоря даже слишком часто. Пока работал и искал тоже какие то похожие вопросы, просто миллиард тем на форуме, где супер опытные программисты любую вещь называют базовой и вместо того, чтобы просто зайти помочь человеку, либо пройти мимо, как сделал бы адекватный человек, нет, вам нужно обязательно вставить свои пять копеек, как это вообще вас касается?
24. user2033930 20.09.24 13:20 Сейчас в теме
(19) Так и не услышал ответа на вопрос - зачем пытаться вырезать аппендицит, не имея БАЗОВЫХ медицинских познаний? Да при этом еще и обвинять опытных медиков в том, что они ему, видите ли, не помогают...
25. scarl1n 10 20.09.24 13:28 Сейчас в теме
(24) А давно опытные медики тратят свое и чужое время на выяснение причин выполнения операции другим человеком? Что даст ответ на этот вопрос? Если причина будет уважительная, то, сломя голову, побежите помогать? Откуда столько обиженных 1сников, не понимаю.
26. user2033930 20.09.24 13:29 Сейчас в теме
(25)
Откуда столько обиженных
Ты хоть смысл этого слова понимаешь, недоросль? ))
27. scarl1n 10 20.09.24 13:32 Сейчас в теме
(26) В зеркале ответ увидите, пустослов. По существу хоть слово скажите, дядя)
30. frontik 20.09.24 14:15 Сейчас в теме
(26) Здравствуйте, если у вас нет решения по данному вопросу, то дайте шанс другим, у вас обязательно получится в следующий раз! Спасибо за уделенное время!
31. nomad_irk 76 20.09.24 14:20 Сейчас в теме
(19) Ну Штож......сеанс антиинфантилии считаю начатым.

Во первых то что вы говорите, это честно говоря какое то неадекватное поведение, существует форум, на нем люди задают вопросы, мне нельзя получается задавать вопросы?

Вопросы задавать можно и нужно, только вопросы должны быть адекватные.

Вопрос №1:
- Мне тут надо апендикс вырезать пациенту. Сделал разрез, сделал надрез, но что-то какой-то он слишком длинный получается, не подскажете, что делать?
- Да все как обычно: скальпелем делаешь разрез в правом нижней части брюшной полости, чуть выше тазовой кости......
- А что такое скальпель? Что такое брюшная полость? Что такое тазовая кость?
- Ты прикалываешься?
- Нет, устроился на работу хирургом, за 7 месяцев как-то не приходилось сталкиваться со всем этим.

Вопрос №2:
- Мне тут надо апендикс вырезать пациенту. Сделал разрез, сделал надрез, часть гноя вылилась в брюшную полость, не подскажете, что сделать, чтобы собрать то, что вылилось?
- Берешь специальный отсос и собираешь остатки, обрабатываешь антисептиком на всякий.

Не находите, что адекватность вопроса №2 на порядкИ выше?
Я устроился на свою первую работу и за все свои 7 месяцев я с такими вещами не сталкивался, сталкивался с другими проблемами и их спокойно решал

Я низачто не поверю, что программист 1С за 7 месяцев работы ниразу:
- не вызывал процедур/функций с передачей в них параметров
- не получал любую форму любого объекта
сейчас я вообще в первые столкнулся с типовой конфигурацией и пока что я в ней еще путаюсь

Методы работы с объектами конфигурации/их методами/процедурами/функциями едины и не зависят от конфигурации
у всех людей совершенно разный может быть опыт и время для того, чтобы чему то научится.

С этим никто и не спорил как бы. Вопрос в обладании БАЗОВЫХ знаний взаимодействия между объектами/процедурами/функциями
Правильно ли я понимаю, что мне сейчас нужно просто встать и не знаю там... Уволится или еще что?

Решать вам
Я просто заметил, что почему то именно программисты 1с строят из себя каких то пупов земли, которые считают, что все остальные должны все знать на том же уровне, что и они, честно говоря даже слишком часто.

Зачем пошли в эту профессию, если все так плохо?
Пока работал и искал тоже какие то похожие вопросы, просто миллиард тем на форуме, где супер опытные программисты любую вещь называют базовой

Я еще раз повторю: получение любой формы любого объекта и вызов процедуры/функции с передачей в них параметров - это именно что базовые навыки, чуть ли не первых 2-ух занятия на курсах.
просто зайти помочь человеку, либо пройти мимо, как сделал бы адекватный человек, нет, вам нужно обязательно вставить свои пять копеек, как это вообще вас касается

Просто зашел и в (8) дал четкий ответ, решающий вашу проблему. Как можно продолжать что-то советовать, если из дальнейшего диалога выясняется, что вы базовых вещей не знаете/понимаете?

(25)
А давно опытные медики тратят свое и чужое время на выяснение причин выполнения операции другим человеком? Что даст ответ на этот вопрос?

См. пример вопроса №1.

Если причина будет уважительная, то, сломя голову, побежите помогать?

Помощь уже оказана в письменном виде, но как оказалась, просящий помощи не понимает смысла ответа, для него это просто набор слов.
orakool; user2033930; +2 Ответить
36. scarl1n 10 20.09.24 14:45 Сейчас в теме
(31) И в чем четкость ответа? Что даст вызов экспортного метода формы? Оттуда, что, значение реквизита формы получится достать? Я всегда думал новая форма инициализируется.
38. user2033930 20.09.24 14:51 Сейчас в теме
(36) А кто-то говорил про ПолучитьФорму()?
ПолучитьФорму() - это всего лишь один из частных случаев получения формы.
39. scarl1n 10 20.09.24 14:54 Сейчас в теме
(38) Так скажите, самому интересно, как это можно получить форму, вызвать у нее экспортный метод и получить значение реквизита формы? А если несколько форм открыто, он несколько раз вызовется и из каждой достанет?) Я только способ с ПолучитьОкна() могу подобрать под такую "ЧЕТКУЮ" формулировку.
40. nomad_irk 76 20.09.24 14:54 Сейчас в теме
(36) Если работать с формой конкретного объекта - да, в реквизите формы будет значение реквизита

Пустая форма будет, если ее получить заново, а если передать форму конкретного объекта, то вполне себе будут и значения реквизитов формы
41. scarl1n 10 20.09.24 14:56 Сейчас в теме
(40) Теперь получить = передать. Четче формулировки и не найти... Ну тут реально сам человек не додумался, помогли же)))
42. user2033930 20.09.24 14:59 Сейчас в теме
(41)
получить форму ... или передать ее в качестве
Глаза разуваем потихоньку... Это первое.
И второе - а что, собственно говоря не так? Получить можно хоть от кого. Хоть от "передающего", хоть от "создающего", хоть от "рядом лежащего". И все это подпадает под "получить".
43. scarl1n 10 20.09.24 15:02 Сейчас в теме
(42) Ага, именно поэтому вы поставили между этими двумя формулировками слово "ИЛИ") Мол, ну ты "получи" или "получи от передающего") Интересно, как собрались получать без передачи, чтобы это также работало))
49. user2033930 20.09.24 15:13 Сейчас в теме
(43)
Интересно, как собрались получать без передачи
Написано же - надо передать. У тебя больше трех слов в контекст не помещаются в голове?
44. nomad_irk 76 20.09.24 15:05 Сейчас в теме
(41) В (8) четко указано, что либо получить форму заново, либо передать ее в качестве параметра.

Получение формы заново влечет за собой необходимость ее наполнения и нужный реквизит формы может таки не заполнится - это уже тонкости.

переданая форма содержит все свои реквизиты заполненными, так, как они заполнились при ее открытии.
45. scarl1n 10 20.09.24 15:06 Сейчас в теме
(44) В общем, если мне вдруг понадобится получить значение реквизита формы, я получу форму заново, укажу в него значение и получу его, логично. Не поспоришь. А зачем тогда форму получать?
46. user2033930 20.09.24 15:09 Сейчас в теме
(45) Где было указано про "укажу в него значение"? Как раз таки указано, что "нужный реквизит формы может таки не заполнится". Что как бы говорит, про "это вообще нафиг не от тебя зависит и не лезь там ничего заполнять самостоятельно"...
50. scarl1n 10 20.09.24 15:13 Сейчас в теме
(46) Да, действительно четкий ответ... Ты форму получи и все, метод там вызови. А, ну еще с сервера уйди - форма только на клиенте доступна, вызови какой-то экспортный метод, который заполняет твой реквизит, вместо того, чтобы скопировать алгоритм, если он все-таки есть. А, ну еще там обработчики событий формы не вызываются, так что тоже придется код перетащить, ну ты это, давай, удачи тебе) Мы то опытные, помогли чем смогли.
51. user2033930 20.09.24 15:17 Сейчас в теме
(50)
Ты форму получи и все, метод там вызови. А, ну еще с сервера уйди - форма только на клиенте доступна, вызови какой-то экспортный метод, который заполняет твой реквизит, вместо того, чтобы скопировать алгоритм, если он все-таки есть. А, ну еще там обработчики событий формы не вызываются, так что тоже придется код перетащить, ну ты это, давай, удачи тебе) Мы то опытные, помогли чем смогли.


- Как испечь хлеб?
- Надо взять муку...
- Что это за ЧЕТКИЙ ответ??? А если нет у меня муки? Мука доступна только в магазине, значит надо идти в магазин, а если там нет того сорта, значит придется идти копать землю, садить в неё зернышки... Что за четкий ответ такой "взять муку"???
53. scarl1n 10 20.09.24 15:19 Сейчас в теме
(51) Ну да, первыми двумя строчками вы замечательно описали свой ответ. Гуглишь рецепт хлеба, а тебе "Мука")
54. nomad_irk 76 20.09.24 15:28 Сейчас в теме
(50)
Мы то опытные, помогли чем смогли.

Ну так опытные обычно форму передают и работают с ней в общем модуле, если это вообще требуется для решения задачи, а не выносят в общий модуль какой-то один алгоритм, непонятно что делающий, который можно было бы реализовать в пределах той же формы, откуда он вызывается.
48. nomad_irk 76 20.09.24 15:12 Сейчас в теме
(45) например, на ней есть некая процедура расчета, можно ее использовать для массовой обработки данных.

Это будет очень костыльно, но будет работать
52. scarl1n 10 20.09.24 15:18 Сейчас в теме
(48) Ну т.е вы сами придумали контекст своему совету, в котором он будет работать и назвали это четким ответом?
56. nomad_irk 76 20.09.24 15:30 Сейчас в теме
(52) а ничего, что контекст выполнения и принятого варианта решения известен только ТС?

я показал, что ситуации могут быть разные, можно решать 2-мя способами для разных контекстов выполнения

И это раньше того, как "опытные медики тратят свое и чужое время на выяснение причин выполнения операции другим человеком?".
Тратят, но в зависимости от своего опыта на момент выдачи совета, могут делать это меньше, потому что уже потратили на это время раньше, только неопытным это не понятно почему-то.
58. scarl1n 10 20.09.24 15:38 Сейчас в теме
(56) Ну вы сами как считаете? Человек, который должен быть знать все эти нюансы, которых так много, что я даже перечислить все смогу - от одного следует другое, не додумался бы передать форму в качестве параметра? И вы тыкаете после этого тем, что человек ничего не понял? Самим то не стыдно?
62. nomad_irk 76 20.09.24 15:46 Сейчас в теме
(58)
Ну вы сами как считаете? Человек, который должен быть знать все эти нюансы, которых так много, что я даже перечислить все смогу - от одного следует другое, не додумался бы передать форму в качестве параметра?


Совет о передачи формы в качестве параметра был в (8), после этого, в (11), ТС говорит, что не знает как это делать.
Я ему должен рассказать о том, что такое параметры метода/какие виды бывают/как определять их значения или какие ко мне претензии?
66. scarl1n 10 20.09.24 16:02 Сейчас в теме
(62) Вопрос читали вообще?) Да уж, глухому не расскажешь - 1снику не докажешь... Я думаю, что вы прекрасно понимаете то, что ваш изначальный ответ не имеет смысла, но, раз вы продолжаете ср#ть, не снимая штаны, то это ваш удел. Желаю вам и самим сталкиваться с похожими ответами, если, не дай бог, вы захотите испечь хлеб)
67. nomad_irk 76 20.09.24 16:20 Сейчас в теме
68. frontik 20.09.24 16:43 Сейчас в теме
(62) Я знаю, что такое параметры метода и какие бывают, я просто старательно избегаю вообще в принципе ваши ответы, так как читать такое, себя не уважать. Можете идти дальше и всем рассказывать свои врачебные и пекарные байки.
69. user2033930 20.09.24 16:51 Сейчас в теме
(68)
просто старательно избегаю вообще в принципе ваши ответы
Не пробовал "просто старательно избегать вообще в принципе этот ваш форум"?
60. frontik 20.09.24 15:40 Сейчас в теме
(31) Вы же понимаете, что ваше сообщение в принципе странно выглядит? То есть вы настолько сильно получаете кайф от принижений умственных способностей незнакомых вам людей, что вы аж такую тираду написали, тяжело...
64. nomad_irk 76 20.09.24 15:50 Сейчас в теме
(60) Действительно тяжело, а главное - бессмысленно.......
65. frontik 20.09.24 15:51 Сейчас в теме
(64) Тяжело вам наверное с людьми общаться, никто вообще базовых вещей не понимает...
10. nomad_irk 76 20.09.24 12:50 Сейчас в теме
(7)
Почему вы уверены что я уверен?

Потому что вы вызываете определенный метод, без уточнения его местонахождения - так делают в случае совпадения контекстов выполнения текущего и вызываемого методов.
3. LeeAreHim 20.09.24 12:36 Сейчас в теме
(1) к ТС: Кто ясно излагает - тот ясно мыслит.
Ни-че-го не понимаю (с)
5. frontik 20.09.24 12:38 Сейчас в теме
(3) Спасибо за конструктивный ответ!
13. LeeAreHim 20.09.24 12:59 Сейчас в теме
(5) Всегда пожалуйста :)
Delete
Лень открывать ЗУП
21. frontik 20.09.24 13:18 Сейчас в теме
(13) Спасибо огромное! Сейчас попробую.
9. scarl1n 10 20.09.24 12:47 Сейчас в теме
А где вызов модуля СотрудникиВызовСервера? Если печать вызывается с формы, то почему не передать доп. параметром значение этого реквизита?
12. frontik 20.09.24 12:58 Сейчас в теме
(9) Спасибо большое, если можете, то могли бы вы написать пример, а то я еще ни разу с этой проблемой не сталкивался.
16. scarl1n 10 20.09.24 13:03 Сейчас в теме
(12) Мне так тяжело сказать - не понятно, как вообще вызов происходит) Могу по анидеску подключиться посмотреть
29. frontik 20.09.24 14:14 Сейчас в теме
(16) Спасибо огромное за предложение, просто я все таки хотел пока сам попробовать решить поковыряться.
57. frontik 20.09.24 15:36 Сейчас в теме
(16) А можете оставить какие нибудь контакты, чтобы с вами связаться, если есть такая возможность.
59. пользователь 20.09.24 15:39
Сообщение было скрыто модератором.
...
23. scarl1n 10 20.09.24 13:20 Сейчас в теме
(12) Ну, или, если получится, попробуйте найти место вызова печати на форме. Там по идее можно добавить параметр для процедуры печати, куда и передать значение.
33. user2033930 20.09.24 14:27 Сейчас в теме
(23)
Там по идее можно добавить параметр для процедуры печати, куда и передать значение.
И уронить нахрен все остальные алгоритмы, использующие эту процедуру печати.
35. scarl1n 10 20.09.24 14:42 Сейчас в теме
(33) Так это, наверное, на случай, когда для этой печатной формы определена отдельная процедура? И даже если нет, то в чем проблема добавить новый параметр = Неопределено, раз уж все равно вносим такие правки?
47. user2033930 20.09.24 15:11 Сейчас в теме
(35) Ага, ты продолжай. Этот семимесяный так скорее уволится после твоих предложений.
55. scarl1n 10 20.09.24 15:30 Сейчас в теме
(47) Да ладно, уж, по своему опыту давайте не будем судить
61. frontik 20.09.24 15:45 Сейчас в теме
(55) Можете пожалуйста, по поводу этой задачи, оставить какой нибудь свой контакт, если такое возможно и есть время, то могли бы подключится, а то тут столько всего написали, что я уже честно говоря запутался.
63. пользователь 20.09.24 15:49
Сообщение было скрыто модератором.
...
70. frontik 20.09.24 16:57 Сейчас в теме
(55) Если сейчас можете, то номер: 574 219 301
37. VmvLer 20.09.24 14:47 Сейчас в теме
в форме создайте серверный метод и в нем делайте вызов серверного метода общего модуля
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот