:: Вопросы по 1С
Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
есть задание:

Реализовать перед записью проверку, есть ли в документе поступление товаров строки с одинаковой номенклатурой и ценой, если есть - объединить эти строки с суммированием количества и цены

Объект - Документы.ПоступлениеТовара
Табличная часть - Товары, реквизиты - Номенклатура, Количество, Цена, Сумма

Никак не получается сделать запросом:

Запрос1=Новый Запрос;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос1.МенеджерВременныхТаблиц = МенеджерВТ;

ТЗ = Объект.Товары.Выгрузить();
Запрос1.УстановитьПараметр("ТЗ",ТЗ);

Запрос1.Текст="Выбрать Номенклатура, Цена
| Поместить ВременныеТовары
|из &ТЗ как ВременныеТовары";

Запрос2=Новый Запрос;

Запрос2.Текст="Выбрать ВременныеТовары.Номенклатура, ВременныеТовары.Цена из ВременныеТовары как Товары
|Левое соединение объект.Товары как Дубли по Товары.Номенклатура=Дубли.Номенклатура и Товары.Цена = Дубли.Цена
|Сгруппировать по Товары.Номенклатура, Товары.Цена
|Имеющие Количество(Дубли.Номенклатура)>1";

Ругается на Запрос2


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Вопрос - а для нафига объединение, если в типовых при печати и так все объединяется?
Мне тут поставили задачу как раз обратную, что бы при печати все оставалось как есть в документе, ну так заказчику надо, пришлось попотеть
У 1С-ников - как всегда, платят за количество строк кода, а не за эффективность.
Если это самописка - то проще использовать метод .Свернуть() чем пытаться набить себе шишек, особенно там, где это не надо. ;)


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Вадик, привет!
Учиться я пошёл... Это задание по теме Программируемые формы
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Ну тогда тренируйся, на то оно и задание.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Вот ты, злыдень!
Тяжко на старую жопу кренделей искать...
Помочь-то некому, и спросить не у кого...
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Как сам-то?
У меня уже две внучки!
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
И, кстати, фото старое, ибо уже больше трёх лет не курю!
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А чего злыдень-то? Мне тебя SQL запросам учить? Если дергает русский - пиши как привык - 1С- пережует. Я так и начинал, потом привык уже, но позже.
Тем более что конструкцию "having" штатный построитель запросов как-то хреново понимает.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Во-первых, я только месяц учусь в универе...
Во-вторых, я ещё перестроиться на таблицы значений, структуры и т.п. перестроиться не могу: в башке фокс висит!
Ну, и наконец, я же не прошу сделать задание за меня! Просто натолкни, чего я не правильно делаю...
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Собрать все из табличной части "Товары", с группировкой по всему, что не "Количество", а его в SUM.
Ну или задание покажи, а то в задании могут быть свои заковырки.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Вадим (извини, не знаю, как по отчеству) я задание в первом посте описал:

Реализовать перед записью проверку, есть ли в документе поступление товаров строки с одинаковой номенклатурой и ценой, если есть - объединить эти строки с суммированием количества и цены

Объект - Документы.ПоступлениеТовара
Табличная часть - Товары, реквизиты - Номенклатура, Количество, Цена, Сумма

Это всё!
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
тут всё обучение - самообразование... а все уроки в инете - платные...
Ratings: 0 negative/0 positive
Re: Объединение дублей
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Как по мне, то нафига проверять есть строки с одинаковой номенклатурой и ценой. Проще сразу суммировать с группировкой по номенклатуре и цене. И зачем суммирование по цене? Может по сумме?


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.




Исправлено 1 раз(а). Последнее : AleksM, 02.10.21 20:46
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А ругается как на Запрос2?
В принципе, почти правильно, только нафиг не нада "ВременнаяТаблица", так как и так можешь напрямую обращаться в "Товары".
И потом вроде как в having используется только алиас поля, а не полное его имя.
И самое главное, в Запрос1, ты прикрутил Менеджер временных таблиц, что правильно, если ты создаешь временные таблицы, но в запрос2 у тебя этого же менеджера нету, соотвественно запрос2 не видит твоей временной таблицы.
Ну запиши типа так.
Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
Должно прокатить.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.




Исправлено 1 раз(а). Последнее : piva, 02.10.21 20:54
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Это учебное задание
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
[attachment 35827 ]теперь по-другому ругается
Ratings: 0 negative/0 positive
Re: Объединение дублей
ssa

Сообщений: 13070
Откуда: Москва
Дата регистрации: 23.03.2005
ama68
Реализовать перед записью проверку, есть ли в документе поступление товаров строки с одинаковой номенклатурой и ценой, если есть - объединить эти строки с суммированием количества и цены
Объект - Документы.ПоступлениеТовара
Табличная часть - Товары, реквизиты - Номенклатура, Количество, Цена, Сумма

Это всё!
И где тут требование использовать только запросы?
Как уже было сказано, в 1С есть метод Свернуть(), который как раз и делает то, что написано в задании.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Объединение дублей
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Сделал так:
Процедура ОбъединениеСтрок ();
ТЗ = Объект.Товары.Выгрузить();
ТЗ.Свернуть("Номенклатура, Цена","Количество");
ТЗ.Колонки.Добавить("Сумма");
Для Каждого Строка Из ТЗ Цикл ;
Строка.Сумма = Строка.Количество * Строка.Цена;
КонецЦикла;
Объект.Товары.Загрузить(ТЗ);
КонецПроцедуры
Ratings: 0 negative/0 positive
Re: Объединение дублей
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Сам же справился
Сумму можно было и в "Товар"ах поставить, без добавления колонки, но это не критично, в данном случае.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика