|
Не могу вникнуть в маленький запросик | ☑ | ||
---|---|---|---|---|
0
1Сергей
27.05.16
✎
14:29
|
Есть запрос, которым отбираются некие документы
Запрос.Текст = "ВЫБРАТЬ | СуперДокумент.Ссылка |ИЗ | Документ.СуперДокумент КАК СуперДокумент |ГДЕ | (НЕ СуперДокумент.ПодписанАктВыполненныхРабот = ДАТАВРЕМЯ(1, 1, 1) | И НЕ СуперДокумент.Вознаграждение + СуперДокумент.НДС = 0 | И СуперДокумент.ПодписанАктУслугЗаОвердрафт = ДАТАВРЕМЯ(1, 1, 1) | И СуперДокумент.Документ_РеализацияТоваровУслугЗаОвердрафт = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка) | ИЛИ НЕ СуперДокумент.ПодписанАктВыполненныхРабот = ДАТАВРЕМЯ(1, 1, 1) | И НЕ СуперДокумент.Вознаграждение + СуперДокумент.НДС = 0 | И НЕ СуперДокумент.ПодписанАктУслугЗаОвердрафт = ДАТАВРЕМЯ(1, 1, 1) | И НЕ СуперДокумент.Документ_РеализацияТоваровУслугЗаОвердрафт = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка) | ИЛИ СуперДокумент.ПодписанАктВыполненныхРабот = ДАТАВРЕМЯ(1, 1, 1) | И СуперДокумент.Вознаграждение + СуперДокумент.НДС = 0 | И НЕ СуперДокумент.ПодписанАктУслугЗаОвердрафт = ДАТАВРЕМЯ(1, 1, 1) | И НЕ СуперДокумент.Документ_РеализацияТоваровУслугЗаОвердрафт = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка) | ИЛИ СуперДокумент.ПодписанАктВыполненныхРабот = ДАТАВРЕМЯ(1, 1, 1) | И СуперДокумент.Вознаграждение + СуперДокумент.НДС = 0 | И СуперДокумент.ПодписанАктУслугЗаОвердрафт = ДАТАВРЕМЯ(1, 1, 1) | И СуперДокумент.Документ_РеализацияТоваровУслугЗаОвердрафт = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)"; Объясните мне смысл всего это, если кто понял, пожалуйста |
|||
1
Карупян
27.05.16
✎
14:36
|
рассмотри каждую группы ИЛИ в отедельности
|
|||
2
Fragster
гуру
27.05.16
✎
14:36
|
сгруппируй "не по конструкторски", учитывая, что сначала выполняется НЕ, потом И, Потом ИЛИ
|
|||
3
1Сергей
27.05.16
✎
14:37
|
какие есть мысли:
1. Если установлена дата ПодписанАктВыполненныхРабот, то Вознаграждение+НДС должно отличатся от нуля. И наоборот, если НЕ установлена дата ПодписанАктВыполненныхРабот, то Вознаграждение+НДС должно быть равно нулю. 2. Если установлена дата ПодписанАктУслугЗаОвердрафт, то должен быть заполнен Документ_РеализацияТоваровУслугЗаОвердрафт. И наоборот, если НЕ установлена дата ПодписанАктУслугЗаОвердрафт, то Документ_РеализацияТоваровУслугЗаОвердрафт должен быть пустым. так? |
|||
4
Карупян
27.05.16
✎
14:38
|
(2) норм сгруппировано тут
|
|||
5
AllJoke
27.05.16
✎
14:38
|
НЕ ПодписанАктВыполненныхРабот = ДАТАВРЕМЯ(1, 1, 1) - чтобы дата не пустая
НЕ СуперДокумент.Вознаграждение + СуперДокумент.НДС = 0 - чтобы было вознагарждение или ндс СуперДокумент.ПодписанАктУслугЗаОвердрафт = ДАТАВРЕМЯ(1, 1, 1) - чтобы дата пустая СуперДокумент.Документ_РеализацияТоваровУслугЗаОвердрафт = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка) - чтобы док стоял пустой ...ну и так далее. |
|||
6
Карупян
27.05.16
✎
14:39
|
А еще лучше НЕ заменить на <>
|
|||
7
AllJoke
27.05.16
✎
14:40
|
вообще для наглядности заменить длинные переменные в редакторе (Notepad) ну и посомтреть все эти НЕ, И, ИЛИ.
|
|||
8
Fragster
гуру
27.05.16
✎
14:42
|
(6) +100
|
|||
9
Карупян
27.05.16
✎
14:43
|
Тут есть 4 реквизита (1 из них сумма)
проверяем что эти пустые или те или дригие |
|||
10
1Сергей
27.05.16
✎
14:51
|
Верны ли мысли в (3)?
|
|||
11
AllJoke
27.05.16
✎
14:57
|
(10) Мысли должны одновременно выполнятся, а не по 1., 2.
|
|||
12
1Сергей
27.05.16
✎
15:00
|
(11) обрати внимание, первый два реквизита либо попарно с НЕ, либо без. И вторые два точно также. Оттого 4 группы по ИЛИ
|
|||
13
4St
27.05.16
✎
15:40
|
Упрощенно, в документе есть 4 поля, заполненность которых анализирует запрос. (СуперДокумент.Вознаграждение + СуперДокумент.НДС можно условно считать одним полем в данной задаче, судя по их именам).
Получаем 16 возможных комбинаций заполнено/не заполнено. Запрос отбирает 4 такие комбинации. Можно нарисовать в экселе 4 колонки, соответствующие этим полям, и проставить 4 строки с плюсами, которые наглядно расскажут, что это за комбинации такие. Возможно, потом в "ПередЗаписью" добавить функцию, которая заполнит в нем новое булево поле "ЭтотЧертовДокументЗаполнен". И перенести адовы условия в нее. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |