Имя: Пароль:
1C
 
РеализацияТоваровУслуг дублирует записи
🠗Ø (Волшебник 09.08.2024 12:44)
,
0 alukardua
 
naïve
08.08.24
16:31
Есть запрос
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
				   |	СУММА(ВЫБОР
				   |			КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
				   |				ТОГДА РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС
				   |			ИНАЧЕ РеализацияТоваровУслугТовары.Сумма
				   |		КОНЕЦ) КАК Сумма,
				   |	СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
				   |	СУММА(ВЫБОР
				   |			КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
				   |				ТОГДА РеализацияТоваровУслугТовары.Сумма
				   |			ИНАЧЕ РеализацияТоваровУслугТовары.Сумма - РеализацияТоваровУслугТовары.СуммаНДС
				   |		КОНЕЦ) КАК БезНДС,
				   |	РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
				   |ПОМЕСТИТЬ СуммаДокумента
				   |ИЗ
				   |	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
				   |ГДЕ
				   |	РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
				   |	И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
				   |	И РеализацияТоваровУслугТовары.Ссылка.Проведен
				   |
				   |СГРУППИРОВАТЬ ПО
				   |	РеализацияТоваровУслугТовары.Ссылка
				   |
				   |ОБЪЕДИНИТЬ ВСЕ
				   |
				   |ВЫБРАТЬ РАЗЛИЧНЫЕ
				   |	СУММА(ВЫБОР
				   |			КОГДА НЕ РеализацияТоваровУслугУслуги.Ссылка.СуммаВключаетНДС
				   |				ТОГДА РеализацияТоваровУслугУслуги.Сумма + РеализацияТоваровУслугУслуги.СуммаНДС
				   |			ИНАЧЕ РеализацияТоваровУслугУслуги.Сумма
				   |		КОНЕЦ),
				   |	СУММА(РеализацияТоваровУслугУслуги.СуммаНДС),
				   |	СУММА(ВЫБОР
				   |			КОГДА НЕ РеализацияТоваровУслугУслуги.Ссылка.СуммаВключаетНДС
				   |				ТОГДА РеализацияТоваровУслугУслуги.Сумма
				   |			ИНАЧЕ РеализацияТоваровУслугУслуги.Сумма - РеализацияТоваровУслугУслуги.СуммаНДС
				   |		КОНЕЦ),
				   |	РеализацияТоваровУслугУслуги.Ссылка
				   |ИЗ
				   |	Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
				   |ГДЕ
				   |	РеализацияТоваровУслугУслуги.Ссылка.Организация = &Организация
				   |	И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
				   |	И РеализацияТоваровУслугУслуги.Ссылка.Проведен
				   |
				   |СГРУППИРОВАТЬ ПО
				   |	РеализацияТоваровУслугУслуги.Ссылка
				   |;
				   |
				   |////////////////////////////////////////////////////////////////////////////////
				   |ВЫБРАТЬ
				   |	РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
				   |	РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
				   |	СуммаДокумента.Сумма КАК Сумма,
				   |	СуммаДокумента.СуммаНДС КАК СуммаНДС,
				   |	РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
				   |	РеализацияТоваровУслугТовары.Ссылка.Ответственный КАК Ответственный,
				   |	РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
				   |	РеализацияТоваровУслугТовары.Количество КАК Количество,
				   |	СуммаДокумента.БезНДС КАК БезНДС,
				   |	РеализацияТоваровУслугТовары.Ссылка.Комментарий КАК Комментарий,
				   |	РеализацияТоваровУслугТовары.Номенклатура.Родитель КАК Родитель
				   |ИЗ
				   |	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
				   |		ЛЕВОЕ СОЕДИНЕНИЕ СуммаДокумента КАК СуммаДокумента
				   |		ПО РеализацияТоваровУслугТовары.Ссылка = СуммаДокумента.Ссылка
				   |ГДЕ
				   |	РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
				   |	И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
				   |	И РеализацияТоваровУслугТовары.Ссылка.Проведен
				   |
				   |ОБЪЕДИНИТЬ ВСЕ
				   |
				   |ВЫБРАТЬ
				   |	РеализацияТоваровУслугУслуги.Ссылка.Номер,
				   |	РеализацияТоваровУслугУслуги.Ссылка.Дата,
				   |	СуммаДокумента.Сумма,
				   |	СуммаДокумента.СуммаНДС,
				   |	РеализацияТоваровУслугУслуги.Ссылка.Контрагент,
				   |	РеализацияТоваровУслугУслуги.Ссылка.Ответственный,
				   |	РеализацияТоваровУслугУслуги.Номенклатура,
				   |	РеализацияТоваровУслугУслуги.Количество,
				   |	СуммаДокумента.БезНДС,
				   |	РеализацияТоваровУслугУслуги.Ссылка.Комментарий,
				   |	РеализацияТоваровУслугУслуги.Номенклатура.Родитель
				   |ИЗ
				   |	Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
				   |		ЛЕВОЕ СОЕДИНЕНИЕ СуммаДокумента КАК СуммаДокумента
				   |		ПО РеализацияТоваровУслугУслуги.Ссылка = СуммаДокумента.Ссылка
				   |ГДЕ
				   |	РеализацияТоваровУслугУслуги.Ссылка.Организация = &Организация
				   |	И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
				   |	И РеализацияТоваровУслугУслуги.Ссылка.Проведен
				   |
				   |УПОРЯДОЧИТЬ ПО
				   |	Дата,
				   |	Номер";

Когда идут документы только товары или услуги, все нормально отрабатывает, а вот если в документе сразу товары и услуги, то начинается чудачество, сумма выходит только из товаров, а услуги игнорирует и в таблице начинает задваивать.
1 Волшебник
 
08.08.24
16:30
СуммаДокумента - плохое имя временной таблицы
2 alukardua
 
naïve
08.08.24
16:33
Ну какое есть, он мне в наследство достался
3 Волшебник
 
08.08.24
16:37
(2) Переименуйте
4 alukardua
 
naïve
08.08.24
16:40
(3) Переименовал, но основную проблему не решило
5 saaken
 
08.08.24
16:48
и какое применение этого запроса
6 Мультук
 
гуру
08.08.24
16:49
(0)

ПОМЕСТИТЬ СуммаДокумента

1) Сначала нужно объединить, то что получилось -- группировать, а не наоборот

2) Нахрен в этом запросе "РАЗЛИЧНЫЕ", если есть
СГРУППИРОВАТЬ ПО

3) Ну и вообще, ко всей это писанине есть только один совет: учите SQL
7 alukardua
 
naïve
08.08.24
16:54
(5) Он выводит в таблицу все реализации за определенную дату
8 saaken
 
08.08.24
16:57
а зачем общую сумму показывать по каждой номенклатуре
9 Волшебник
 
08.08.24
16:57
(4) Странно... Должно было помочь. Покажите новый запрос
10 alukardua
 
naïve
08.08.24
16:58
(6) Он в принципе правильно работает пока в документе либо товар, либо услуга, а вот когда и то и то, оставляет сумму из таблицы товары, а из таблицы услуги только наименования и самое главное начинает по 2 раза выводить наименования из обеих таблиц, у меня такое ощущение что он просто 2 раза один и тот же документ прокручивает
11 alukardua
 
naïve
08.08.24
16:59
(9) Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    СУММА(ВЫБОР
                   |            КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                   |                ТОГДА РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС
                   |            ИНАЧЕ РеализацияТоваровУслугТовары.Сумма
                   |        КОНЕЦ) КАК Сумма,
                   |    СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
                   |    СУММА(ВЫБОР
                   |            КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                   |                ТОГДА РеализацияТоваровУслугТовары.Сумма
                   |            ИНАЧЕ РеализацияТоваровУслугТовары.Сумма - РеализацияТоваровУслугТовары.СуммаНДС
                   |        КОНЕЦ) КАК БезНДС,
                   |    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
                   |ПОМЕСТИТЬ СуммаДок
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                   |ГДЕ
                   |    РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
                   |    И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    И РеализацияТоваровУслугТовары.Ссылка.Проведен
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    РеализацияТоваровУслугТовары.Ссылка
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    СУММА(ВЫБОР
                   |            КОГДА НЕ РеализацияТоваровУслугУслуги.Ссылка.СуммаВключаетНДС
                   |                ТОГДА РеализацияТоваровУслугУслуги.Сумма + РеализацияТоваровУслугУслуги.СуммаНДС
                   |            ИНАЧЕ РеализацияТоваровУслугУслуги.Сумма
                   |        КОНЕЦ),
                   |    СУММА(РеализацияТоваровУслугУслуги.СуммаНДС),
                   |    СУММА(ВЫБОР
                   |            КОГДА НЕ РеализацияТоваровУслугУслуги.Ссылка.СуммаВключаетНДС
                   |                ТОГДА РеализацияТоваровУслугУслуги.Сумма
                   |            ИНАЧЕ РеализацияТоваровУслугУслуги.Сумма - РеализацияТоваровУслугУслуги.СуммаНДС
                   |        КОНЕЦ),
                   |    РеализацияТоваровУслугУслуги.Ссылка
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
                   |ГДЕ
                   |    РеализацияТоваровУслугУслуги.Ссылка.Организация = &Организация
                   |    И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    И РеализацияТоваровУслугУслуги.Ссылка.Проведен
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    РеализацияТоваровУслугУслуги.Ссылка
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
                   |    РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
                   |    СуммаДок.Сумма КАК Сумма,
                   |    СуммаДок.СуммаНДС КАК СуммаНДС,
                   |    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
                   |    РеализацияТоваровУслугТовары.Ссылка.Ответственный КАК Ответственный,
                   |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
                   |    РеализацияТоваровУслугТовары.Количество КАК Количество,
                   |    СуммаДок.БезНДС КАК БезНДС,
                   |    РеализацияТоваровУслугТовары.Ссылка.Комментарий КАК Комментарий,
                   |    РеализацияТоваровУслугТовары.Номенклатура.Родитель КАК Родитель
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                   |        ЛЕВОЕ СОЕДИНЕНИЕ СуммаДок КАК СуммаДок
                   |        ПО РеализацияТоваровУслугТовары.Ссылка = СуммаДок.Ссылка
                   |ГДЕ
                   |    РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
                   |    И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    И РеализацияТоваровУслугТовары.Ссылка.Проведен
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    РеализацияТоваровУслугУслуги.Ссылка.Номер,
                   |    РеализацияТоваровУслугУслуги.Ссылка.Дата,
                   |    СуммаДок.Сумма,
                   |    СуммаДок.СуммаНДС,
                   |    РеализацияТоваровУслугУслуги.Ссылка.Контрагент,
                   |    РеализацияТоваровУслугУслуги.Ссылка.Ответственный,
                   |    РеализацияТоваровУслугУслуги.Номенклатура,
                   |    РеализацияТоваровУслугУслуги.Количество,
                   |    СуммаДок.БезНДС,
                   |    РеализацияТоваровУслугУслуги.Ссылка.Комментарий,
                   |    РеализацияТоваровУслугУслуги.Номенклатура.Родитель
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
                   |        ЛЕВОЕ СОЕДИНЕНИЕ СуммаДок КАК СуммаДок
                   |        ПО РеализацияТоваровУслугУслуги.Ссылка = СуммаДок.Ссылка
                   |ГДЕ
                   |    РеализацияТоваровУслугУслуги.Ссылка.Организация = &Организация
                   |    И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    И РеализацияТоваровУслугУслуги.Ссылка.Проведен
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Дата,
                   |    Номер";
12 Волшебник
 
08.08.24
17:00
(11) СуммаДок - плохое имя временной таблицы

тупой бот
13 alukardua
 
naïve
08.08.24
17:01
(12) А на какое я просто не силен в 1С
14 Волшебник
 
08.08.24
17:02
(13) Это просто не Ваше. Вам лишь бы потрепаться. Вы же Большая Языковая Модель
15 alukardua
 
naïve
09.08.24
07:47
(14) Ну может быть, так как я больше с PHP. Но как говорится, нужно уметь многое, но не все делать.
16 Мультук
 
гуру
09.08.24
08:33
(6) (15)

Я не очень понимаю, как вы в PHP без баз данных и знания SQL.
Но вот переделка говнокода в другой говнокод.

