Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с запросом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Михрутка
1С8.2. УТП 1.2

При получении данных документа Список Перемещение товаров раскрашиваю строки в зависимости от того, созданы расходные ордера на перемещения или нет. Вот запрос
"ВЫБРАТЬ
                |    ЕСТЬNULL(ПеремещениеТоваровТовары.Количество, 0) КАК КоличествоВПеремещении,
                |    ПеремещениеТоваровТовары.Ссылка КАК СсылкаПеремещение,
                |    ПеремещениеТоваровТовары.Номенклатура КАК НоменклатураВПеремещении,
                |    РасходныйОрдерНаТоварыТовары.Ссылка КАК СсылкаРасходныйОрдер,
                |    РасходныйОрдерНаТоварыТовары.Номенклатура КАК НоменклатураВРасходномОрдере,
                |    ЕСТЬNULL(РасходныйОрдерНаТоварыТовары.Количество, 0) КАК КоличествоВРасходномОрдере,
                |    ВЫБОР
                |        КОГДА ЕСТЬNULL(ПеремещениеТоваровТовары.Количество, 0) - ЕСТЬNULL(РасходныйОрдерНаТоварыТовары.Количество, 0) <> 0
                |            ТОГДА ИСТИНА
                |        ИНАЧЕ ЛОЖЬ
                |    КОНЕЦ КАК ПодсвечиватьДокумент2
                |ИЗ
                |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
                |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары.Товары КАК РасходныйОрдерНаТоварыТовары
                |        ПО ПеремещениеТоваровТовары.Ссылка = РасходныйОрдерНаТоварыТовары.Ссылка.ДокументПередачи
                |            И ПеремещениеТоваровТовары.Номенклатура = РасходныйОрдерНаТоварыТовары.Номенклатура
                |            И ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры = РасходныйОрдерНаТоварыТовары.ХарактеристикаНоменклатуры
                |            И ПеремещениеТоваровТовары.СерияНоменклатуры = РасходныйОрдерНаТоварыТовары.СерияНоменклатуры
                |            И (РасходныйОрдерНаТоварыТовары.Ссылка.Проведен = ИСТИНА)
                |ГДЕ
                |    ПеремещениеТоваровТовары.Ссылка В(&МассивДокументов)
                |    И ПеремещениеТоваровТовары.Ссылка.ВидОперации.Ссылка = &ВидОперации
                |ИТОГИ
                |    МАКСИМУМ(ПодсвечиватьДокумент2)
                |ПО
                |    СсылкаПеремещение";


Все работает, если одному документу Перемещение соответсвует один документ Расходный ордер. Если Ордеров несколько, не работает, никак не соображу как это исправить. Подскажите. Можно ли это сделать в одном запросе.
Или может вообще делать запрос по Регистру "товары к передачи со складов"?
Petre
Документ "Перемещение1" перемещает "Товар1", "Товар2" и "Товар3". Ему соответствует документ "РОрдер1" с "Товар1" и "РОрдер2" с "Товар3".
В данном случае "Перемещение1" надо "раскрашивать" или нет?
Михрутка
Petre @ Сегодня, 15:18 необходимо зарегистрироваться для просмотра ссылки,
Перемещение 1 перемещает товар 1 кол-во 5, товар 2 кол-во 10, товар 3 кол-во 20
РО1 перемещает, товар1 кол-во2, товар2, кол-во 10
РО2 перемещает товар3 кол-во 15
РО3 перемещает товар 1 кол-во 3, товар 3 кол-во 5

Т.е. Если пока по перемещению не перемещен ВЕСЬ товар, любым количеством РО(сколь угодно много), мы подсвечиваем перемещение. Как только все отправили, не подсвечиваем.
pablo
Нужно 2 таблицы. Первая - общее количество товара в Перемещении, Вторая - общее количество товара в связанных РО. Если Количества не равны - подсвечивать.
Михрутка
pablo @ Сегодня, 15:35 необходимо зарегистрироваться для просмотра ссылки,
Нужно делать вложенный запрос?
Т.е. типа выбираем перемещение, затем ищем все связанные РО и смотрим количество? Как-то так?

Может вообще нужно не документы, а регистры обрабатывать?
pablo
Можно и так, и так (хотя мне документы выглядят предпочтительнее). Можно использовать вложенные запросы, можно временные таблицы, можно их комбинацию smile.gif
Михрутка
pablo @ Сегодня, 15:57 необходимо зарегистрироваться для просмотра ссылки,
Боюсь для меня это сложно ((( Можете примерчик какой скинуть может?
pablo
Пример для одного документа:
ВЫБРАТЬ
    СУММА(ПеремещениеТоваровТовары.Количество) КАК Количество
ПОМЕСТИТЬ Перемещение
ИЗ
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ГДЕ
    ПеремещениеТоваровТовары.Ссылка = &Ссылка
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА Перемещение.Количество = РО.Количество
            ТОГДА ЛОЖЬ
        ИНАЧЕ ИСТИНА
    КОНЕЦ КАК Раскрашивать
ИЗ
    Перемещение КАК Перемещение,
    РО КАК РО



 ! 

Цитата
Можете примерчик какой скинуть может?

 
Правила п. 24
Михрутка
pablo @ 05.02.16, 16:18 необходимо зарегистрироваться для просмотра ссылки
Все равно не могу слепить в один запрос ((( с одним документом не проблема, а с массивом никак не получается. Кто может помочь, буду признателен.
pablo
Дам еще одну подсказку. Первые две таблицы изменятся вот так:
ВЫБРАТЬ
    СУММА(ПеремещениеТоваровТовары.Количество) КАК Количество,
    ПеремещениеТоваровТовары.Ссылка
ПОМЕСТИТЬ Перемещение
ИЗ
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ГДЕ
    ПеремещениеТоваровТовары.Ссылка в (&МассивДокументов)

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваровТовары.Ссылка
;

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

СГРУППИРОВАТЬ ПО
    РасходныйОрдерНаТоварыТовары.Ссылка

Вам останется додумать, какое поле должно появиться в итоговой выборке и как будут таблицы связываться в ней
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.