|
Найти документы с одинаковой ТЧ но разными номерами в пределах одной даты | ☑ | ||
---|---|---|---|---|
0
Pchelinka
03.02.18
✎
13:53
|
Всем привет)) и Хэлп))
Задание такое, из-за того, что автоматически создаются Заявки в 1С8, возникают на один фактический заказ несколько документов. Пытаюсь проверить задвоенные доки в пределах одного дня, если совпадают табличные части (Номенклатура, Характеристика, Цена) и Склад. Есть ли способ слить в один показатель данные ТЧ, если они не числовые..? Пока действую способом СКД через запрос(только в итоге дважды выводит строку с доком в котором есть разница при правой и левой сверке) ((, может есть другой оптимальный способ выявления задвоения между доками: ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателя.Ссылка КАК ДОК2, ТЧЗ.ИдентификаторЗаявкиИнтернетМагазина, ТЧЗ.ДатаВходящегоДокументаЭлектронногоОбмена, ТЧЗ.НомерВходящегоДокументаЭлектронногоОбмена, ТЧЗ.СкладГруппа, ТЧЗ.Склад, ТЧЗ.Организация, ТЧЗ.Дата, ТЧЗ.Номенклатура, ТЧЗ.Цена, ТЧЗ.ХарактеристикаНоменклатуры, ТЧЗ.СерияНоменклатуры, НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) КАК Дата1, ТЧЗ.Ссылка КАК ДОК1, ТЧЗ.Количество, ЗаказПокупателя.Ссылка КАК СсылкаДок, ТЧЗ.Ссылка.СтатусЗаказаДляИнтернетМагазина КАК ДОК1СтатусЗаказаДляИнтернетМагазина, ТЧЗ.Ссылка.Ссылка КАК СсылкаСсылка, ЗаказПокупателя.СтатусЗаказаДляИнтернетМагазина КАК ДОК2СтатусЗаказаДляИнтернетМагазина ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателяТовары.Ссылка.Ссылка КАК Ссылка, ЗаказПокупателяТовары.Ссылка.ИдентификаторЗаявкиИнтернетМагазина КАК ИдентификаторЗаявкиИнтернетМагазина, ЗаказПокупателяТовары.Ссылка.ДатаВходящегоДокументаЭлектронногоОбмена КАК ДатаВходящегоДокументаЭлектронногоОбмена, ЗаказПокупателяТовары.Ссылка.НомерВходящегоДокументаЭлектронногоОбмена КАК НомерВходящегоДокументаЭлектронногоОбмена, ЗаказПокупателяТовары.Ссылка.СкладГруппа КАК СкладГруппа, ЗаказПокупателяТовары.Ссылка.Организация КАК Организация, НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ) КАК Дата, ЗаказПокупателяТовары.Ссылка.Склад КАК Склад, ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, ЗаказПокупателяТовары.Цена КАК Цена, ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЗаказПокупателяТовары.СерияНоменклатуры КАК СерияНоменклатуры, ЗаказПокупателяТовары.Количество КАК Количество ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ГДЕ ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) КАК ТЧЗ ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя ПО (ЗаказПокупателя.Дата = ТЧЗ.Дата) И (ЗаказПокупателя.Товары.Цена = ТЧЗ.Цена) И (ЗаказПокупателя.Товары.СерияНоменклатуры = ТЧЗ.СерияНоменклатуры) И (ЗаказПокупателя.Склад = ТЧЗ.Склад) И (ЗаказПокупателя.Товары.Номенклатура = ТЧЗ.Номенклатура) И (ЗаказПокупателя.Товары.ХарактеристикаНоменклатуры = ТЧЗ.ХарактеристикаНоменклатуры) И (ЗаказПокупателя.Ссылка <> ТЧЗ.Ссылка) ГДЕ ЗаказПокупателя.Дата МЕЖДУ &Дата1 И &Дата2 |
|||
1
H A D G E H O G s
03.02.18
✎
14:01
|
ппц
|
|||
2
Pchelinka
03.02.18
✎
14:05
|
))) еще будут мысли более содержательного плана?))
|
|||
3
H A D G E H O G s
03.02.18
✎
14:08
|
ВЫБРАТЬ
ЗаказКлиентаТовары.Номенклатура КАК Номенклатура, ЗаказКлиентаТовары.Цена КАК Цена, ЗаказКлиентаТовары.Ссылка.Склад КАК Склад ПОМЕСТИТЬ Дубли ИЗ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ГДЕ ЗаказКлиентаТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ЗаказКлиентаТовары.Номенклатура, ЗаказКлиентаТовары.Цена, ЗаказКлиентаТовары.Ссылка.Склад ИМЕЮЩИЕ СУММА(1) > 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Ссылка КАК Ссылка ИЗ Дубли КАК Дубли ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ПО (ЗаказКлиентаТовары.Ссылка.Склад = Дубли.Склад) И (ЗаказКлиентаТовары.Номенклатура = Дубли.Номенклатура) И (ЗаказКлиентаТовары.Цена = Дубли.Цена) СГРУППИРОВАТЬ ПО ЗаказКлиентаТовары.Ссылка |
|||
4
H A D G E H O G s
03.02.18
✎
14:09
|
Единственное, в выборку попадут заказы в дублями только в пределах своей ТЧ. Выцепить их из выборки - дело вашей чести.
|
|||
5
breezee
03.02.18
✎
14:10
|
(3) Подскажите, пожалуйста, зачем вот эта конструкция?
ИМЕЮЩИЕ СУММА(1) > 1 |
|||
6
breezee
03.02.18
✎
14:10
|
Сам оператор знаю, применение здесь непонятно
|
|||
7
Pchelinka
03.02.18
✎
14:12
|
H A D G E H O G s )) Спасибо, сейчас испытаю
|
|||
8
H A D G E H O G s
03.02.18
✎
14:14
|
(5) Сумма группируемого поля со значением 1 больше 1.
|
|||
9
H A D G E H O G s
03.02.18
✎
14:22
|
Пропустил "в пределах одной даты". Нужно добавить дату в условия.
|
|||
10
breezee
03.02.18
✎
14:36
|
(8) А поле то какое? Само поле не указано
ИМЕЮЩИЕ СУММА(Цена) > 1 вот так понятно, по сгруппированным полям выбираутся только те, где сгруппированная сумма больше 1, а что будет в вашем запросе в результате я не понял. Подскажите, пожалуйста |
|||
11
Pchelinka
03.02.18
✎
14:39
|
что-то результата никакого по данному запросу((
|
|||
12
H A D G E H O G s
03.02.18
✎
14:42
|
(11) Бывает
|
|||
13
Pchelinka
03.02.18
✎
14:45
|
ВЫБРАТЬ
ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, ЗаказПокупателяТовары.Цена КАК Цена, ЗаказПокупателяТовары.Ссылка.Склад КАК Склад, ЗаказПокупателяТовары.ХарактеристикаНоменклатуры, ЗаказПокупателяТовары.Ссылка.Ссылка КАК Док1 ПОМЕСТИТЬ Дубли ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ГДЕ ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ЗаказПокупателяТовары.Номенклатура, ЗаказПокупателяТовары.Цена, ЗаказПокупателяТовары.Ссылка.Склад, ЗаказПокупателяТовары.ХарактеристикаНоменклатуры, ЗаказПокупателяТовары.Ссылка.Ссылка ИМЕЮЩИЕ СУММА(1) > 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателяТовары.Ссылка КАК Ссылка, Дубли.Док1 ИЗ Дубли КАК Дубли ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО (ЗаказПокупателяТовары.Ссылка.Склад = Дубли.Склад) И (ЗаказПокупателяТовары.Цена = Дубли.Цена) И Дубли.Номенклатура = ЗаказПокупателяТовары.Номенклатура И Дубли.ХарактеристикаНоменклатуры = ЗаказПокупателяТовары.ХарактеристикаНоменклатуры И Дубли.Док1 <> ЗаказПокупателяТовары.Ссылка ГДЕ ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ЗаказПокупателяТовары.Ссылка, Дубли.Док1 |
|||
14
Pchelinka
03.02.18
✎
14:46
|
и ничегошеньки в отчет((
|
|||
15
H A D G E H O G s
03.02.18
✎
14:46
|
(10) Ну ты же можешь написать
Выбрать 1 как ПолеСуммы к примеру Вот, поле будет указано константой 1 |
|||
16
H A D G E H O G s
03.02.18
✎
14:47
|
(14) У вас ничего-нечки в голове.
|
|||
17
H A D G E H O G s
03.02.18
✎
14:48
|
Из первого запроса убрать
ЗаказПокупателяТовары.Ссылка.Ссылка КАК Док1 |
|||
18
Толич
03.02.18
✎
14:48
|
Всю табличную часть слепить в одну длиннющую строку без пробелов.
Например: Лопата 1деревянная1шт10018%181182Гвозди1кг5000... Затем каждую такую табличную часть впихни в ТЗ и добавь колонку с значением 1. Сверни ТЗ. Ну собственно все. Я бы так сделал |
|||
19
Pchelinka
03.02.18
✎
14:49
|
без этой строки тоже в отчет ничего не выводит
|
|||
20
Толич
03.02.18
✎
14:49
|
А. Вы хотите отчет на СКД? Тогда сорри.
|
|||
21
Pchelinka
03.02.18
✎
14:52
|
Всю табличную часть слепить в одну длиннющую строку без пробелов. Было бы хорошо, я такое слитие видела только по числовым значениями (Цена+Количество=Поиск) а тут текст бы слить... опыта маловато так колдовать, вот H A D G E H O G s постарался код написал а я и применить волшебство пока что-то не смогла результативно
|
|||
22
H A D G E H O G s
03.02.18
✎
14:52
|
(19) У меня - работает. Проблема на вашей стороне.
|
|||
23
Pchelinka
03.02.18
✎
15:00
|
у меня почему-то галки по Связи слетают по сверке позиции номенклатура...
|
|||
24
H A D G E H O G s
03.02.18
✎
15:07
|
(23) Вы мой текст запроса вбили в поле ввода текста запроса? Без изменений. Запустили? Он что-нибудь выдал?
|
|||
25
Pchelinka
03.02.18
✎
15:20
|
конечно вбила, только название дока поменяла и к дате привязку.. пока ничего не выводит((
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, ЗаказПокупателяТовары.Цена КАК Цена, ЗаказПокупателяТовары.Ссылка.Склад КАК Склад, ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры ПОМЕСТИТЬ Дубли ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ГДЕ ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ЗаказПокупателяТовары.Номенклатура, ЗаказПокупателяТовары.Цена, ЗаказПокупателяТовары.Ссылка.Склад, ЗаказПокупателяТовары.ХарактеристикаНоменклатуры ИМЕЮЩИЕ СУММА(1) > 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПокупателяТовары.Ссылка КАК Ссылка, Дубли.Номенклатура КАК Номенклатура1, Дубли.Цена, Дубли.Склад, Дубли.ХарактеристикаНоменклатуры, ЗаказПокупателяТовары.Количество, ЗаказПокупателяТовары.Ссылка.Дата ИЗ Дубли КАК Дубли ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО (ЗаказПокупателяТовары.Ссылка.Склад = Дубли.Склад) И (ЗаказПокупателяТовары.Цена = Дубли.Цена) И (ЗаказПокупателяТовары.Номенклатура.Ссылка = Дубли.Номенклатура.Ссылка) И (ЗаказПокупателяТовары.ХарактеристикаНоменклатуры = Дубли.ХарактеристикаНоменклатуры) ГДЕ ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО ЗаказПокупателяТовары.Ссылка, Дубли.Номенклатура, Дубли.Цена, Дубли.Склад, Дубли.ХарактеристикаНоменклатуры, ЗаказПокупателяТовары.Количество, ЗаказПокупателяТовары.Ссылка.Дата |
|||
26
H A D G E H O G s
03.02.18
✎
15:22
|
Значит дублей нет
|
|||
27
Pchelinka
03.02.18
✎
15:24
|
есть... я получала моим первым вариантом громоздким(( только с задвоенной строкой выходит
|
|||
28
Franchiser
гуру
03.02.18
✎
16:17
|
Надо было айдишники вести
|
|||
29
Sapiens_bru
03.02.18
✎
20:03
|
(0)Такого способа нет для показателей разных типов значений (номенклатура, склад)
Ваш вариант вполне годный. Можно сделать еще так : Складывать в один параметр значения одного типа. Например Номенклатура.Наименование+Склад.Наименование+"еще чето" как ИдентификаторСтроки, Или например: Можно перемножить сумму по колонке Цена с суммой по колонке количества и Количеством строк. Получим некоторое большое число, которое почти наверняка будет уникальным для документа. Еще можно: Результат СКД перехватить, получить в ТЗ в модуле формы. Обработать средствами встроенного языка со всякими доп параметрами типа "ключСтроки","количествоповторов" итд. Затем колонки ТЗ привести к начальному виду, закинуть обратно в ту же СКД и показать пользователю. |
|||
30
breezee
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) КАК Совпадений ПОМЕСТИТЬ ВсеГотово ИЗ Оригиналы КАК Оригиналы ВНУТРЕННЕЕ СОЕДИНЕНИЕ Оригиналы КАК ПотенциальныеДубли ПО Оригиналы.Ссылка <> ПотенциальныеДубли.Ссылка И Оригиналы.Номенклатура = ПотенциальныеДубли.Номенклатура И Оригиналы.ХарактеристикаНоменклатуры = ПотенциальныеДубли.ХарактеристикаНоменклатуры И Оригиналы.СерияНоменклатуры = ПотенциальныеДубли.СерияНоменклатуры СГРУППИРОВАТЬ ПО Оригиналы.Ссылка, ПотенциальныеДубли.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеГотово.Ссылка, ВсеГотово.Дубль ИЗ ВсеГотово КАК ВсеГотово ГДЕ ВсеГотово.СтрокВОригинале = ВсеГотово.СтрокВДубле И ВсеГотово.СтрокВДубле = ВсеГотово.Совпадений |
|||
34
Ildarovich
04.02.18
✎
01:42
|
Может помочь пример 2 из публикации http://catalog.mista.ru/public/336783/ . Там только еще будет нужно характеристику, цену и склад в хэш замешать.
|
|||
35
Pchelinka
05.02.18
✎
12:03
|
Спасибо, Бертыш за науку и помощь))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |