Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите с запросом          
Михрутка Подменю пользователя
сообщение 05.02.16, 15:00
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

1С8.2. УТП 1.2

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


Все работает, если одному документу Перемещение соответсвует один документ Расходный ордер. Если Ордеров несколько, не работает, никак не соображу как это исправить. Подскажите. Можно ли это сделать в одном запросе.
Или может вообще делать запрос по Регистру "товары к передачи со складов"?

Petre Подменю пользователя
сообщение 05.02.16, 15:18
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2903
Из: Київ, Україна
Спасибо сказали: 1145 раз
Рейтинг: 1225

Документ "Перемещение1" перемещает "Товар1", "Товар2" и "Товар3". Ему соответствует документ "РОрдер1" с "Товар1" и "РОрдер2" с "Товар3".
В данном случае "Перемещение1" надо "раскрашивать" или нет?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Михрутка Подменю пользователя
сообщение 05.02.16, 15:23
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Petre @ Сегодня, 15:18 *,
Перемещение 1 перемещает товар 1 кол-во 5, товар 2 кол-во 10, товар 3 кол-во 20
РО1 перемещает, товар1 кол-во2, товар2, кол-во 10
РО2 перемещает товар3 кол-во 15
РО3 перемещает товар 1 кол-во 3, товар 3 кол-во 5

Т.е. Если пока по перемещению не перемещен ВЕСЬ товар, любым количеством РО(сколь угодно много), мы подсвечиваем перемещение. Как только все отправили, не подсвечиваем.

pablo Подменю пользователя
сообщение 05.02.16, 15:35
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Нужно 2 таблицы. Первая - общее количество товара в Перемещении, Вторая - общее количество товара в связанных РО. Если Количества не равны - подсвечивать.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Михрутка Подменю пользователя
сообщение 05.02.16, 15:55
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

pablo @ Сегодня, 15:35 *,
Нужно делать вложенный запрос?
Т.е. типа выбираем перемещение, затем ищем все связанные РО и смотрим количество? Как-то так?

Может вообще нужно не документы, а регистры обрабатывать?

pablo Подменю пользователя
сообщение 05.02.16, 15:57
Сообщение #6

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Можно и так, и так (хотя мне документы выглядят предпочтительнее). Можно использовать вложенные запросы, можно временные таблицы, можно их комбинацию smile.gif


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Михрутка Подменю пользователя
сообщение 05.02.16, 16:05
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

pablo @ Сегодня, 15:57 *,
Боюсь для меня это сложно ((( Можете примерчик какой скинуть может?

pablo Подменю пользователя
сообщение 05.02.16, 16:18
Сообщение #8

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

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

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

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



 ! 

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

 
Правила п. 24

Сообщение отредактировал pablo - 05.02.16, 16:20


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: Михрутка,

Михрутка Подменю пользователя
сообщение 07.02.16, 13:51
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

pablo @ 05.02.16, 16:18 *
Все равно не могу слепить в один запрос ((( с одним документом не проблема, а с массивом никак не получается. Кто может помочь, буду признателен.

pablo Подменю пользователя
сообщение 08.02.16, 9:13
Сообщение #10

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

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

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

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

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

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

Сообщение отредактировал pablo - 08.02.16, 9:23


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 17:38
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!