ЗаполнитьПоДокументуОснования(Основание) #726470


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

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