УТ. Как программно выполнить процедуру в другом документе? #713570


#0 by 247tsm
Доброй ночи гуру 1с82. Вопрос у меня такой. В УТ я сделал свой документ Заказ. В документе Заказ по кнопке Накладная я создаю новый документ РеализацияТоваровУслуг и программно заполняю его. В табличной части документа РеализацияТоваровУслуг в поле Номенклатура я вставляю Номенклатуру, которая является набором. После сохранения и открытия созданного документа РеализацияТоваровУслуг на вкладке табличной части Товары я нажимаю кнопку "Состав набора", но получаю пустой состав набора, хотя реально набор состоит из двух товаров. Я понимаю, что при ручном заполнении табличной части документа РеализацияТоваровУслуг срабатывает процедура ТоварыНоменклатураПриИзменении(Элемент). ВОПРОС. Как мне программно из моего документа Заказ, кроме заполнения реквизитов документа РеализацияТоваровУслуг ещё и запустить эту процедуру - ТоварыНоменклатураПриИзменении(Элемент)? Или вопрос по-другому, что нужно сделать, чтобы при нажатии кнопки "Состав набора" я действительно увидел состав набора? Т.к. я еще не силен в 1с82, буду очень признателен, если в Ваших советах будет конкретный пример кода. Спасибо.
#1 by mehfk
Посмотреть на функцию в первый раз и увидеть, что в ее определении отстутствует слово "Экспорт" Посмотреть на функцию во второй раз и понять, что она находится в модуле формы.
#2 by Wobland
сделаем вывод за ТС. необходимо повторять логику обработчика ПриИзменении в своём коде
#3 by Escander
если логика вынесена в экспортную процедуру - решается вызовом её
#4 by skunk
иногда это может привести к полной опе
#5 by skunk
хотя насчет полной наверное сильно приврал
#6 by 247tsm
- Спасибо за рекомендации, НО... Я попытался так сделать. Но ведь это, как снежный ком. Я перенес одну процедуру, затем вторую... До конца я так и не дошёл. Я придумал другой интересный способ. В документ я добавил реквизит "парам" и программно заполняю его, как "истина". А в процедуре "ПриОткрытии" проверяю его значение и если "истина", то пытаюсь выполнить процедуру "ТоварыНоменклатураПриИзменении(Элемент)": Но для этого, я думаю, мне нужно передавать не строку ТекУслуга, а сделать активным первое поле - ТекУслуга.Номенклатура и его передавать в процедуру. Но как это сделать?
#7 by Wobland
слово "логику" ты не увидел, да?
#8 by 247tsm
я еще не так хорошо, как ты, владею 1с82 и не смог понять до конца логику действий процедуры ТоварыНоменклатураПриИзменении - там столько ссылок на разные процедуры, что после перехода по очередной ссылке забываешь, что ищешь, поэтому и прошу помочь мне с помощью конкретного кода, который, думаю будет намного короче, чем простая сумма всех процедур.
#9 by МимохожийОднако
С этой логикой используй открытие формы заполняемого документа и вызов нужных функций этой формы. Но я так не люблю делать...Правильнее воспользоваться уже вышеприведенными советами.
#10 by 247tsm
Я понимаю, что там заполняется реквизит КлючСтроки, а может, и КлючСвязи, но не смог до конца проследить что, как делается.
#11 by ZaprosMan
говорит, нужно сделать процедуру ТоварыНоменклатураПриИзменении" Экспортной, получить форму, и  выполняй свою процедуру наздоровье.
#12 by 247tsm
но я ж написал, что логику до конца не понял и  поэтому прошу помочь мне конкретным кодом - я понимаю, что те, кто мне давал советы, говорили "вообще" - про теорию, я с ними полностью согласен. Но мне нужна не теория, а практика - программный код (если, конечно, кто-нибудь спустится "на землю" и посмотрит эти процедуры и сможет написать этот конкретный код).
#13 by ZaprosMan
+ Но надо понимать, что это не совсем верно, с точки зрения чистоты кода, короче это говнакод. Но иногда, когда не охота заморачиваться, приходится так делать.
#14 by 247tsm
но я это делал. Но процедура ТоварыНоменклатураПриИзменении тянет за собой кучу других процедур!!!!!!!!!!!!!!! И я до конца так и не дошёл.
#15 by ZaprosMan
#16 by Wobland
мне лениво, у меня работа есть
#17 by 247tsm
показываю: А процедуру ПриИзмененииНоменклатурыТовары тоже надо сделать экспортной? Пожалуйста: Процедура ПриИзмененииНоменклатурыТовары(Элемент) А что делать с : И их делать экспортными? И т.д.
#18 by skunk
ихмается тебе надо переделать на нечто подобное для каждого стчТовары из Товары   ТоварыНоменклатураПриИзменении(ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления); конеццикла
#19 by ZaprosMan
где находится процедура РасчетАкциза(СтрокаТабличнойЧасти); В модуле объекта?
#20 by 247tsm
Класс!!!!!!!!!! Получилось!!!!!!!! СПАСИБО!!!!!!!
#21 by 247tsm
нет в модуле формы.
#22 by 247tsm
Всем спасибо!!!!!!!!!!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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