Имя: Пароль:
1C
1С v8
Выборка заказов поставщиков
0 lampa
 
20.11.13
11:45
Добрый день.

Потребовалось выбрать все заказы поставщиков, статус которых не равен "закрыт".

С первой частью справился таким способом:

<pre>
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказПоставщику.Номер,
        |    ЗаказПоставщику.Дата,
        |    ЗаказПоставщику.Ссылка
        |ИЗ
        |    Документ.ЗаказПоставщику КАК ЗаказПоставщику
        |
        |СГРУППИРОВАТЬ ПО
        |    ЗаказПоставщику.Номер,
        |    ЗаказПоставщику.Дата,
        |    ЗаказПоставщику.Ссылка";
        
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();

    Пока Выборка.Следующий() Цикл
        
        //Сообщить(ПользовательскийМодуль.ЗаписатьJSON(Выборка, ЛОЖЬ));
        
        ЗапросТовары = Новый Запрос;
        ЗапросТовары.Текст =
            "ВЫБРАТЬ
            |    ЗаказПоставщикуТовары.Количество,
            |    ЗаказПоставщикуТовары.Цена,
            |    ЗаказПоставщикуТовары.Номенклатура.Наименование,
            |    ЗаказПоставщикуТовары.Номенклатура.Артикул
            |ИЗ
            |    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
            |        ПО ЗаказПоставщикуТовары.Ссылка = ЗаказПоставщику.Ссылка
            |ГДЕ
            |    ЗаказПоставщику.Ссылка = &Ссылка";

            
        ЗапросТовары.УстановитьПараметр("Ссылка", Выборка.Ссылка);
        РезультатТовары = ЗапросТовары.Выполнить();
        ВыборкаТовары = РезультатТовары.Выбрать();
    КонецЦикла;
</pre>

А вот как выбирать именно те заказы, где статус которых не равен "закрыт", я не знаю, т.к. свойство "статус" у "Документ.ЗаказПоставщику" имеет свойства "ссылка" и "порядок", из которых ничего вытянуть не получилось.
1 ProProg
 
20.11.13
11:48
Жестокий хлопець.
Нет шобы из регистра брать
2 Галахад
 
гуру
20.11.13
11:48
Второй запрос прикольный.
3 ProProg
 
20.11.13
11:49
Вот бери за основу что надо сделать
http://subsystems.ru/upload/iblock/324/tab_20.png
4 ProProg
 
20.11.13
11:49
(2) да шо первый что второй. говорит что чел впервые 1С увидел
5 lampa
 
20.11.13
11:52
оО не ожидал такого быстрого ответа. Спасибо!

Не, я буду только рад увидеть более правильное решение.
Сейчас вот нужно только статус достать.
ProProg, из изображения ничего не понял.
6 Godofsin
 
20.11.13
11:55
(0) я ослеп!
7 Галахад
 
гуру
20.11.13
11:57
(6) Настолько прекрасно?
8 lampa
 
20.11.13
11:57
А вообще, чем отличается регистр от запроса? Регистр же тоже выполняет запрос. Так какая разница?
9 mikecool
 
20.11.13
11:59
(3) а ты все с бесплатной рекламой?
10 mikecool
 
20.11.13
12:00
(1) как найдешь таким способом не проведенные доки?
11 lampa
 
20.11.13
12:02
mikecool
в запросе есть свойство "проведен", если что - я его буду проверять.
Кстати, как сделать так, чтобы сообщение было адресовано кому-то?
12 lampa
 
20.11.13
12:04
mikecool не так понял вопрос.
Не проведенные доки мне не нужны. Я на выходе формирую json массив, который потом на сайт идет.
13 mikecool
 
20.11.13
12:04
выбрать ссылка
из документ.ЗаказПоставщику
где Не Статус = &Закрыт

Запрос.УстановитьПараметр("Закрыт", какое то значение)

"Кстати, как сделать так, чтобы сообщение было адресовано кому-то?" это доступно только зареганым 5 лет и более, которые поняли что есть скобки
14 mikecool
 
20.11.13
12:04
(12) это уже твои проблемы ) мне пофик
15 lampa
 
20.11.13
12:07
(13) "Не Статус = &Закрыт"
это да, я догадался. А вот как получить "какое то значение" я хз как. Или тупо стринговое значение вписать?
16 mikecool
 
20.11.13
12:08
(15) кончай мыслить о стрингах в 1с, это тебе не пхп какой то
какое то значение - это именно значение, а не строка
17 lampa
 
20.11.13
12:11
(16) больше на смесь явы и ecma похоже.
Ну так вот, как получить это значение статуса? Собственно надо было и начинать мне с этого вопроса тему.
18 mikecool
 
20.11.13
12:12
(17) это скорее всего будет перечисление.статусызаказовпоставщиков.Закрыт
19 ProProg
 
20.11.13
12:16
(18) вот те делать нех.
Для начало надо указать конфигурацию.
В УТ10 вообще нах статусов нет.
В УТ11 есть - но они в документе тоже не является гарантом.
20 mikecool
 
20.11.13
12:18
(19) а твоя поделка гарант?
21 mikecool
 
20.11.13
12:18
+20 если нет остатков в регистре - заказ закрыт?
22 ProProg
 
20.11.13
12:21
(21) а ты как думаешь
23 mikecool
 
20.11.13
12:22
(22) а то, что заказ может быть закрыт до исполнения - тебя не смущает?
24 mikecool
 
20.11.13
12:22
+23 до полного исполнения*
25 mikecool
 
20.11.13
12:22
+24 и как то надо различать эти два понятия
26 ProProg
 
20.11.13
12:29
и чо?
27 ProProg
 
20.11.13
12:30
какие два понятия? ты о чем?
Нет остатков в регистре по товарам заказа. все точка.
28 lampa
 
20.11.13
12:38
mikecool спасибо. Подчерпнул о перечислениях.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший