ТабличноеПоле

1. KoSHkaaaaaA 32 20.08.08 11:33 Сейчас в теме
Поскажите плиз как сделать,чтобы на форме при изменении поля ввода Контрагент изменялось табПоле "Договора" и где лучше прописать процедуру..на форме или в модуле?
Вот запрос, который будет работать при выборе контагента:




Процедура ЗаполнитьСписокДоговоров() экспорт
Запрос = Новый запрос;
Запрос.УстановитьПараметр("ДатаНач",ДатаНачала);
Запрос.УстановитьПараметр("ДатаКон",ДатаКонца);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
Запрос.Текст ="ВЫБРАТЬ РАЗЛИЧНЫЕ
| Взаиморасчеты.ДоговорКонтрагента КАК ДоговорКонтрагента,
| Взаиморасчеты.Контрагент КАК Контрагент,
| Взаиморасчеты.Организация,
| Взаиморасчеты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК Валюта,
| Взаиморасчеты.ДоговорКонтрагента.ВидДоговора КАК ВидДоговора
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК Взаиморасчеты
|ГДЕ
| Взаиморасчеты.Период >= &ДатаНач
| И Взаиморасчеты.Период <= &ДатаКон
| И Взаиморасчеты.Организация = &Организация
| И Взаиморасчеты.Контрагент В(&Контрагент)
|
|УПОРЯДОЧИТЬ ПО
| Валюта УБЫВ,
| Контрагент";
Если ПоВсемОрганизациям = Истина Тогда
Запрос.УстановитьПараметр("Контрагент",Контрагент);
КонецЕсли;
ВыборкаДоговоров = Запрос.Выполнить().Выбрать();
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. serros 20.08.08 18:47 Сейчас в теме
Добавить событие ОбработкаВыбора поля Контрагент и прописать туда, только не забудь о том что если поле пустое, то и табчасть нужно будет очистить.
+
3. KoSHkaaaaaA 32 21.08.08 06:39 Сейчас в теме
СПАСИБО, serros а почему не в событие ОкончаниеВводаТекста??
+
4. serros 21.08.08 12:47 Сейчас в теме
ОкончаниеВводаТекста - вызывается после ввода текста при сходе с элемента управления, таким образом чтобы запустилась обработка события нужно будет после выбора данных поля щелкнуть по какому-нибудь элементу формы... а ОбработкаВыбора - вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления - тоесть то, что нам и нужно
+
5. KoSHkaaaaaA 32 22.08.08 05:25 Сейчас в теме
А..все равно не хочет, очень странно...вот конкретный вопрос: КАК Сделать так чтобы резвыборки высветился в ТабПоле, вроде выгрузить, а не хочет..а потом как??? Таблицей значений???
+
6. Valerich 1634 23.08.08 05:30 Сейчас в теме
тебе нужны все договора контрагента или выбранные по условию?
если отобранные по хитрому условию:
размещаешь на форме ПолеТабличногоДокумента, связываешь с таблицей значений. Колонки можно задать сразу на стадии разработки или по результатам условия.
Если колонки заданы сразу, выгружаешь результат запроса в таблицу значений, потом из этой таблицы переписываешь в ТЗ, связанную с таб полем. В стандартных конфах для этого есть процедура ОбщегоНазначения.ЗагрузитьВТаблицуЗначений( ТЗИсточник. ТЗПриемник). Перед применением ТЗПриемник очисть. Преписывает инфу по колонкам с совпадающими именами.
Если колонки не создаешь на стадии разработки, то выгружаешь результат запроса сразу в ТЗ, связанную с таб полем, потом ЭлементыФормы.ИмятабПоля.СоздатьКолонки();
Если просто все договора или условие отбора простое, размести таб поле с типом источника данных СправочникСписок.ДоговорыКонтрагентов. Установи связь по владельцу с Контрагент. Можно накладывать условия отбора как в обычном справочнике (интерактивно и програмно)
+
7. KoSHkaaaaaA 32 25.08.08 05:39 Сейчас в теме
Вот на форме есть реквизиты:ДатаНач и ДатаКон, Организация и Контрагент. При вводе контрагента в ТабПоле должна выводиться выборка колонок: №, Использовать (флажки), ДоговорКонтрагента, Организация, ВалютаВзаиморасчетов, ВидДоговора (реквизиты табличной части:Использовать,ДоговорКонтрагента,Контрагент). Также на форме есть флажки:ПоВсемОрганизациям,ПоХолдингу,ПоСпискуКонтрагентов. Вот при их установке в ТабПоле выборка меняется.
При установке флПоВсемОрганизациям колонки остаются теже,но выборка договоров по контрагенту уже со всеми орг-ми в определенный период. Если флПоХолдингу, то выборка по определенному Контрагенту и опр.Орг-ей, но в ТабПоле добавляется колонка Контрагент. А вот если установить флПоСпискуКонтрагентов, то на форме появляется страница и вводится список Контрагентов (реквизиты тчКонтрагенты: Контрагент) и потом переходя на страницу договоров, то там уже высвечивается выборка договоров этих контрагентов с опр.Орг-ей..Колонке как при вводе начальном. И мне именно нужно выборка в ТабПоле, а не ПолеТабДок

Вот 1 вопрос: Если в ПолеВвода Контрагента ввести и установить флПоСпискуКонтрагентов, то на странице ввода списка Контрагентов в ТабПоле должен быть уже введен этот контрагент из ПоляВвода. Как это прописать?? Надеюсь я понятно объясняю
2 вопрос: Вот как осуществить вывод определенных колонок, при том что некоторые из ТЧ,а некотрые надо создать
МОЖЕТ кто скинет обработку наподобие этому
+
8. KoSHkaaaaaA 32 25.08.08 05:43 Сейчас в теме
Вот или примерный код кто напишет..Типо так: Договора.Загрузить(Запрос.Выполнить().Выбрать()); И не загружает
Запрос в модуле объекта, а остальное в модуле формы.
+
9. luns 26.08.08 09:36 Сейчас в теме
Что то не понял... а чем "Связь по владельцу" не угодила?
Прикрепленные файлы:
ВнешняяОбработка2.zip
+
10. Valerich 1634 26.08.08 10:04 Сейчас в теме
отлавливай события и пиши разные запросы - раз состав колонок меняется. А дальше выгружаешь результат запроса в ТЗ, связанную т таб полем и для таб поля СоздатьКолонки()
+
11. KoSHkaaaaaA 32 27.08.08 14:00 Сейчас в теме
Ну не подходит мне связь по владельцу! ПРОЧИТАЙТЕ внимательнее описание 25.08.2008 05:39:33. Я не знаю как выгрузить каждую колонку из ВыборкаРезультатаЗапроса в колонки ТабПоле, которое создано данными ТабЧасти объекта.

Вот пример в обработке...Если ввести период, организацию, а потом контрагента, то при вводе контрагента выйдет выборка в 1ТП. Но мне нужно чтобы во втором, которое является табличной часть объекта +новые колонки из выборки запроса. Еще три флажка, при их изменении выдается др.выборка. Первое ТабПоле вообще не нужно, просто чтобы пример показать как должно быть.
Прикрепленные файлы:
akt.rar
+
12. Valerich 1634 28.08.08 05:27 Сейчас в теме
к 25.08.2008 05:39:33
1) если есть возможность - посмотри, например, БП любой из документов: ПКО, РКО, ПлатПорИсх или ПлатПорВход - в любом из них есть табличная часть РасшифровкаПлатежа, которая может редактироваться как таблица или как одна строка из таблицы. Все очень просто
2) Формируешь таблицу значений, связанную с табличным полем любым способом (запрос+доп. обработка в коде) - т.е. набор колонок и их наполнение по строкам. После этого выполняешь
ТвоеТабличноеПоле.СоздатьКолонки();
т ьы увидишь свою таблицу значений.
+
13. KoSHkaaaaaA 32 28.08.08 07:48 Сейчас в теме
блин..почему для меня все не так просто:(
+
14. KoSHkaaaaaA 32 28.08.08 07:52 Сейчас в теме
а по- подробнее пункт 2
+
15. Valerich 1634 28.08.08 10:12 Сейчас в теме
допустим у тебя на форме лежит табличное поле СписокДоговоров, тип: таблица значений, данные: СписокДоговоров.
В обработчиках событий различных элементов вызываешь процедуру СформироватьСписокДоговоров()
В ней формируешь ТЗ: например
СписокДоговоров = Запрос.Выполнить()Выгрузить() (запросом)
или СписокДоговоров = Новый таблицаЗначений + колонки + наполнение
в зависимости от разных условий
В конце этой процедуры
ЭлементыФормы.СписокДоговоров.СоздатьКолонки();
+
16. KoSHkaaaaaA 32 29.08.08 06:40 Сейчас в теме
Спасибо большое Валерыч!
Вроде он загрузил колонки, но только те, которые были в ТабПоле (тчДоговора). Я вставила колонки, а вот новые он уже незагружает..меняет клонки на те которые были и загружает
+
17. Valerich 1634 29.08.08 10:08 Сейчас в теме
попробуй не создавать колонки на стадии разработки, пусть будет пустое табличное поле
+
18. PeRom 51 29.08.08 10:13 Сейчас в теме
У меня работает так:
Код
   ЭлементыФормы.тчЗагрузки.Значение = тзЗагрузки;
   ЭлементыФормы.тчЗагрузки.СоздатьКолонки();
   Для КолТЧ=0 По ЭлементыФормы.тчЗагрузки.Колонки.Количество()-1 Цикл
      ЭлементыФормы.тчЗагрузки.Колонки[КолТЧ].ОтображатьИтогиВПодвале = Истина;
   КонецЦикла;
   ЭлементыФормы.тчЗагрузки.ОбновитьСтроки();
Показать полностью

где тзЗагрузки - заполненная таблица значений
тчЗагрузки - пустая таблица на форме обработки
может что-то и лишнее здесь, но работает отлично и по функционалу и по скорости(тзЗагрузки - 210 колонок и 6000 строк)
+
19. KoSHkaaaaaA 32 01.09.08 05:35 Сейчас в теме
Да мне прям нужно чтобы колонки уже были:( И только потом их наполнение
+
20. Valerich 1634 01.09.08 06:14 Сейчас в теме
можешь подробнее показать как формируешь данные для вывода и как выводишь?
+
21. KoSHkaaaaaA 32 01.09.08 13:58 Сейчас в теме
Процедура СформироватьСписокДоговоров()
Договора.Очистить();Запрос = Новый Запрос;
Если ПоСпискуКонтрагентов Тогда
Параметры = " И Взаиморасчеты.Контрагент = &ВыбраннаяГруппаКонтрагентов И Взаиморасчеты.Организация = &Организация";
ИначеЕсли ПоВсемОрганизациям Тогда
Параметры = " И Взаиморасчеты.Контрагент = &Контрагент";
ИначеЕсли ПоХолдингу Тогда
Параметры = " И Взаиморасчеты.Контрагент = &Контрагент И Взаиморасчеты.Организация = &Организация";
Иначе
Параметры = " И Взаиморасчеты.Контрагент = &Контрагент И Взаиморасчеты.Организация = &Организация";
КонецЕсли;

Запрос.Текст= "ВЫБРАТЬ РАЗЛИЧНЫЕ
| Взаиморасчеты.ДоговорКонтрагента КАК ДоговорКонтрагента,
| Взаиморасчеты.Контрагент КАК Контрагент,
| Взаиморасчеты.Организация,
| Взаиморасчеты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК Валюта,
| Взаиморасчеты.ДоговорКонтрагента.ВидДоговора КАК ВидДоговора
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК Взаиморасчеты
|ГДЕ
| Взаиморасчеты.Период >= &ДатаНач
| И Взаиморасчеты.Период <= &ДатаКон"
+Параметры+"
|УПОРЯДОЧИТЬ ПО
| Валюта УБЫВ,
| Контрагент";
Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
Договора.Загрузить(Запрос.Выполнить().Выгрузить());

//тз.Колонки.Добавить("Организация", Новый Описание типов "Справочники.Организации"),"Организация",100));
// тз.Колонки.Добавить("Валюта", Новый ОписаниеТипов("Справочники.Валютаы"),"Валюта",30));
// тз.Колонки.Добавить("ВидДоговора", Новый ОписаниеТипов("Перечисления.ВидыДоговоровКонтрагентов"),"Вид договора",45));


КонецПроцедуры

------
Вообщем выводятся только колонки тчДоговора, а добавленные в связанное с ним ТабПоле колонки Орг-я,Валюта,ВидДоговора-не выводит
+
22. KoSHkaaaaaA 32 03.09.08 10:17 Сейчас в теме
Эх..я вроде справилась..но не так как хотелось, просто в табличную часть добавила реквизиты, Большое спасибо за помощь Валерыч:)
+
Внимание! Тема сдана в архив

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