Иван Панченко | Заместитель генерального директора | Postgres Professional

«Postgres Pro для 1С: что нового»

В докладе рассказывается об улучшениях СУБД PostgreSQL и Postgres Pro, улучшающих работу платформы 1С на этой СУБД, ожидаемых в осенней 11-й версии.

Помогите с запросом на СКД 1С 8.2 УТ 10

1. kgn2011 6 12.01.17 11:29 Сейчас в теме
Создала внешний отчет на СКД. 1С 8.2 для УТ 10.2 (доработанная)

Не могу рассчитать колонку "ПроцентВыполнения",Она пустая...,? Помогите....
Использовала и вычисляемые поля....результата нет..Что не так?
Прикрепленные файлы:
ОтчетПоЗаказамПокупателей3.erf
Найденные решения
3. spacecraft 12.01.17 12:11 Сейчас в теме
(1) во-первых, с Null сравнивать нельзя. Всегда Ложь будет.
ВЫБОР
		КОГДА ВТ_СводныеДанные.Заказано = 0
				ИЛИ ВТ_СводныеДанные.Заказано = NULL
			ТОГДА 0
		ИНАЧЕ ВТ_СводныеДанные.Оплачено * 100 / ВТ_СводныеДанные.Заказано
	КОНЕЦ КАК ПроцентОплаты

Заменить на:
ВЫБОР
			КОГДА ЕСТЬNULL(ВТ_СводныеДанные.Заказано, 0) = 0
				ТОГДА 0
			ИНАЧЕ ВТ_СводныеДанные.Оплачено * 100 / ВТ_СводныеДанные.Заказано
		КОНЕЦ) КАК ПроцентОплаты

во-вторых, последним пакетом запроса выбираются данные из временной таблицы, которая собрана объединением без группировки. Соответственно там в каждой строке выборки будет или Заказано, или Оплачено. Но не оба сразу. Вычислять не из чего.
Мало того, идет детализация по регистратору. Сгруппировать как надо не получится.
5. MakcTLT63 10 12.01.17 12:53 Сейчас в теме
конечно ничего не появится.
вместо "объединить" надо поставить "соединение".
это раз.

во-вторых
КОГДА ТИПЗНАЧЕНИЯ(ВТ_СводныеДанные.Регистратор) = ТИП(Документ.ПлатежноеПоручениеВходящее)
надо заменить на
КОГДА ВТ_СводныеДанные.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее

и в-третьих
использование "ЕСТЬ NULL" и "ЕСТЬNULL" в запросах изучите.
9. kgn2011 6 12.01.17 17:46 Сейчас в теме
Переписала запрос не через временные таблицы.Все прошло.Всем спасибо за советы.
Остальные ответы
Сортировка: Древо
3. spacecraft 12.01.17 12:11 Сейчас в теме
(1) во-первых, с Null сравнивать нельзя. Всегда Ложь будет.
ВЫБОР
		КОГДА ВТ_СводныеДанные.Заказано = 0
				ИЛИ ВТ_СводныеДанные.Заказано = NULL
			ТОГДА 0
		ИНАЧЕ ВТ_СводныеДанные.Оплачено * 100 / ВТ_СводныеДанные.Заказано
	КОНЕЦ КАК ПроцентОплаты

Заменить на:
ВЫБОР
			КОГДА ЕСТЬNULL(ВТ_СводныеДанные.Заказано, 0) = 0
				ТОГДА 0
			ИНАЧЕ ВТ_СводныеДанные.Оплачено * 100 / ВТ_СводныеДанные.Заказано
		КОНЕЦ) КАК ПроцентОплаты

во-вторых, последним пакетом запроса выбираются данные из временной таблицы, которая собрана объединением без группировки. Соответственно там в каждой строке выборки будет или Заказано, или Оплачено. Но не оба сразу. Вычислять не из чего.
Мало того, идет детализация по регистратору. Сгруппировать как надо не получится.
4. kgn2011 6 12.01.17 12:44 Сейчас в теме
(3) Заменяла уже так....результат пусто
ВЫБОР
КОГДА ЕСТЬNULL(ВТ_СводныеДанные.Заказано, 0) = 0
ТОГДА 0
ИНАЧЕ ВТ_СводныеДанные.Оплачено * 100 / ВТ_СводныеДанные.Заказано
КОНЕЦ) КАК ПроцентОплаты

Если я указываю
ВТ_СводныеДанные.Заказано-ВТ_СводныеДанные.Оплачено
то в колонке цифры появляются,,,
6. spacecraft 12.01.17 12:59 Сейчас в теме
(4)
Если я указываю
ВТ_СводныеДанные.Заказано-ВТ_СводныеДанные.Оплачено
то в колонке цифры появляются,,,

1 + 0 или 0 + 1 конечно дадут цифру 1.
А 0/1 или 0 всегда дадут 0. Просто 0 в колонке не отображается.
7. kgn2011 6 12.01.17 13:13 Сейчас в теме
(6) C врем.таблицами не проходит...что посоветуете...не использовать их?
2. yaroslav.artem 12.01.17 11:41 Сейчас в теме
Тоже вчера мучался в УТ в подобным.. и через вычисляемое поле пытался, и в запросе уже добавил нужные поля.
При выводе отчета "Поле не найдено" и хоть ты тресни.
Кто то писал, мол пока все настройки отчета не сбросил, и не создал свои,не заработало.
Сбросил, создал свои.. не помогло. По-моему проще с 0 свой простенький отчетик сделать, как тебе нужно, чем стандартные 1Совские запросы и настройки СКД разобрать..
5. MakcTLT63 10 12.01.17 12:53 Сейчас в теме
конечно ничего не появится.
вместо "объединить" надо поставить "соединение".
это раз.

во-вторых
КОГДА ТИПЗНАЧЕНИЯ(ВТ_СводныеДанные.Регистратор) = ТИП(Документ.ПлатежноеПоручениеВходящее)
надо заменить на
КОГДА ВТ_СводныеДанные.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее

и в-третьих
использование "ЕСТЬ NULL" и "ЕСТЬNULL" в запросах изучите.
8. kgn2011 6 12.01.17 13:29 Сейчас в теме
КОГДА ВТ_СводныеДанные.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее тоже не выводит дату

Через соединение надо все переписывать
9. kgn2011 6 12.01.17 17:46 Сейчас в теме
Переписала запрос не через временные таблицы.Все прошло.Всем спасибо за советы.
10. kgn2011 6 12.01.17 17:52 Сейчас в теме
Все переписала не через ВТ. Помогло Всем спасибо за помощь!
Оставьте свое сообщение
Все разделы

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день