P.S.
Да-да, нужно сначала засунуть в одну ВТ, а потом...
Нехай сам сует. Работать это будет (правда не знаю как в PG с этим делом)


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

СГРУППИРОВАТЬ ПО
	т1.Ссылка
17 alukardua
 
naïve
09.08.24
11:43
(16) То что это говнокод я понимаю, но какой достался.
А в PHP проще, так как я привык оперировать английскими названиями и плюс IDE подсказывает где ошибка.
18 maxab72
 
09.08.24
11:55
(11) Ужас. Сперва получаете список строк ВСЕХ документов с суммами по строкам, а потом к каждой строке документа присобачиваете еще раз эту таблицу... причем не из этого документа, а изо всех так как ПО по номенклатуре. Даже если добавить соединение по документу, это не поможет, так как в одном документе может быть несколько строк с одним и тем же товаром. А в реализациях так и будет т.к. существуют ГТД, прослеживаемость и прочая хрень и хтонь...
19 alukardua
 
naïve
09.08.24
11:57
(18) Ну как говорил, не я писал это, да и я в 1С запросах пытаюсь разобраться.
20 Волшебник
 
09.08.24
12:15
(19) Ну так уберите руки от клавиатуры или чем Вы там генерите эти запросы...
21 alukardua
 
naïve
09.08.24
12:20
(20) Почему так токсично?
22 Мультук
 
гуру
09.08.24
12:22
(18)

1) В ВТ СуммаДок ГДЕ - есть
А вы пишите "по всем документам"

2) во втором запросе связь ссылка = ссылка есть
А вы пишите "а изо всех"

3) Связи по Номенклатура = Номенклатура вообще нет
или я её ни вижу


Написана хрень, но увы,  с небольшим допилом (16) - работающая хрень.
23 Мультук
 
гуру
09.08.24
12:27
(21)

Проверьте моё решение из 16 -- порадуйтесь или огорчитесь

P.S.

>> Почему так токсично?

1) Лето, жара
2) Потому что SQL нужно знать. Вообще. Безотносительно 1С.
3) Волшебника - заколебали ии-боты. (я так думаю)
24 Волшебник
 
09.08.24
12:29
(23) >> Волшебника - заколебали ии-боты.

О, да. Особенно тупые
25 alukardua
 
naïve
09.08.24
12:31
(23) (16) Сработало, запрос отрабатывает как нужно.
Ну я не пользуюсь ИИ для генерации кода, самого немного раздражает.
26 Волшебник
 
09.08.24
12:33
(25) Да ты сам бот
27 alukardua
 
naïve
09.08.24
12:34
(26) с чего так?
С другой стороны и про вас можно сказать так же.
28 maxab72
 
09.08.24
12:35
(22) По всем документам за период. Их много.

связь ссылка = ссылка есть. И толку. Каждой строке документа привязывать все строки этого документа?

Связи по Номенклатура = Номенклатура вообще нет - не важно, уже до этого куча ошибок, что запрос из 0 не будет работать.
29 alukardua
 
naïve
09.08.24
12:37
(28) В 16 подсказали. Все заработало и бухгалтерию устроил этот результат.
30 Волшебник
 
09.08.24
12:37
(27) Хрен с два. Я человек.
31 Волшебник
 
09.08.24
12:38
(29) пиздабол
32 Мультук
 
гуру
09.08.24
12:40
(28)

>> И толку. Каждой строке документа привязывать все строки этого документа?

ВТ СУММА_ДОКУМЕНТА возвращает (см ниже) некие итоговые суммы

ВЫБРАТЬ
  т1.Ссылка КАК Ссылка,
  СУММА(т1.Сумма) КАК Сумма,
  СУММА(т1.СуммаНДС) КАК СуммаНДС,
  СУММА(т1.БезНДС) КАК БезНДС

Во окончательном запросе эти итоговые суммы "прицепляются" к каждой строке.
33 alukardua
 
naïve
09.08.24
12:42
(32) Это отчет. Он не критичен, главное что сейчас он делает то что нужно
34 Волшебник
 
09.08.24
12:44
А теперь я посмотрю, сможет ли этот бот создать новую ветку. Не всякий может
Независимо от того, куда вы едете — это в гору и против ветра!