|
УФ: помогите с запросом!!! | ☑ | ||
---|---|---|---|---|
0
dft2014
15.04.16
✎
11:22
|
8.3
У нас есть понятие осн.договор и доп.соглашение. Но вводятся в программу они одним видом документа - "ДоговорРаботыУслуги". Чтобы их как-то различать между собой, в документе "ДоговорРаботыУслуги" добавили реквизит "ОсновнойДоговор": если этот реквизит не заполнен, то мы понимаем, что это и есть осн.договор. Если заполнен, то мы видим, что это доп.соглашение к такому-то осн.договору. Задача: На форме документа "ДоговорРаботыУслуги" добавлена кнопка, которая заполняет табличную часть всеми Актами, у которых одинаковый основной договор. Подскажите, почему если добавляю условие на осн.договор, то запрос не срабатывает. Без этого условия, все ок! Но мне надо отобрать именно по определенному осн.договору. Вот запрос: &НаСервере Процедура ЗаполнитьАктамиНаСервере() ЭтаФорма.Объект.ВсеАкты.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АктПриемкиВыполненныхРаботОказанныхУслуг.Ссылка КАК Акт, | АктПриемкиВыполненныхРаботОказанныхУслуг.ДатаАктаС КАК ДатаАктаС, | АктПриемкиВыполненныхРаботОказанныхУслуг.ДатаАктаПо КАК ДатаАктаПо |ИЗ | Документ.АктПриемкиВыполненныхРаботОказанныхУслуг КАК АктПриемкиВыполненныхРаботОказанныхУслуг |ГДЕ | АктПриемкиВыполненныхРаботОказанныхУслуг.Сотрудник = &Ссылка // вот это условие( | И ТИПЗНАЧЕНИЯ(АктПриемкиВыполненныхРаботОказанныхУслуг.Договор) = ТИП(Документ.ДоговорРаботыУслуги) | И АктПриемкиВыполненныхРаботОказанныхУслуг.Договор.ОсновнойДоговор = &ОсновнойДоговор"; // вот это условие) Запрос.УстановитьПараметр("Ссылка", Объект.Сотрудник); Запрос.УстановитьПараметр("ОсновнойДоговор", Объект.ОсновнойДоговор); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НовСтр = Объект.ВсеАкты.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр, ВыборкаДетальныеЗаписи); //при условии что имена полей ТЧ и выборки совпадают КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ЗаполнитьАктами(Команда) ЗаполнитьАктамиНаСервере(); КонецПроцедуры |
|||
1
dimaldinho
15.04.16
✎
11:24
|
// вот это условие( - тут два условия
|
|||
2
dft2014
15.04.16
✎
11:28
|
(1) Два условия, т.к. в Акте, реквизит договор - составной:
- ДоговорРаботыУслуги - ДоговорАвторскогоЗаказа Поэтому я вставила условие: ТИПЗНАЧЕНИЯ(АктПриемкиВыполненныхРаботОказанныхУслуг.Договор) = ТИП(Документ.ДоговорРаботыУслуги) |
|||
3
FIXXXL
15.04.16
✎
11:50
|
(2) это лишнее
|
|||
4
dft2014
15.04.16
✎
12:04
|
(3) Даже если убираю это условие, то запрос все равно не срабатывает.
|
|||
5
FIXXXL
15.04.16
✎
12:06
|
(4) ну проверь, что в параметры передаешь
|
|||
6
dimaldinho
15.04.16
✎
12:13
|
+ к (5) убери оба условия, добавь в выбранные поля
АктПриемкиВыполненныхРаботОказанныхУслуг.Договор.ОсновнойДоговор выполни запрос в консоли, посмотри, что выходит |
|||
7
dft2014
15.04.16
✎
13:15
|
В консоли, запрос из (0) отрабатывает верно!
|
|||
8
dft2014
15.04.16
✎
13:16
|
+(7) даже с этими двумя условиями!!!
|
|||
9
FIXXXL
15.04.16
✎
13:28
|
(8) отладчик в руки и (5)
|
|||
10
dft2014
15.04.16
✎
13:43
|
(9) отладчиком не заходит в цикл почему-то, а параметры передаются верные!
|
|||
11
ks_83
15.04.16
✎
13:59
|
это убираем
ТИПЗНАЧЕНИЯ(АктПриемкиВыполненныхРаботОказанныхУслуг.Договор) = ТИП(Документ.ДоговорРаботыУслуги) а это АктПриемкиВыполненныхРаботОказанныхУслуг.Договор.ОсновнойДоговор = &ОсновнойДоговор"; меняем на следующее ВЫРАЗИТЬ(АктПриемкиВыполненныхРаботОказанныхУслуг.Договор КАК Документ.ДоговорРаботыУслуги).ОсновнойДоговор = &ОсновнойДоговор"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |