Имя: Пароль:
1C
1С v8
Как написать условие в запросе
, ,
0 Adgjj
 
10.08.12
15:01
Код пишу в Процедура ОбработкаПроведения ремонтного листа (такой же будет в путевом листе).
Скажите, пжл, как во втором "ГДЕ" написать условие, что если текущий документ ремонт, то из регистра ПростоиТС не нужны в запросе документы с ПростоиТС.ДатаНачала = дате текущего документа?

Сейчас ругается на |    ВЫРАЗИТЬ(ВыработкаТС_Лес.ПутЛист КАК СТРОКА(6)) - типы несовместимые.

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВыработкаТС_Лес.ПутЛист КАК Док,
   |    ВЫРАЗИТЬ(ВыработкаТС_Лес.ПутЛист КАК СТРОКА(6)) КАК ВидДок, //ВыработкаТС_Лес.ПутЛист.ВидПЛ  //не ""Ремонт""
   |    ВыработкаТС_Лес.ДатаВыезда КАК ДатаНач,
   |    ВыработкаТС_Лес.ДатаВозвращения КАК ДатаКон
   |ИЗ
   |    РегистрНакопления.ВыработкаТС_Лес КАК ВыработкаТС_Лес
   |ГДЕ
   //ищем док-ты, дата/время к-рых пересекается с дата/время текущего док.
   |       (&ДатаНачТек МЕЖДУ ВыработкаТС_Лес.ДатаВыезда И ВыработкаТС_Лес.ДатаВозвращения
   |    ИЛИ &ДатаОкТек МЕЖДУ ВыработкаТС_Лес.ДатаВыезда И ВыработкаТС_Лес.ДатаВозвращения
   |    ИЛИ ВыработкаТС_Лес.ДатаВыезда      МЕЖДУ &ДатаНачТек И &ДатаОкТек
   |    ИЛИ ВыработкаТС_Лес.ДатаВозвращения МЕЖДУ &ДатаНачТек И &ДатаОкТек)
   |    И ВыработкаТС_Лес.ТС = &АвтоИзЭтогоДок И  ВыработкаТС_Лес.Активность И ВыработкаТС_Лес.Организация = &Организация
   |
   |ОБЪЕДИНИТЬ
   |
   | ВЫБРАТЬ
   |    ПростоиТС.Регистратор,
   |    ВЫРАЗИТЬ(ПростоиТС.Регистратор КАК СТРОКА(6)), //""Ремонт""
   |    ПростоиТС.ДатаНачала,
   |    ПростоиТС.ДатаОкончания
   |ИЗ
   |    РегистрНакопления.ПростоиТС КАК ПростоиТС
   |ГДЕ
   |       (&ДатаНачТек МЕЖДУ ПростоиТС.ДатаНачала И ПростоиТС.ДатаОкончания
   |    ИЛИ &ДатаОкТек МЕЖДУ ПростоиТС.ДатаНачала И ПростоиТС.ДатаОкончания
   |    ИЛИ ПростоиТС.ДатаНачала      МЕЖДУ &ДатаНачТек И &ДатаОкТек
   |    ИЛИ ПростоиТС.ДатаОкончания МЕЖДУ &ДатаНачТек И &ДатаОкТек) //в ремонте ДатаНачала=ДатаОкончания; зато время разное: в 1С8 дата это дата+время.
   |    И ПростоиТС.ТС = &АвтоИзЭтогоДок И ПростоиТС.Активность И ПростоиТС.Организация = &Организация
   //|    И ПростоиТС.ДатаНачала <> &ДатаНачТек //В ОбработкеПроведения РЕМОНТа!!!
   |
   |
   |УПОРЯДОЧИТЬ ПО
   |    ДатаКон
   |";              
    Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация);
    Запрос.УстановитьПараметр("ДатаНачТек", ЭтотОбъект.ДатаНачала); //ДатаНачала с формы ремонта или ДатаВыезда для ездки
    Запрос.УстановитьПараметр("ДатаОкТек", ЭтотОбъект.ДатаОкончания);
    Запрос.УстановитьПараметр("ВидДокРемонт", "Ремонт");
    Запрос.УстановитьПараметр("АвтоИзЭтогоДок", ЭтотОбъект.ТС);
1 DrShad
 
10.08.12
15:04
не читал, но телепатирую - пихай всю эту херь во вложенный запрос, а из него уже тяни с условиями и группировками
2 Zombi
 
10.08.12
15:10
ВЫБОР КОГДА ТекущийДокумент Ссылка(ДокументСсылка.ДокументРемонт) ТОГДА  НЕ ПростоиТС.ДатаНачала = ДатаТекущегоДокумента ИНАЧЕ 1 КОНЕЦ
3 andrewks
 
10.08.12
15:12
(2) садись, два
4 andrewks
 
10.08.12
15:15
(0) так и пиши:

где ((Регистратор ссылка Документ.ДокументРемонт) и не (ПростоиТС.ДатаНачала = дате текущего документа)) или не (Регистратор ссылка Документ.ДокументРемонт)
5 Adgjj
 
10.08.12
16:11
в том и вопрос, как Регистратор ссылка Документ.ДокументРемонт
написать
6 Adgjj
 
10.08.12
16:12
я даже наверно напишу
7 Adgjj
 
10.08.12
16:15
что-то не то пишу
|    И (ПростоиТС.Регистратор ссылка ДокументОбъект.Ссылка и ПростоиТС.ДатаНачала <> &ДатаНачТек)
   |    или не (ПростоиТС.Регистратор ссылка ДокументОбъект.Ссылка)  //Документ.ДокументРемонт
   |
   |
   |УПОРЯДОЧИТЬ ПО
   |    ДатаКон
   |";              
    Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация);
    Запрос.УстановитьПараметр("ДатаНачТек", ЭтотОбъект.ДатаНачала); //ДатаНачала с формы ремонта или ДатаВыезда для ездки
    Запрос.УстановитьПараметр("ДатаОкТек", ЭтотОбъект.ДатаОкончания);
    Запрос.УстановитьПараметр("ВидДокРемонт", "ДокументОбъект.Ссылка");
    //Запрос.УстановитьПараметр("Ссылка", ДокументОбъект.Ссылка);
8 Adgjj
 
10.08.12
16:17
ПростоиТС.Регистратор ссылка ВидДокРемонт
так ведь не написать

значит наверно надо не через ССЫЛКА?
9 SUA
 
10.08.12
16:18
(8)именно так как в (5) и написать
Регистратор ссылка Документ.ДокументРемонт
10 SUA
 
10.08.12
16:19
Регистратор ссылка Документ.<имя документа в конфе>
11 pessok
 
10.08.12
16:20
во блин... а я до сих пор ТипЗначения(Регистратор) использую, темнотаааа
12 Adgjj
 
10.08.12
16:28
Таблица не найдена "Документ.ДокументРемонт"
13 Adgjj
 
10.08.12
16:28
))
14 Adgjj
 
10.08.12
16:28
уатРемонтныйЛист
15 Adgjj
 
10.08.12
16:29
спасибо огромное
16 Adgjj
 
13.08.12
09:24
Все-таки в ГДЕ не так надо писать:
ПростоиТС.Регистратор ссылка Документ.уатРемонтныйЛист

регистратор для ПростоиТС итак всегда Документ.уатРемонтныйЛист.

Надо написать ТекущийДокумент ссылка Документ.уатРемонтныйЛист
Скажите, пжл, как написать ТекущийДокумент в запросе?
17 Adgjj
 
13.08.12
09:34
http://s008.radikal.ru/i303/1208/4d/e068e67d8d4c.jpg

не пойму почему ошибку стал выдавать: ВыработкаТС_Лес.Организация = &Организация
18 Adgjj
 
13.08.12
09:36
(17) тип один справочникссылка.организации