Имя: Пароль:
1C
1С v8
Что не так с запросом?
0 Zebbar
 
27.08.12
15:02
В общем, у меня ошибку выдает:
       |    НАЧАЛОПЕРИОДА(ЗаказНаПроизводствоПродукция.Ссылка.ДатаИсполнения, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ДатаДокумента - 86400 * ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ЯБ_СрокИзготовления, ДЕНЬ)

Если что - это УПП.
Надо выбрать те спецификации, которые надо начинать делать сегодня.

Куда копать?
1 Rie
 
27.08.12
15:03
(0) А какую именно ошибку выдаёт?
2 Zebbar
 
27.08.12
15:07
(1) "Неверные параметры "-""
Не нравится знак "-" во второй функции НачалоПериода
3 Zebbar
 
27.08.12
15:08
(1) Если точно, то так:
Неверные параметры "-"
НАЧАЛОПЕРИОДА(ЗаказНаПроизводствоПродукция.Ссылка.ДатаИсполнения, ДЕНЬ) >= НАЧАЛОПЕРИОДА(<<?>>&ДатаДокумента - 86400 * ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ЯБ_СрокИзготовления, ДЕНЬ)
4 Ненавижу 1С
 
гуру
27.08.12
15:09
из даты нельзя вычитать число
5 МишКа
 
27.08.12
15:14
(4) Легко
6 salvator
 
27.08.12
15:20
(5) В запросе вроде нельзя так делать
(0) А передать в запрос сразу результат вычитания почему не хочешь?
7 fisher
 
27.08.12
15:20
Только для этого функция специальная есть - ДОБАВИТЬКДАТЕ
8 ILM
 
гуру
27.08.12
15:21
ДобавитьКДате применяйте с минусом
(7) Опередил
9 ILM
 
гуру
27.08.12
15:23
(0) Помимо срока изготовления, есть еще срок изготовления полуфабрикатов и обеспечения материалами.
10 Zebbar
 
27.08.12
15:26
(7) - Сейчас посмотрю, похоже, то что нужно
(9) - это пока не важно.
(6) - потому что нужно выбрать продукцию, которую нужно делать сегодня. А это считается как "Дата, когда должно быть готово" - "Срок изготовления"
11 ILM
 
гуру
27.08.12
15:27
(9) +[Если что - это УПП.
Надо выбрать те спецификации, которые надо начинать делать сегодня.]
Ох, в УПП не все так просто. Есть дерево конструктор спецификаций, у каждого ПФ есть своё время изготовления и есть еще загрузки рабочего центра, есть график доступности РЦ, время операции, комплектность и т.д.

Я бы подумал подольше сначала.
12 salvator
 
27.08.12
15:30
(10) 3. Я строку "&ДатаДокумента - 86400" имел в виду. Ее можно было вынести за пределы запроса, предварительно посчитав и запихнув в отдельный параметр, и использовать его уже в запросе.
Но в принципе, ДОБАВИТЬКДАТЕ Вас спасет, как написали в (7) и (8)
13 Zebbar
 
27.08.12
15:36
(11) Согласен. Но пока мы ее с нашей 7.7 скрещиваем. То есть просто переносим функциона
(12) Не получится. У нас есть заказы на разные даты. Причем в заказе спецификация не подвязана. ТАк что за пределы запроса выражение не вытащишь.
14 Zebbar
 
27.08.12
15:38
(7), (8) - а где можно найти описание? А то что-то мне встроенная справка ничего не дает
15 salvator
 
27.08.12
15:41
(14) Shift+F1 в конфигураторе
16 Zebbar
 
27.08.12
15:43
(15) - открывается оглавление
Уже нашел в интернете, спасибо
17 Zebbar
 
27.08.12
15:44
Всем спасибо, что получилось:

ВЫБРАТЬ
   ЗаказНаПроизводствоПродукция.Ссылка,
   ЗаказНаПроизводствоПродукция.Количество,
   ЗаказНаПроизводствоПродукция.Номенклатура,
   ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры,
   ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ЯБ_СрокИзготовления
ИЗ
   Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК ОсновныеСпецификацииНоменклатуры
       ПО ЗаказНаПроизводствоПродукция.Номенклатура = ОсновныеСпецификацииНоменклатуры.Номенклатура
           И ЗаказНаПроизводствоПродукция.ХарактеристикаНоменклатуры = ОсновныеСпецификацииНоменклатуры.ХарактеристикаНоменклатуры
ГДЕ
   НАЧАЛОПЕРИОДА(ЗаказНаПроизводствоПродукция.Ссылка.ДатаИсполнения, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаДокумента, ДЕНЬ), ДЕНЬ, ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ЯБ_СрокИзготовления)
   И ЗаказНаПроизводствоПродукция.Ссылка.Подразделение = &Подразделение
18 Zebbar
 
27.08.12
15:46
У меня, правда, еще вопрос остался.
Если спецификация отсутствует, можно ли как-нибудь поправить запрос, чтобы возвращалось пустое значение спецификации? А то такие позиции, которые без спецификаций, пропускаются.
19 ILM
 
гуру
27.08.12
16:54
Откройте для себя "ЛЕВОЕ СОЕДИНЕНИЕ" и "ЕСТЬ NULL"
20 fisher
 
27.08.12
17:24
(16) Синтаксиса запросов в синтакс-помощнике нет. Он в основной справке сидит.
Внутренний язык - Работа с запросами - Синтаксис текста запросов - Дальше сам разберешься
21 fisher
 
27.08.12
17:26
Или Alt + F1
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн