Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Найти документы с одинаковой ТЧ но разными номерами в пределах одной даты

Найти документы с одинаковой ТЧ но разными номерами в пределах одной даты
Я
   Pchelinka
 
03.02.18 - 13:53
Всем привет)) и Хэлп))
Задание такое, из-за того, что автоматически создаются Заявки в 1С8, возникают на один фактический заказ несколько документов. Пытаюсь проверить задвоенные доки в пределах одного дня, если совпадают табличные части (Номенклатура, Характеристика, Цена) и Склад. Есть ли способ слить в один показатель данные ТЧ, если они не числовые..?
Пока действую способом СКД через запрос(только в итоге дважды выводит строку с доком в котором есть разница при правой  и левой сверке) ((, может есть другой оптимальный способ выявления задвоения между доками:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказПокупателя.Ссылка КАК ДОК2,
    ТЧЗ.ИдентификаторЗаявкиИнтернетМагазина,
    ТЧЗ.ДатаВходящегоДокументаЭлектронногоОбмена,
    ТЧЗ.НомерВходящегоДокументаЭлектронногоОбмена,
    ТЧЗ.СкладГруппа,
    ТЧЗ.Склад,
    ТЧЗ.Организация,
    ТЧЗ.Дата,
    ТЧЗ.Номенклатура,
    ТЧЗ.Цена,
    ТЧЗ.ХарактеристикаНоменклатуры,
    ТЧЗ.СерияНоменклатуры,
    НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) КАК Дата1,
    ТЧЗ.Ссылка КАК ДОК1,
    ТЧЗ.Количество,
    ЗаказПокупателя.Ссылка КАК СсылкаДок,
    ТЧЗ.Ссылка.СтатусЗаказаДляИнтернетМагазина КАК ДОК1СтатусЗаказаДляИнтернетМагазина,
    ТЧЗ.Ссылка.Ссылка КАК СсылкаСсылка,
    ЗаказПокупателя.СтатусЗаказаДляИнтернетМагазина КАК ДОК2СтатусЗаказаДляИнтернетМагазина
ИЗ
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        ЗаказПокупателяТовары.Ссылка.Ссылка КАК Ссылка,
        ЗаказПокупателяТовары.Ссылка.ИдентификаторЗаявкиИнтернетМагазина КАК ИдентификаторЗаявкиИнтернетМагазина,
        ЗаказПокупателяТовары.Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена КАК ДатаВходящегоДокументаЭлектронногоОбмена,
        ЗаказПокупателяТовары.Ссылка.НомерВходящегоДокументаЭлектронногоОбмена КАК НомерВходящегоДокументаЭлектронногоОбмена,
        ЗаказПокупателяТовары.Ссылка.СкладГруппа КАК СкладГруппа,
        ЗаказПокупателяТовары.Ссылка.Организация КАК Организация,
        НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ) КАК Дата,
        ЗаказПокупателяТовары.Ссылка.Склад КАК Склад,
        ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
        ЗаказПокупателяТовары.Цена КАК Цена,
        ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ЗаказПокупателяТовары.СерияНоменклатуры КАК СерияНоменклатуры,
        ЗаказПокупателяТовары.Количество КАК Количество
    ИЗ
        Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    ГДЕ
        ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ТЧЗ
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ПО (ЗаказПокупателя.Дата = ТЧЗ.Дата)
            И (ЗаказПокупателя.Товары.Цена = ТЧЗ.Цена)
            И (ЗаказПокупателя.Товары.СерияНоменклатуры = ТЧЗ.СерияНоменклатуры)
            И (ЗаказПокупателя.Склад = ТЧЗ.Склад)
            И (ЗаказПокупателя.Товары.Номенклатура = ТЧЗ.Номенклатура)
            И (ЗаказПокупателя.Товары.ХарактеристикаНоменклатуры = ТЧЗ.ХарактеристикаНоменклатуры)
            И (ЗаказПокупателя.Ссылка <> ТЧЗ.Ссылка)
ГДЕ
    ЗаказПокупателя.Дата МЕЖДУ &Дата1 И &Дата2
 
 
   H A D G E H O G s
 
1 - 03.02.18 - 14:01
ппц
   Pchelinka
 
2 - 03.02.18 - 14:05
))) еще будут мысли более содержательного плана?))
   H A D G E H O G s
 
3 - 03.02.18 - 14:08
ВЫБРАТЬ
    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
    ЗаказКлиентаТовары.Цена КАК Цена,
    ЗаказКлиентаТовары.Ссылка.Склад КАК Склад
ПОМЕСТИТЬ Дубли
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
    ЗаказКлиентаТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.Цена,
    ЗаказКлиентаТовары.Ссылка.Склад

ИМЕЮЩИЕ
    СУММА(1) > 1
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказКлиентаТовары.Ссылка КАК Ссылка
ИЗ
    Дубли КАК Дубли
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        ПО (ЗаказКлиентаТовары.Ссылка.Склад = Дубли.Склад)
            И (ЗаказКлиентаТовары.Номенклатура = Дубли.Номенклатура)
            И (ЗаказКлиентаТовары.Цена = Дубли.Цена)

СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Ссылка
   H A D G E H O G s
 
4 - 03.02.18 - 14:09
Единственное, в выборку попадут заказы в дублями только в пределах своей ТЧ. Выцепить их из выборки - дело вашей чести.
   breezee
 
5 - 03.02.18 - 14:10
(3) Подскажите, пожалуйста, зачем вот эта конструкция?
ИМЕЮЩИЕ
    СУММА(1) > 1
   breezee
 
6 - 03.02.18 - 14:10
Сам оператор знаю, применение здесь непонятно
   Pchelinka
 
7 - 03.02.18 - 14:12
H A D G E H O G s )) Спасибо, сейчас испытаю
   H A D G E H O G s
 
8 - 03.02.18 - 14:14
(5) Сумма группируемого поля со значением 1 больше 1.
   H A D G E H O G s
 
9 - 03.02.18 - 14:22
Пропустил "в пределах одной даты". Нужно добавить дату в условия.
   breezee
 
10 - 03.02.18 - 14:36
(8) А поле то какое? Само поле не указано
ИМЕЮЩИЕ
    СУММА(Цена) > 1
вот так понятно, по сгруппированным полям выбираутся только те, где сгруппированная сумма больше 1, а что будет в вашем запросе в результате я не понял. Подскажите, пожалуйста
 
 Рекламное место пустует
   Pchelinka
 
