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

Хранилище

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

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



> Реализация - Возврат          
Bon Jovi Подменю пользователя
сообщение 26.05.20, 9:28
Сообщение #1

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

Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
Добрый день. Подскажите пожалуйста, как можно реализация следующий функционал (саму логику): Мне нужно запросом получить количество документов реализации и возврата по позиции так, чтобы они шли друг за другом. То есть идёт документ РЕАЛИЗАЦИИ, за ним документ ВОЗВРАТА. Если же идёт документ РЕАЛИЗАЦИИ, за ним опять документ РЕАЛИЗАЦИИ, то это ошибочная ситуация.

sava1 Подменю пользователя
сообщение 26.05.20, 10:03
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2295
Из: Проскуров
Спасибо сказали: 547 раз
Рейтинг: 534.4

добавть дополн. поле ДокументРеализации (РТиУ) - в Возвратах должна быть ссылка на документ реализации + флаг (для реализации 1, для возврата -2).
Упорядочить по ДокументРеализации,Флаг

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

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

sava1 @ 26.05.20, 11:03 * ,
Нужно определить количество последних реализаций (например & = 3). Затем узнать были ли возвраты за дату (& = дата) и в таком же количестве как и реализации (& = 3). То есть, чтобы шли реализация - возврат, реализация - возврат, реализация - возврат. И не было между ними просто реализации без возврата.

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2295
Из: Проскуров
Спасибо сказали: 547 раз
Рейтинг: 534.4

выбираем из регистра продажи все документы, где регистратор Возврат... В рег. есть измерение ДокументПродажи.
а дальше, как и писАл - для продажи фл=1, для Возврата =2.
Упорядочиваем по ДокументуПродажи + фл.

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

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

sava1 @ Сегодня, 16:07 * ,
Я дико извиняюсь, в тупик зашёл. Можете кодом помочь? И что значит флаг?

Vofka Подменю пользователя
сообщение 28.05.20, 16:19
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13291
Из: Киев
Спасибо сказали: 4079 раз
Рейтинг: 3222.1

Bon Jovi, а что вы подразумеваете под "чтобы они шли друг за другом"?

Bon Jovi Подменю пользователя
сообщение 04.06.20, 11:21
Сообщение #7

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

Vofka @ 28.05.20, 17:19 * ,
В общем нужно было мне получить три последние документа реализации, у которых был возврат. За возврат расписывать не буду, а вот как получал три последние документа реализации по номенклатуре напишу:
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ НоменклатураВозвратов
ИЗ
    РегистрНакопления.Продажи КАК Продажи
ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) = &ДатаВозврата

СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Продажи.Период КАК ДатаРеализации,
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Регистратор КАК Реализация
ПОМЕСТИТЬ РеализацииНоменклатуыВозвратов
ИЗ
    НоменклатураВозвратов КАК НоменклатураВозвратов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
        ПО НоменклатураВозвратов.Номенклатура = Продажи.Номенклатура
ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) <= &ДатаВозврата

СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.Период,
    Продажи.Регистратор
;

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

СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВтороеСостояние
ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
        ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
        ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
            И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
ГДЕ
    ПервоеСостояние.Номенклатура ЕСТЬ NULL

СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ТретьеСостояние
ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
        ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
        ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
            И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
        ЛЕВОЕ СОЕДИНЕНИЕ ВтороеСостояние КАК ВтороеСостояние
        ПО РеализацииНоменклатуыВозвратов.Номенклатура = ВтороеСостояние.Номенклатура
            И РеализацииНоменклатуыВозвратов.ДатаРеализации = ВтороеСостояние.ДатаРеализации
ГДЕ
    ВтороеСостояние.Номенклатура ЕСТЬ NULL
    И ПервоеСостояние.Номенклатура ЕСТЬ NULL

СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПервоеСостояние.Номенклатура КАК Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация КАК Реализация
ИЗ
    ПервоеСостояние КАК ПервоеСостояние
        ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
        ПО ПервоеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
            И ПервоеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВтороеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
ИЗ
    ВтороеСостояние КАК ВтороеСостояние
        ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
        ПО ВтороеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
            И ВтороеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТретьеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
ИЗ
    ТретьеСостояние КАК ТретьеСостояние
        ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
        ПО ТретьеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
            И ТретьеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

УПОРЯДОЧИТЬ ПО
    Реализация УБЫВ,
    Номенклатура
ИТОГИ
    КОЛИЧЕСТВО(Реализация)
ПО
    Номенклатура
АВТОУПОРЯДОЧИВАНИЕ

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


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

 

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