Имя: Пароль:
1C
1С v8
КАк в запросе обратиться к документам двух видов
0 suvolod
 
13.12.12
08:25
Берем простейший запрос:

ВЫБРАТЬ
   ОтчетКомитентуОПродажахТовары.Номенклатура
ИЗ
   Документ.ОтчетКомитентуОПродажах.Товары КАК ОтчетКомитентуОПродажахТовары
ГДЕ
   ОтчетКомитентуОПродажахТовары.Ссылка = &Ссылка

Проблема - запрос может формироваться не только по документу ОтчетОРозничныхПродажах, но и РеализацияТоваровУслуг. Названия и ТЧ, и тех полей, которые мне нужно выбрать, в этих документах совпадают. Можно каким-то образом написать универсальный вариант запроса, чтобы он выбирал данные из ТЧ Товары по любому из двух документов.

В голову приходит только проверять ТипЗнч(Док), а затем парсить текст запроса: через СтрЗаменить менять одно название документа на другое... Но, может быть, есть способ проще?
1 Галахад
 
гуру
13.12.12
08:27
ВЫБРАТЬ
   Док.Номенклатура
ИЗ
   Документ."+ТипДок+".Товары КАК Док
ГДЕ
   Док.Ссылка = &Ссылка
2 kible
 
13.12.12
08:28
(0) Объединить?
3 suvolod
 
13.12.12
08:32
(1) Увы, это тоже подмена, да еще такая, после которой конструктор перестанет работать
(2) Объединить - это писать дубль запроса по каждому документу (а он на самом деле не ограничивается отбором только номенклатуры), да еще подставлять в качестве ссылки некорректную (например, на подзапрос по Отчету о розничных продажах - ссылку на РТиУ)
4 Живой Ископаемый
 
13.12.12
08:33
не надо писать запросы к ТЧ. для того чтобы унифицировать данные из документов имеющих разные наборы полей и ТЧ придумали регистры.
5 Повелитель
 
13.12.12
08:33
ВЫБРАТЬ
   ОтчетКомитентуОПродажахТовары.Номенклатура
ИЗ
   Документ.ОтчетКомитентуОПродажах.Товары КАК ОтчетКомитентуОПродажахТовары
ГДЕ
   ОтчетКомитентуОПродажахТовары.Ссылка = &Ссылка

Ну так же оставь, чтобы конструктор работал.
А внизу напиши.
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Документ.ОтчетКомитентуОПродажах","НужныйДокумент")
6 suvolod
 
13.12.12
08:36
(4). Привет, Живой ископаемый :). Запросы к ТЧ иногда нужно писать. В моем случае - чтобы проверить что количество списываемого документом товара не превышает остаток.

(5). Я это об этом способе уже упоминал в (0). ни на что не претендую... просто думал, вдруг есть способ изящнее. Вот и запостил ветку
7 suvolod
 
13.12.12
08:46
ладно.. раз больше никто не пишет, значит, других вариантов нет.
8 Живой Ископаемый
 
13.12.12
15:16
2(6) И что, есть шансы что при списывании товара ты можешь не знать каким документом это делаешь?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший