Ошибка: Данная команда не может выполняться в формуле элемента диалога... #16497


#0 by WED
По кнопке на форме элемента справочника вызывается процедура. В процедуре требуется осуществить запись текущего элемента:... Запись;...На это 1С ругается:Данная команда не может выполняться в формуле элемента диалога!Как можно обойти?v77.20.SQL.
#1 by AnRy
Записать;
#2 by WED
2 Да я в курсе, что Записать, а не Запись - я просто опечатался.
#3 by Lvk
Если есть ТИС 9.2., то см. кнопки на форме документа Перемещение ТМЦ
#4 by Zanuda
ТекущийЭлемент.Записать (или ТекущийЭлемент.Записать).
#5 by WED
2 Нету.2 ТекущийЭлемент.Записать; = Не выбран элемент!
#6 by Болван
1 - А процедура как называеться?2 - Посмотри в процедуре ПриЗаписи нет ли там Записать
#7 by WED
21.Процедура Пересчет2.Нет.
#8 by Самый умный
а расскажи-ка что у тебя написано в формуле элемента диалога...
#9 by WED
2 Ничего особенного, только вызов этой процедуры ПересчетЕё код:КонецПроцедуры;Вобщем смысл её таков:После изменений в элементе-владельце (в текущем элементе), нужно пересчитать некоторые значения в элементах подчиненного справочника "Ресурсы", а для этого надо сначала записать все эти изменения.. Вот запись изменений мне и не удается... Можно,конечно, сделать две кнопки "Запись" и "Пересчет", но как-то это не красиво.
#10 by bsg
Попробуй Записать применить к объекту.
#11 by WED
2 А точнее?
#12 by bsg
Показалось, это делается из списка справочника.
#13 by MetaEditor
Спр.ИспользоватьВладельца(ТекущийЭлемент);
#14 by WED
2 НЕ пойдет.Мне надо:1. Записать текущий эл.2. Пересчитать подчиненные.3. Поскольку подчиненные изменились - пересчитать одну цифру в текущем.4. Снова записать.Из-за п.4 #Записть в кнопке не пойдет.
#15 by MetaEditor
так и думал, покажи как делаешь запись текущего после пересчёта подч. справочника
#16 by GrayT
СтатусВозвратаС синора брал, а где не помню
#17 by WED
2 А это, простите, к чему?
#18 by WED
2 Пока никак - вперся с первоначальной записью.Еще момент: если вкнопке прописать формулу так: #Записать; Пересчетто процедура Пересчет НЕ ВЫЗЫВАЕТСЯ. Совсем.
#19 by Самый умный
а чего ты вообще паришься? вызывай свой пересчет в процедуре ПриЗаписи
#20 by WED
гм...мой 18ый относился к 16ому посту.2 А это-то здесь причем. Мне не надо закрывать форму. Мне надо осуществить запись элемента в процедуре, вызываемой по кнопке на его форме.
#21 by Самый умный
+19 так, мне кажеЦа, правильнее всего будет....
#22 by WED
2 А ты порядок действий в посмотри внимательно, и поймешь почему парюсь - мне надо записать, а потом пересчитать, а потом опять записать. А ты предлагаешь: пересчитать, записать. Потому что в ПриЗаписи выполняется ПЕРЕД записью данных.
#23 by Самый умный
кстати, в тебе правильно сказали: Спр.ИспользоватьВладельца(ТекущийЭлемент);и еще: зачем тебе все-таки записывать ДО вызова пересчета?
#24 by Болван
Не тупи твой порядок действий1. Записать текущий эл.2. Пересчитать подчиненные.3. Поскольку подчиненные изменились - пересчитать одну цифру в текущем.4. Снова записать.получиться такой1. Пересчитать подчиненные.2. Поскольку подчиненные изменились - пересчитать одну цифру в текущем.3. Снова записать.И НЕ НАДО 2 РАЗА ЗАПИСЫВАТЬ!!!! что сократит также время выполнения модуля
#25 by MetaEditor
24) а если пересчет зависит от изменённых данных в текущем?
#26 by Пух
2 Что я не так делаю?Создал элемент справочника. Повесил кнопку с ПересчетВ модуле элемента:Процедура ПересчетКонецПроцедурыВсе записывает, все меняет ни на что не ругается...
#27 by Самый умный
я тоже про это уже думал... скорее всего у WED'а что-то все-таки еще в формуле элемента диалога записано....
#28 by Болван
1:0 ступил , вот и я говорю пусть весь код покажет , млят гдето накалывают не пойму где , должен же записывать полюбому
#29 by bsg
Два в одном - два развода на одной странице.Есть ли возможность спозиционироваться программно в форме списка?Данная команда не может выполняться в формуле элемента диалога...
#30 by Самый умный
ну и что?
#31 by Просто Директор
А объект- то создан?
#32 by MetaEditor
неспокойно мне всёж по поводу пересчёта подчиненных...полный текст дать можно?
#33 by MetaEditor
30) 25 - провокация.....прошла...
#34 by WED
2 ИМЕННО! Мне подчиненные и надо пересчитать, чтобы рассчитать их сумму для нового количества в текущем. А вот новую (рассчитанную при пересчете) сумму подчиненных надо занести в текущий. Вот и получается, что надо записать изменения в текущем (чтобы при пересчете подчиненных брались новые значения владельца), пересчитать подчиненные (и получить новую сумму подчиненных),(занести новую сумму в текущий) и опять записать.Весь этот гемморой из-за того, что в процедуре пересчета подчиненных используются данные не непосредственно из переданного контекста, а переданный контекст (элемент-владелец) находится в справочнике и данные берутся из него. Такая беда из-за того,что процедура пересчета вызывается из множества мест и достаточно универсальна.Отсю.да рождается второй вариант решения данной проблемы: Переделка всех процедур пересчета. Иерархия подчинения справочников довольно-таки не малая: 1-3-2-2 (к главному подчиняются три справочника, а им в свою очередь еще два, а к ним еще два).
#35 by WED
Народ. Никакого развода. Есть форма элемента. На ней кнопка "Применить", в формуле которой только вызов процеджуры Пересчет.КонецПроцедурыглРасчетРесурсаРасценки(Спр) - процедура пересчета подчиненного элемента.глРасчетРасценки(Контекст) - процедура пересчета текущего.Всё.
#36 by MetaEditor
самое интересное в глобальных процедурах...не отстану... покажи её...
#37 by Самый умный
НАФИГА ты передаешь контекст?
#38 by Пух
Т.е. Процедура Пересчет с закоментированными Записать в начале и конце процедуры отрабатывается нормально?
#39 by WED
Блин! Долбанный диал-ап :( Столько написал и в пустую.Короче: Нашел я проблему.. как ни смешно, но на мысль натолкнул ПУХ, со своим "что я делаю неправильно".... Вобщем начал от открытия формы рыть... и нарыл вот что: Если в процедуре ПриОткрытии есть Записать или вызов процедуры с Записать, то получите выше указанную ошибку и совсем не важно, что НИ В ОДНОМ из элементов формы НЕТ вызова этой процедуры...
#40 by WED
СПАСИБО ВСЕМ. Серьезно. Спасибо народ... И извините, что время отнял.
#41 by MetaEditor
Записать работает в контексте формы. При открытии - формы ещё нет = полтора часа моз#######ва...
#42 by WED
2 Да понятно, что при открытии Записать не может работать, а ты попробуй сообрази, если 1С ошибку пишет про формулу элемента формы....
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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