Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> почему запрос получает 5 строк, а на выходе дает 3 строки          
lolmatrix Подменю пользователя
сообщение 29.08.21, 19:12
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 65
Спасибо сказали: 1 раз
Рейтинг: 1

1с 8.3.19.1150 управляемые формы
Здравствуйте, подскажите пожалуйста, новичку, передаю в запрос таблицу значений состоящую из 5 строк, в регистре сведений совпадает по видУслуги всего 3 строки , и на выходе получаю 3 строки подскажите как сделать чтобы 5 строк было в результате запроса, вот сам код:
ТабЧасть = Объект.ОказанныеУслуги.Выгрузить();  
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТабЧасть.ВидУслуги КАК ВидУслуги,
    |    ТабЧасть.ПоследниеПоказания КАК ПоследниеПоказания,
    |    ТабЧасть.ТекущиеПоказания КАК ТекущиеПоказания,
    |    ТабЧасть.Разницапоказаний КАК Разницапоказаний,
    |    ТабЧасть.КОплате КАК КОплате,
    |    ТабЧасть.Оплачено КАК Оплачено
    |ПОМЕСТИТЬ ВТ_ТабЧасть
    |ИЗ
    |    &ТабЧасть КАК ТабЧасть
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПоказанияПриборов.Показания КАК ПоследниеПоказания,
    |    ВТ_ТабЧасть.КОплате КАК КОплате,
    |    ВТ_ТабЧасть.Оплачено КАК Оплачено,
    |    ВТ_ТабЧасть.Разницапоказаний КАК Разницапоказаний,
    |    ПоказанияПриборов.ВидУслуги.Ссылка КАК ВидУслуги,
    |    ВТ_ТабЧасть.ТекущиеПоказания КАК ТекущиеПоказания
    |ИЗ
    |    ВТ_ТабЧасть КАК ВТ_ТабЧасть
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоказанияПриборов КАК ПоказанияПриборов
    |        ПО ВТ_ТабЧасть.ВидУслуги = ПоказанияПриборов.ВидУслуги
    |ГДЕ
    |    МЕСЯЦ(ПоказанияПриборов.МесяцРасчета) = МЕСЯЦ(&МесяцРасчета) - 1";    
    Запрос.УстановитьПараметр("ТабЧасть", ТабЧасть);    
    Запрос.УстановитьПараметр("МесяцРасчета", МесяцРасчета);
    РезультатЗапроса = Запрос.Выполнить();
    Тз = РезультатЗапроса.Выгрузить();
    Объект.ОказанныеУслуги.Загрузить(Тз);

заранее благодарен



sava1 Подменю пользователя
сообщение 29.08.21, 20:50
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2492
Из: Проскуров
Спасибо сказали: 613 раз
Рейтинг: 592.6

вместо ГДЕ впишите И

Batchir Подменю пользователя
сообщение 30.08.21, 7:51
Сообщение #3

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3513
Из: Одесса
Спасибо сказали: 1384 раз
Рейтинг: 1037.3

Условием
    |ГДЕ
    |    МЕСЯЦ(ПоказанияПриборов.МесяцРасчета) = МЕСЯЦ(&МесяцРасчета) - 1";

Вы из тех 5 строк отсекаете 2, т.к. они не соответствуют этому условию.
Как написали выше перенесите условие ГДЕ в левое соединение и тогда будет 5 строк, а для остальных строк будут значения NULL из таблицы ПоказанияПриборов.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.09.21, 0:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!