• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Запросы в 1С 8.1

  • Автор темы arhiordinator1
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

arhiordinator1

Всем привет, есть небольшая проблемка с запросом, суть запроса, есть справочник контрагенты, в нём есть поле контактов, телефон и тому подобное, вообщем надо сформировать отчёт так что бы напротив названия компании располагался её телефон, но в моём запросе почему то компании с пустыми телефонами выводятся тоже, к примеру:

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


Результат выглядит жутковато :
наименование___________телефон
_______________________370-07-92
_______________________472-48-20
Копейка
Копейка________________320-77-65, 324-85-05,292-25-03

Что делать с подобными глюками как их извести?

P.S.подчёркивания поставил сам они символизируют пробелы. А то когда тему создал не было видно что это табличка.
 
A

arhiordinator1

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

Darlock

Почти, поменяйте связи между таблицами, Справочник должен быть слева, а не регистр сведений.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!