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

Хранилище

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

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



> Запрос: поступления и продажи в разрезе топа          
Bon Jovi Подменю пользователя
сообщение 08.05.20, 11:22
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0

Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
Добрый день. Начинающий программист. Попробовал решить задачу и вроде бы всё верно, но руководитель говорит, что есть ошибка. Я уже голову сломал, но не могу её найти. Вроде результат верный получается. Хотелось бы услышать мнения грамотных людей, может быть Вы сможете мне помочь?
Задание:
на входе задаем параметры:
период - начало ___ дата
период - окончание ___ дата
ТОР GP - ___ EX

Система анализирует кол-во поступлений товара с привязкой по заданному ТОПУ, и если кол-во документов "поступлений товара" больше 1, за указанный период времени. На выходе получаем КОЛОНКИ:

1. бренд (сортировка от А до Я)
2. код
3. номенклатура
4. сумма (по кол-ву) закупаемого товара
5. сумма (по кол-ву) проданного товара. (продажа-возврат, не равно продажа) ЕСЛИ ПРОДАЖ НЕ БЫЛО, ТО = ПУСТО.
6. TOP GP

Мой код:
ВЫБРАТЬ
    Закупки.Номенклатура КАК Номенклатура,
    СУММА(Закупки.Количество) КАК КоличествоЗакупаемогоТовара,
    ЗначенияСвойствОбъектов.Свойство КАК TOPGP
ПОМЕСТИТЬ Закупки
ИЗ
    РегистрНакопления.Закупки КАК Закупки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО Закупки.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
    Закупки.Период МЕЖДУ &ПериодНачало И &ПериодОкончание
    И ЗначенияСвойствОбъектов.Значение = &TOPGP
    И Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
    Закупки.Номенклатура,
    ЗначенияСвойствОбъектов.Свойство

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.КоличествоОборот КАК КоличествоПроданногоТовара
ПОМЕСТИТЬ Продажи
ИЗ
    РегистрНакопления.Продажи.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    Закупки.Номенклатура.Бренд КАК Бренд,
    Закупки.Номенклатура.Код КАК Код,
    Закупки.Номенклатура КАК Номенклатура,
    Закупки.КоличествоЗакупаемогоТовара КАК КоличествоЗакупаемогоТовара,
    Продажи.КоличествоПроданногоТовара КАК КоличествоПроданногоТовара,
    Закупки.TOPGP КАК TOPGP
ИЗ
    Закупки КАК Закупки
        ЛЕВОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
        ПО Закупки.Номенклатура = Продажи.Номенклатура

УПОРЯДОЧИТЬ ПО
    НоменклатураБренд

TohaMonster Подменю пользователя
сообщение 08.05.20, 11:49
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 69
Спасибо сказали: 28 раз
Рейтинг: 28

Bon Jovi @ Сегодня, 12:22 * ,

Дык, загоните текст етого запроса в Конструктор и увидите ошибку smile.gif
Навскидку, не понятно вот ето:
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1

Подозреваю, что имелось в виду что-то вроде:
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1


Вот ето тоже, скорее всего, ругнется:
УПОРЯДОЧИТЬ ПО
    НоменклатураБренд

Спасибо сказали: Bon Jovi,

Bon Jovi Подменю пользователя
сообщение 08.05.20, 12:09
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(TohaMonster @ 08.05.20, 12:49) *
Дык, загоните текст етого запроса в Конструктор и увидите ошибку


Так я через конструктор и разрабатывал его smile.gif

Цитата(TohaMonster @ 08.05.20, 12:49) *
Вот ето тоже, скорее всего, ругнется:
УПОРЯДОЧИТЬ ПО
    НоменклатураБренд


Да, виноват. Эта не ошибка основного запроса, а кривовато вставил код сюда. А так
УПОРЯДОЧИТЬ ПО
    Бренд


Цитата(TohaMonster @ 08.05.20, 12:49) *
Подозреваю, что имелось в виду что-то вроде:
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1


При реализации задачи натыкался на такое решение, но почему то тогда мне оно показалось ошибочным. Хотя с ним данные немного другие.

Цитата(TohaMonster @ 08.05.20, 12:49) *
Навскидку, не понятно вот ето:
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1

выполнял это условие:
Цитата
если кол-во документов "поступлений товара" больше 1, за указанный период времени

TohaMonster Подменю пользователя
сообщение 08.05.20, 13:06
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 69
Спасибо сказали: 28 раз
Рейтинг: 28

Мне кажется, собака именно здесь:
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1


Я такую конструкцию, признаюсь, никогда не использовал. Даже более того: конструктор на 8.2 мне её не пропустил, специально проверил. На 8.3 всё нормально: век живи smile.gif

Понимаю так: Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг дает булевое значение. ЛОЖЬ понимается, как 0, ИСТИНА как 1. Так вот, если у Вас будет Поступление товаров и услуг, от которого пойдет более одного движения в Регистр.Закупки с TOPGP, то каждое из этих движений увеличит результат функции КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг). То есть, документ будет один, а движений несколько. А в задаче, если я правильно понял условие "и если кол-во документов "поступлений товара" больше 1", нужно считать именно документы Поступления, а не сами поступления. Поэтому, предполагаю, Ваш руководитель хочет "ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1"

Спасибо сказали: Bon Jovi,

Bon Jovi Подменю пользователя
сообщение 08.05.20, 14:15
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 2 раз
Рейтинг: 0

Спасибо всем большое. Действительно, решение оказалось простым, но я с этим столкнулся впервые. Нужно всего лишь
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
, заменить на
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1
, так как верно было описано выше (именно объяснили причину)
Цитата
если у Вас будет Поступление товаров и услуг, от которого пойдет более одного движения в Регистр.Закупки с TOPGP, то каждое из этих движений увеличит результат функции КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг). То есть, документ будет один, а движений несколько. А в задаче, если я правильно понял условие "и если кол-во документов "поступлений товара" больше 1", нужно считать именно документы Поступления, а не сами поступления.

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


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

 

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