v7: Получить параметр из обработки. #687092


#0 by Пенза58
Из документа открываю обработку и надо получить из нее параметр.
#0 by Пенза58
Из документа открываю обработку и надо получить из нее параметр.
#1 by Wobland
что планируешь делать?
#2 by Пенза58
просто передаю параметр он там обрабатывается и надо получить результат.
#3 by Guk
обратно в параметр и передай...
#4 by Aprobator
в типовых примера куча. Ну взять к примеру туже обработку РедактированиеКонтактнойИнформации.
#5 by dk
тока тогда открытьмодально надо запускать
#6 by Aprobator
да ладно.
#7 by dk
если там не в приоткрытии все отрабатывает и закрывает конечно
#8 by Aprobator
если при открытии обработки правильно указан элемент владелец, то значение из обработки будет передано непосредственно в него. Например: [1С] Процедура ПриНачалеВыбора(Элемент, СтандартнаяОбработка)       СтандартнаяОбработка = Ложь;       ИспользуемаяОбработка = Обработки.ИмяОбработки.Создать;       ФормаОбработки = ИспользуемаяОбработка.ПолучитьФорму(,Элемент); ИспользуемаяОбработка.ОткрытьФорму;   КонецПроцедуры [1С] Ну и в самой обработке прописать ОповеститьОВыборе(ВозвращаемоеЗначение)
#9 by Aprobator
#10 by oslokot
речь о клюшках )
#11 by Cthulhu
ежели модально ея открываешь - то через параметр. ежели не модально - то сложнее но тоже можно: 1) вызваЮЩая процедура: 1.1) +(невидимый) реквизит "строка неогр.длины многострочный" на морду; 1.2) процедура, которая: 1.2.1) отрубает обработку ожидания (Форма.ОбработкаОжидания("",0); 1.2.2) из реквизита п.1.1 получает (с помощью (ЗначениеИзСтрокиВнутр) и как надо обрабатывает всё, что вернула открытая обработка 1.3) При открытии формы (немодальном) - передать в параметре свой (открываЮЩей формы) контекст 2) вызваЕМая обработка, при закрытии и по факту необходимости вернуть значение, инициировав действия в отрываЮЩей эту обработку форме: 2.1) Через контекст открываЮЩей формы, дёрнутый из параметра при открытии - иницииорвать в открываЮЩей форме выполнение процедуры п.1.2 обработкой ожинания в 1 секунду - типа "КонтВызываЮЩейФормыИзПараметра.Форма.ОбработкаОжидания("ТаСамаяПроцедураСмПункт1точка2",1);" 2.2) Через тот же контекст открываЮЩей формы, дёрнутый из параметра при открытии - установить в реквизит п.1.1 значение, равное внутреннему представлению объекта (обычно - СЗ), содержащено всьо, что надо вернуть - типа "КонтВызываЮЩейФормыИзПараметра.ТотСамыйРеквизитСмПункт1точка1=ЗначениеВСтрокуВнутр(ОбъектВКоторомВсёШоНадоВернутьОткываЮЩейФормы);"
#12 by dk
не смущает что тема про 7.7 ? )
#13 by Aprobator
а, млин ))))
#14 by Aprobator
+ уже фиг знает сколько времени их не использую )
#15 by Cthulhu
+: опционально (и как правило! мавр сделал своё дело типа):
#16 by Cthulhu
: нам всем тут охрененть как интересно знать о твоих личных привязанностях...
#17 by 1dvd
к чему такие сложности?
#18 by Aprobator
так же как и мне - твое мнение о моих привязанностях. Тебя местные тролли покусали что ли?
#19 by Пенза58
Проще глобальую переменную добавить.
#20 by Cthulhu
: потому что через переменную не получится. даже через переменную модуля. не веришь - проверь. и это - вполне себе не сложно и один раз применив уже на автомате и бысто употребимо.
#21 by Cthulhu
для каждого взаимодействия строго говоря любой пары обработок - корячить глобальник - некрасиво. использовать только сами обработки - правильнее.
#22 by Cthulhu
: а при условии, что я тут по теме излагаю мнения, а ты топыришь пальцы - угадай, кому из нас с тобой логичнее было бы сдриснуть из этого разговора в пешее эротическое?.. да, ты угадал - тебе.
#23 by Пенза58
Да это понятно, но такая обработка одна будет.
#24 by oslokot
дык а модально тебе подойдет иль нет?
#25 by Aprobator
хамло ты обыкновенное и это безусловно.
#26 by Пенза58
модально - нет, там чистый код, без форм
#27 by Cthulhu
: ошибаешься, я - гораздо хуже.
#28 by Aprobator
хм - и что экспортную функцию в обработку, которая возвращает результат работы обработки не впихнуть?
#29 by oslokot
то есть ты хочешь извне документа обработать некий код и вернуть результат обратно?
#30 by Aprobator
судя по фигне, предложенной тобой в , полностью с тобой согласен.
#31 by Cthulhu
: судя по тупости, не позволяющей тебя осознать прочитанное при рвущем пукан желании потяффкать - тебя можно разве что пожалеть.
#32 by Aprobator
себя пожалей. Чудо. А вонять вообще на мусорку топай, где тебе самое и место.
#33 by Aprobator
экспортная функция в данном контексте и все дела.
#34 by Guk
почитал, интересно тут у вас. короче, правильный ответ в . при открытии формы обработки передается переменная в качестве параметра открытой формы. в самой обработке этот параметр доступен как Форма.Параметр. в него же и записывается результат работы обработки. после закрытия обработки результат доступен в документе в переменной, которую передавали при открытии формы обработки...
#35 by Aprobator
см . Ответ из не катит.
#36 by Aprobator
+ поскольку формы тупо нет.
#37 by Guk
пришли пожалуйста пример обработки для 7.7 без формы. интересно посмотреть...
#38 by oslokot
да не, все правильно в Просто в при открытии делаем Форма.Закрыть чтоб не маячила
#39 by Guk
достаточно в ПриОткрытии сделать СтатусВозврата ...
#40 by oslokot
ну да, или так...
#41 by Aprobator
не помню уже ) А под рукой нет. Кроме того, насколько мне помнится при использовании ОткрытьФормуМодально там можно вернуть в результат работы этого метода все. Только вот в самой обработке надо для этого что то прописать. Типа Закрыть(ВозвращаемыйРезультат). Но, точно утверждать не берусь. Давненько это было )
#42 by Aprobator
+ а вообще, походу ты прав. Неужели 7 ку еще используете?
#43 by Guk
понятно, мы говорим о разных вещах. ты говоришь о визуализации для пользователя, а я про форму в конфигураторе. просто я считал, что для действий описанных в не надо уточнять, что визуально форма естественно не открывается...
#44 by Guk
2 года не пользую...
#45 by Aprobator
фига се. Я в свое время с 7 ки специально во франь свалил, чтобы 8 ку освоить. С тех пор так редко редко, что то по мелочи перепадало. Если в руки то взять - вспомню конечно. Но, потихоньку все стирается.
#46 by Cthulhu
: не-а. при статусвозврата в параметре в место вызова останется ровно то, что передавали в форму. такая вот инструментальная тонкость. не веришь - проверь. ;)
#47 by Torquader
Параметр корректно работает только при ОткрытьФормуМодально, в противном случае, система создаёт копию параметра. Да и вообще, если в параметр передавать список или таблицу значений, то её содержимое прекрасно меняется вне зависимости от того, как вызывали форму. Только при вызове нужно сначала скопировать таблицу в локальную переменную, чтобы не затереть основную.
#48 by 1dvd
Просто, при закрытии обработки в основной форме никакое событие не срабатывает.
#49 by Andreyyy
Передать параметры через ОткрытьПодбор("Твоя обработка", Параметры) В обработке передать результат через Форма.ВыполнитьВыбор(Результат) Получить результат через ОбработкаПодбора(Результат)
#50 by Guk
в данном случае откроется форма обработки, а автору этого не надо...
#51 by 1dvd
тогда я вообще не пониманю нафига всё это. Чем модальный режим не угодил?
#52 by Guk
см. . автор не хочет модально ;)...
#53 by Пенза58
Это не подбор.
#54 by Пенза58
Сейчас передаю значение через глобальную переменную: гэлДокРасписанияПриЗаполнении=ДокРасп.ТекущийДокумент; Как правильно было написать? Вот код обработки:
#55 by Пенза58
Весь код не залез продолжение:
#56 by Ёпрст
Смело всё в топку
#57 by Ёпрст
вообще конечно, зачетно выбирать все документы из базы, даже одного вида.. смотреть в тч дока.. лепить какие то тз.. Но ничего , с годами это пофигизм проходит.
#58 by 1dvd
ты реально всё это прочитал???
#59 by Ёпрст
так, вскользь
#60 by Пенза58
Расскажи про свой вариант.
#61 by Ёпрст
Задачу то целиком озвуь, мне как-то смотреть простынню и вникать в суть не улыбает.
#62 by Пенза58
Общая задача учет расписания преподавателей и классов. Есть некоторое количество классов и две смены. Создается учебная группа и надо, чтобы её урокам поставились классы, время занятий и преподаватели. В частности  "выбирать все документы" аналог регистра сведений.
#63 by Ёпрст
Один хрен, твой код в топку.. слишком не оптимально и медленно всё.. теже выборки из ТЗ для поиска по 2-м колонкам.
#64 by Пенза58
1. Это ты о чем? 2. Как по-другому сделать?
#65 by Ёпрст
чтобы ответить на этот вопрос нужно знать структуру хранения данных. Один хрен, выборки из тз, перебор всех документов за период.. это всё очень медленно.
#66 by Ёпрст
ну а преобразование ссылки в строку..это вообще моветон
#67 by Пенза58
> структуру хранения данных Какую структуру ты предложишь. Вот надо хранить данные о расписании. Есть группа надо знать в какой день, в каком классе, в какой час(можно упростить пускай будет хотя бы смена вечерняя или дневная), какой преподаватель, будет проводить занятия. Как предлагаешь это хранить? > выборки из тз Что с ними не так? Как по другому? > перебор всех документов за период Альтернативой является работа с периодическими реквизитами справочников. Но тут опять же надо перебирать все группы, и искать были у них занятия в интересующем периоде или нет. Предложи свой вариант, как получить дни в которые были занятия и кто вел и в какое время.
#68 by Пенза58
> ну а преобразование ссылки в строку..это вообще моветон Почему? Эти же данные нигде не хранятся постоянно.
#69 by Ёпрст
изменили представление элемента  - твой алгоритм коту под хвост
#70 by Ёпрст
для начала надо свою озвучить
#71 by Ёпрст
структуру
#72 by Пенза58
> изменили представление элемента Как это так?
#73 by Ёпрст
если основное представление элемента - наименование, то Строка(ЭлементТвой) = ЭлементТвой.Наименование (или =код, или = основной реквизит справочника, если длина кода и наименования =0) Дык вот, изменили наименование - п..ц котёнку.
#74 by Пенза58
#75 by Пенза58
Где ты у меня такой код нашел?
#76 by Ёпрст
аа... весь учет на одном документе построен ? :)
#77 by Пенза58
Учет расписания - да. А что не так?
#78 by Ёпрст
Возврат "["+СокрЛп(Строка(ТекЭлемент))+"];"
#79 by Ёпрст
ну, по мне, так всё..
#80 by Ёпрст
а где часы с 17 по 24 ? :)))
#81 by Ёпрст
Ну и что есть ВремяОкночения ?
#82 by Пенза58
Туда никогда не передается ссылка в чистом виде. Ссылка предварительно обрабатывается Функция КодПрепода(Препод)
#83 by Пенза58
ВремяОкончания. а где часы с 17 по 24 - там вообще не астрономические часы.
#84 by Ёпрст
:)))))))) реквизиты Час01-17 какой тип то имеют хоть ? Чего, нельзя было один реквизит Час сделать ?
#85 by Ёпрст
ДатаДень нахрена ? ДатаДок не есть тоже самое ? Нужно новвое расписание - новый документ, не ? Или вы всегда одним документом всё делаете ?
#86 by Пенза58
Предложи свой вариант? Есть задача учета расписания группы, с классами и преподавателями. И есть задача автоматического заполнения расписания, причем если класс занят, то искался другой класс, если в дневную смену все классы заняты, искался, в вечернюю, если все занято день занятий перносился на другую дату. Когда дата и класс определены подобрать преподавателя который будет вести занятия и который в это время свободен.
#87 by Пенза58
> ДатаДень нахрена ? > ДатаДок не есть тоже самое ? Разумеется нет. Это дата занятия, группа учится может неделями. И в тч, могут быть десятки дат, связи с датой документа вообще никакой.
#88 by Пенза58
> Нужно новвое расписание - новый документ, не ? Для каждой группы свой документ и в нем свое расписание.
#89 by Ёпрст
Ну ладно, зачем тебе 17 реквизитов Час ? Это еще посмотри на досуге, хотя на инфопомойке еще была куча поделок на 7.7
#90 by Пенза58
> реквизиты Час01-17 какой тип то имеют хоть ? Можно сказать булево 1-0 > Чего, нельзя было один реквизит Час сделать ? Как это так? Урок может быть на несколько часов.
#91 by Пенза58
Такой документ:
#92 by Пенза58
Это на 8-ке. На восьмерке понятно было бы все по-другому.
#93 by Пенза58
Я там не увидел про функцию автоматического создания расписания. Т.е. там человек сидит и сочиняет расписание, здесь же программа автоматически это делает.
#94 by Torquader
Всё в одном документе - это очень плохо. Особенно плохо - делить часы на параметры табличной части. Что такое расписание - это связь "кто кого когда и где", то есть соединение четырёх сущностей: 2) Группа студентов (в справочнике) 3) Аудитория (в справочнике) 4) Время проведения занятия (число). Также можно рассматривать дату, как пятый параметр, но она есть в шапке документа. Что мешает сделать табличную часть, где задавать все четыре параметра, связанные друг с другом ? Конечно, более правильно будет преподавателя или группу перенести вообще в шапку документа, чтобы в одном документе задавалось расписание для одного преподавателя (или группы).
#95 by Пенза58
> Всё в одном документе - это очень плохо. Почему? И как по-другому? > Особенно плохо - делить часы на параметры табличной части. Почему? И как по-другому? > 4) Время проведения занятия (число). Ты не путай теплое с мягким, Дата занятия это одно, время занятия это другое. Например на одну и ту же дату может быть и физ подготовка и право - эти дисциплины ведут разные преподаватели. > Также можно рассматривать дату, как пятый параметр, но она есть в шапке документа. Т.е. ты предлагаешь на каждый учебный день отдельный документ? И в этом документе будут все группы учащихся? Т.е. когда создается расписание для группы - то открывать и закрывать десятки документов вместо одного? Что-то я сомневаюсь, что это хорошая идея. >  чтобы в одном документе задавалось расписание для одного преподавателя (или группы). У меня сейчас 1 группа - 1 документ. Группа может учится и пять дней и три месяца (или даже больше), допустим в среднем дней двадцать. Ты предлагаешь создать двадцать документов вместо одного?
#96 by ADirks
Тебе документов жалко что-ли? Можно вообще запилить 1 док - одно занятие. Ты же ведь не станешь заставлять пользователей эти документы редактировать?
#97 by Пенза58
По идее возможно и редактирование
#98 by ADirks
В таких случаях для редактирования делается отдельный интерфейс. Редактировать непосредственно документы - издевательство над людями.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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