11 - 03.02.18 - 14:39
что-то результата никакого по данному запросу((
   H A D G E H O G s
 
12 - 03.02.18 - 14:42
(11) Бывает
   Pchelinka
 
13 - 03.02.18 - 14:45
ВЫБРАТЬ
    ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
    ЗаказПокупателяТовары.Цена КАК Цена,
    ЗаказПокупателяТовары.Ссылка.Склад КАК Склад,
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
    ЗаказПокупателяТовары.Ссылка.Ссылка КАК Док1
ПОМЕСТИТЬ Дубли
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
    ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
    ЗаказПокупателяТовары.Номенклатура,
    ЗаказПокупателяТовары.Цена,
    ЗаказПокупателяТовары.Ссылка.Склад,
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
    ЗаказПокупателяТовары.Ссылка.Ссылка

ИМЕЮЩИЕ
    СУММА(1) > 1
;

////////////////////////////////////////////////////////////////////////////////

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

СГРУППИРОВАТЬ ПО
    ЗаказПокупателяТовары.Ссылка,
    Дубли.Док1
   Pchelinka
 
14 - 03.02.18 - 14:46
и ничегошеньки в отчет((
   H A D G E H O G s
 
15 - 03.02.18 - 14:46
(10) Ну ты же можешь написать

Выбрать
1 как ПолеСуммы

к примеру
Вот, поле будет указано константой 1
   H A D G E H O G s
 
16 - 03.02.18 - 14:47
(14) У вас ничего-нечки в голове.
   H A D G E H O G s
 
17 - 03.02.18 - 14:48
Из первого запроса убрать
ЗаказПокупателяТовары.Ссылка.Ссылка КАК Док1
   Толич
 
18 - 03.02.18 - 14:48
Всю табличную часть слепить в одну длиннющую строку без пробелов.
Например:
Лопата 1деревянная1шт10018%181182Гвозди1кг5000...
Затем каждую такую табличную часть впихни в ТЗ и добавь колонку с значением 1.
Сверни ТЗ.

Ну собственно все.

Я бы так сделал
   Pchelinka
 
19 - 03.02.18 - 14:49
без этой строки тоже в отчет ничего не выводит
   Толич
 
20 - 03.02.18 - 14:49
А. Вы хотите отчет на СКД? Тогда сорри.
   Pchelinka
 
21 - 03.02.18 - 14:52
Всю табличную часть слепить в одну длиннющую строку без пробелов.  Было бы хорошо, я такое слитие видела только по числовым значениями (Цена+Количество=Поиск) а тут текст бы слить... опыта маловато так колдовать, вот   H A D G E H O G s постарался код написал а я и применить волшебство пока что-то не смогла результативно
   H A D G E H O G s
 
22 - 03.02.18 - 14:52
(19) У меня - работает. Проблема на вашей стороне.
   Pchelinka
 
23 - 03.02.18 - 15:00
у меня почему-то галки по Связи слетают по сверке позиции номенклатура...
   H A D G E H O G s
 
24 - 03.02.18 - 15:07
(23) Вы мой текст запроса вбили в поле ввода текста запроса? Без изменений. Запустили? Он что-нибудь выдал?
   Pchelinka
 
25 - 03.02.18 - 15:20
конечно вбила, только название дока поменяла и к дате привязку.. пока ничего не выводит((
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
    ЗаказПокупателяТовары.Цена КАК Цена,
    ЗаказПокупателяТовары.Ссылка.Склад КАК Склад,
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
ПОМЕСТИТЬ Дубли
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
    ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
    ЗаказПокупателяТовары.Номенклатура,
    ЗаказПокупателяТовары.Цена,
    ЗаказПокупателяТовары.Ссылка.Склад,
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры

ИМЕЮЩИЕ
    СУММА(1) > 1
;

////////////////////////////////////////////////////////////////////////////////

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

СГРУППИРОВАТЬ ПО
    ЗаказПокупателяТовары.Ссылка,
    Дубли.Номенклатура,
    Дубли.Цена,
    Дубли.Склад,
    Дубли.ХарактеристикаНоменклатуры,
    ЗаказПокупателяТовары.Количество,
    ЗаказПокупателяТовары.Ссылка.Дата
   H A D G E H O G s
 
26 - 03.02.18 - 15:22
Значит дублей нет
   Pchelinka
 
27 - 03.02.18 - 15:24
есть... я получала моим первым вариантом громоздким(( только с задвоенной строкой выходит
   Franchiser
 
28 - 03.02.18 - 16:17
Надо было айдишники вести
   Sapiens_bru
 
29 - 03.02.18 - 20:03
(0)Такого способа нет для показателей разных типов значений (номенклатура, склад)
Ваш вариант вполне годный.

Можно сделать еще так :
Складывать в один параметр значения одного типа. Например Номенклатура.Наименование+Склад.Наименование+"еще чето" как ИдентификаторСтроки,

Или например:
Можно перемножить сумму по колонке Цена с суммой по колонке количества и Количеством строк. Получим некоторое большое число, которое почти наверняка будет уникальным для документа.

Еще можно:
Результат СКД перехватить, получить в ТЗ в модуле формы. Обработать средствами встроенного языка со всякими доп параметрами типа "ключСтроки","количествоповторов" итд. Затем колонки ТЗ привести к начальному виду, закинуть обратно в ту же СКД и показать пользователю.
   breezee
 
30 - 03.02.18 - 20:35
(0) 1)Получить данные по всем ТЧ за день
    2)Из этих ТЧ связаться по всем полям в таб части с самими собой и ссылки не равны между собой
    3)Из данных в 1 сгруппировать по документу, количество строк по максимуму
    4)Связать таблицу из 3 с таблицей из 2 по номерам строк. Получим документы, в которых совпадает последняя строка
    5)То же самое для первой строки
    Отсеили документы, где совпадает 1 и последняя строка уже лучше.
    Дальше придумать не могу. Надо как-то понять, что совпадают вообще все строки в документе. Если мы будем получать внутренним по номерам строк - выведутся все документы, хотя бы с 1 совпадением, а вот как сделать, чтобы контроль сразу по всем строкам не ясно
   Бертыш
 
31 - 03.02.18 - 21:04
Элементарная задача. Во всяком случае наверное элементарная если её реализовывать на небольших интервалах с небольшим числом документов.
Обращаемся к ТЧ посчитывая число строк в рамках одного документа каждая строка 1. Далее отстраиваем связь всех совпадающих строк со всеми совпадающими. Каждое совпадение дает единичку по строке в разрезе документа с которым установили связь. Для дублей выполняется условие
Количество строк в документе 1 равно количеству строк в документе 2 и равно количеству совпадений между этими документами. В принципе могу и сам запрос написать
   Бертыш
 
32 - 03.02.18 - 21:04
Хватило бы памяти, ресурсов серверу
   Бертыш
 
33 - 03.02.18 - 21:30
ВЫБРАТЬ
    ЗаказПокупателяТовары.Ссылка,
    ЗаказПокупателяТовары.Количество,
    ЗаказПокупателяТовары.Номенклатура,
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
    ЗаказПокупателяТовары.СерияНоменклатуры,
    1 КАК СтрокВОригинале
ПОМЕСТИТЬ Оригиналы
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
    НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)
;

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

СГРУППИРОВАТЬ ПО
    Оригиналы.Ссылка,
    ПотенциальныеДубли.Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВсеГотово.Ссылка,
    ВсеГотово.Дубль
ИЗ
    ВсеГотово КАК ВсеГотово
ГДЕ
    ВсеГотово.СтрокВОригинале = ВсеГотово.СтрокВДубле
            И ВсеГотово.СтрокВДубле = ВсеГотово.Совпадений
 
 
   Ildarovich
 
34 - 04.02.18 - 01:42
Может помочь пример 2 из публикации http://catalog.mista.ru/public/336783/ . Там только еще будет нужно характеристику, цену и склад в хэш замешать.
   Pchelinka
 
35 - 05.02.18 - 12:03
Спасибо, Бертыш за науку и помощь))


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует