|
Проверка наличия поля у ТЧ в запросе |
☑ |
0
Ychenik1c
11.08.22
✎
05:44
|
Добрый день.
Запрос общем модуле. Обращение к ТЧ документам. В зависимости от документа меняется источник для запроса
В одном из документов есть новый реквизит
Я добавляю в запрос условие но даже если оно не выполняется проверка идёт что отсутствуют такие поля и ошибка. Как можно обойти данную ситуацию?
|Выбор
|Когда ТипЗначения(ДанныеДокумента.Ссылка) = Тип(Документ.ПрочееОприходованиеТоваров) Тогда
|Выбор
| Когда
| &ИспользуетсяОрдернаяСхемаПриПоступлении
| И Не ДанныеДокумента.НоменклатураВозврат = Значение(Справочник.Номенклатура.ПустаяСсылка)
| Тогда ДанныеДокумента.НоменклатураВозврат
| Иначе ДанныеДокумента.Номенклатура
| Конец
| Иначе ДанныеДокумента.Номенклатура
| Конец КАК Номенклатура,
Из документ.ПеремещениеТоваров.Товары как ДанныеДокумента
|
|
1
Ychenik1c
11.08.22
✎
05:46
|
Реквизит в ТЧ НоменклатураВозврат есть только в Документ.ПрочееОприходованиеТоваров
|
|
2
Ychenik1c
11.08.22
✎
05:52
|
Есть NULL не помог
|
|
3
Phoenixxx
11.08.22
✎
05:53
|
Двумя виртуальными таблицами и затем объединить.
|
|
4
Phoenixxx
11.08.22
✎
06:03
|
Это весь запрос?
Там данные только из документов одного типа
Из документ.ПеремещениеТоваров.Товары как ДанныеДокумента
|
|
5
Ychenik1c
11.08.22
✎
06:07
|
(3)
Не всё так просто.
Это общий модуль. Запросы собираются в пакет. На выходе таблицы для записи движений. Типов документов много. Запрос состоит где то из 70 пакетов
|
|
6
Phoenixxx
11.08.22
✎
06:09
|
Либо можно в модуле менять текст запроса если при выполнении данные запрашиваются только из документов одного типа
|
|
7
Йохохо
11.08.22
✎
06:13
|
(6) или посмотреть в метаданные, если для любого типа
|
|
8
Phoenixxx
11.08.22
✎
06:27
|
(7) Я это имел в виду. Посмотрел какой тип документа в данный момент обрабатывается и согласно этому типу изменил текст запроса.
|
|
9
alarm2020
11.08.22
✎
08:17
|
(0) Звездочку используй
|
|
10
VoditelKobyly
11.08.22
✎
09:21
|
(0) Какая-то странная выборка:
|Выбор
|Когда ТипЗначения(ДанныеДокумента.Ссылка) = Тип(Документ.ПрочееОприходованиеТоваров) Тогда
|...
Из документ.ПеремещениеТоваров.Товары как ДанныеДокумента
Вроде как явно задан тип документа ПеремещениеТоваров, но сравнивается с типом ПрочееОприходованиеТоваров
Так и надо?
|
|
11
mistеr
11.08.22
✎
09:45
|
(0) В самом запросе проверить наличие поля нельзя. На момент выполнения запроса все поля должны быть определены и существовать.
Решение состоит в динамическом формировании текста запроса. Для нужного документа ставь свое выражение, а для всех остальных типов документов просто Номенклатура.
|
|
12
СеменовСемен
11.08.22
✎
09:48
|
Если ты подменяешь таблицу, то уже и поле подменяй
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший