|
Определить тип документа | ☑ | ||
---|---|---|---|---|
0
igel1969
04.05.15
✎
13:57
|
Здравствуйте!
Мой запрос возвращает документы разных типов - ПКО, Реализации, документы расчетов, возвраты... Я выгружаю результат запроса в табличную часть, соответственно отображаю в табличном поле. Далее по двойному щелчку я хочу в зависимости от того - какой тип документа делать то или иной действие. Но как мне определить - какой тип документа выбран? По Виду операции не вариант, ибо у возвратов от покупателя и у документов расчетов с контрагентами нет вида операции. Код запроса: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК Документ, | -1 * ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток КАК НепривязаннаяСумма, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Контрагент.Ссылка КАК Контрагент, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КАК Дата, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента КАК СуммаДокумента |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки |ГДЕ | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Проведен = ИСТИНА | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ПометкаУдаления = ЛОЖЬ | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток < 0 | И НЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Комментарий ПОДОБНО ""%ручная%"" | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ВидДоговора = &ВидДоговора | |УПОРЯДОЧИТЬ ПО | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент.Наименование, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата"; Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем); НепривязанныеПКО.Очистить(); НепривязанныеПКО.Загрузить(Запрос.Выполнить().Выгрузить()) |
|||
1
igel1969
04.05.15
✎
14:00
|
Пример неудачного (неправильного) определения вида документа, так как у возврата нет вида операции:
Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) Если ВыбраннаяСтрока.Документ.ВидОперации <> Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия Тогда Форма = ПолучитьФорму("ФормаОтчета1",,ЭтаФорма); ВыбранныйДоговор = ВыбраннаяСтрока.ДоговорКонтрагента; Форма.ОткрытьМодально(); Иначе Форма = ПолучитьФорму("ФормаОтчета2",,ЭтаФорма); ВыбранныйДоговор = ВыбраннаяСтрока.ДоговорКонтрагента; Форма.ОткрытьМодально(); КонецЕсли; КонецПроцедуры |
|||
2
ДенисЧ
04.05.15
✎
14:00
|
ТипЗнч() не подойдёт?
|
|||
3
igel1969
04.05.15
✎
14:03
|
(2) Извините, а в коде как это может выглядеть?
Если ВыбраннаяСтрока.Документ.ТипЗнч() = ? Чему? |
|||
4
igel1969
04.05.15
✎
14:05
|
(2) точнее, если ТипЗнч(ВыбраннаяСтрока.Документ) = ? Чему ?
|
|||
5
ДенисЧ
04.05.15
✎
14:07
|
(4) Если ТипЗнч(ВыбраннаяСтрока.Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер)...
|
|||
6
igel1969
04.05.15
✎
14:10
|
(5) Спасибо огромное - заработало:
Если ТипЗнч(ВыбраннаяСтрока.Документ) <> Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда Все отбирает как надо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |