|
Подбор в Таблицу Документов различных типов | ☑ | ||
---|---|---|---|---|
0
BlackMor
02.10.12
✎
12:54
|
Задача организовать подбор во внешней обработке в таблицу отбора Документов трех разных типов. Если нужно подобрать один тип Документа
делаю так: Процедура кпВыбрать(Подбор) ФормаПодбора = Документы.ЗарплатаКВыплатеОрганизаций.ПолучитьФормуВыбора(,ЭтаФОрма,); ФормаПодбора = ПланыВидовХарактеристик.ПланВидовХарактеристик1.ПолучитьФормуВыбора(,ЭтаФОрма,); ФормаПодбора.ЗакрыватьПриВыборе = Ложь; ФормаПодбора.Открыть(); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) Если ТипЗнч(ЗначениеВыбора) = Тип("ДокументСсылка.ЗарплатаКВыплатеОрганизаций") Тогда Строчка = табзнач.Найти(ЗначениеВыбора,"Ведом"); Если Строчка = Неопределено Тогда Строчка = табзнач.Добавить(); Строчка.номе = ЗначениеВыбора.Номер; Строчка.ведом = ЗначениеВыбора.ссылка; Иначе Предупреждение("Ведомость уже выбрана!"); конецесли; конецЕсли; КонецПроцедуры Еще нужно подобрать Документы 2. НачислениеЗарплатыРаботникамОрганизаций 3. РасчетСтраховыхВзносов А с тремя разными типами не получается. Подскажите, пожалуйста, кто хорошо знает методы 1С: 82 как организовать такой подбор. |
|||
1
mikecool
02.10.12
✎
12:56
|
ФормаПодбора = Документы.ЗарплатаКВыплатеОрганизаций.ПолучитьФормуВыбора(,ЭтаФОрма,);
ФормаПодбора = ПланыВидовХарактеристик.ПланВидовХарактеристик1.ПолучитьФормуВыбора(,ЭтаФОрма,); точто-точно документы подбираешь? |
|||
2
BlackMor
02.10.12
✎
12:58
|
Прошу прощения. Это я экспериментировал.
Строка: ФормаПодбора = ПланыВидовХарактеристик.ПланВидовХарактеристик1.ПолучитьФормуВыбора(,ЭтаФОрма,); лишняя. |
|||
3
Cube
02.10.12
✎
12:58
|
Выгрузку из ЗиУП делаешь?))
Я делал так: Форма делится на две части верхнюю и нижнюю. В нижней части список отобранных документов. В верхней части панель с закладками. На каждой закладке список документов одного вида. Пользователь бегает по закладкам, ищет нужный документ и двойным щелчком добавляет его в список отобранных. |
|||
4
BlackMor
02.10.12
✎
13:00
|
(3) Хорошее решение. А какой тип данных нужно указать у списка?
|
|||
5
Cube
02.10.12
✎
13:01
|
||||
6
Cube
02.10.12
✎
13:02
|
(4) Там ТЗ. У колонки "Документ ЗиУП" составной тип данных - те документы, которые туда подставлять будем.
|
|||
7
Cube
02.10.12
✎
13:03
|
+(5) Цветом выделены документы, которые уже отобраны в нижний список.
|
|||
8
kn
02.10.12
✎
13:05
|
(0)Как пример
Процедура ОбъектСогласованияНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СписокТипов = Новый СписокЗначений; СписокТипов.Добавить(Метаданные.Документы["АктСверкиВзаиморасчетов"].Имя, Метаданные.Документы["АктСверкиВзаиморасчетов"].Представление()); СписокТипов.Добавить(Метаданные.Документы["АктСверкиПоКомиссионерам"].Имя, Метаданные.Документы["АктСверкиПоКомиссионерам"].Представление()); СписокТипов.СортироватьПоПредставлению(); Если ЗначениеЗаполнено(Элемент.Значение) Тогда ИмяНачальногоТипа = Элемент.Значение.Метаданные().Имя; НачальноеЗначение = СписокТипов.НайтиПоЗначению(ИмяНачальногоТипа); Иначе НачальноеЗначение = Неопределено; КонецЕсли; ВыбранныйЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокТипов, Элемент, НачальноеЗначение); Если ВыбранныйЭлемент = Неопределено Тогда Возврат; КонецЕсли; ТипДокумента = ВыбранныйЭлемент.Значение; ФормаВыбора = Документы[ТипДокумента].ПолучитьФормуВыбора(,Элемент,); ФормаВыбора.Открыть(); КонецПроцедуры |
|||
9
BlackMor
02.10.12
✎
13:06
|
(7) Спасибо огромное! Попробую написать подобное.
Это типовая обработка или специализированная. Можно ознакомиться с текстом модуля?? |
|||
10
shuhard
02.10.12
✎
13:10
|
(0) есть и очевидное решение - использовать журнал документов в режиме выбора:
Формочка=ЖурналыДокументов.ДокументыПоНачислениюЗарплатыОрганизаций.ПолучитьФорму(,ЭтаФорма); Формочка.РежимВыбора=Истина; Формочка.ЗакрыватьПриВыборе=Ложь; Формочка.Открыть(); |
|||
11
Cube
02.10.12
✎
13:15
|
(9) Не, это не типовая, это я сам писал. Выгружает в УПП по COM-соединению. Мы уже ей не пользуемся, у нас теперь вот чо: http://storage7.static.itmages.ru/i/12/1002/h_1349169278_6240758_51de1f01b6.jpeg - работает на лпанах обмена. По сути, развитие обмена из (5).
|
|||
12
Cube
02.10.12
✎
13:16
|
+(11) Эта новая обработка вообще показывает какие реквизиты изменены были.
|
|||
13
Cube
02.10.12
✎
13:20
|
(9) Модуль большой. Если касательно сабжа, то вот всего две процедуры:
Процедура СписокДокументовВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; НайденныеСтроки = ДокументыДляВыгрузки.НайтиСтроки(Новый Структура("ДокументЗиУП", ВыбраннаяСтрока)); Если НайденныеСтроки.Количество() = 0 Тогда Строка = ДокументыДляВыгрузки.Добавить(); Строка.ДокументЗиУП = ВыбраннаяСтрока; Иначе Сообщить("Этот документ уже добавлен в список документов для выгрузки."); КонецЕсли; КонецПроцедуры //СписокДокументовВыбор() Процедура СписокДокументовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДокументыДляВыгрузки.НайтиСтроки(Новый Структура("ДокументЗиУП", ДанныеСтроки.Ссылка)).Количество() > 0 Тогда ОформлениеСтроки.ЦветФона = Новый Цвет(225, 230, 185); Иначе ОформлениеСтроки.ЦветФона = ЦветаСтиля.ЦветФонаПоля; КонецЕсли; КонецПроцедуры //СписокДокументовПриВыводеСтроки() |
|||
14
BlackMor
02.10.12
✎
13:25
|
(8), (10), (13) Еще раз всем огромное СПАСИБО !!!
Сажусь писать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |