|
v8: Проблема с запросом при формировании ПФ | ☑ | ||
---|---|---|---|---|
0
Валидатор
18.07.13
✎
15:27
|
вот запрос:
ВЫБРАТЬ ПланЗакупокСоставПлана.Номенклатура.Артикул КАК НоменклатураАртикул, ПланЗакупокСоставПлана.Номенклатура КАК Номенклатура, ПланЗакупокСоставПлана.Количество, ПланЗакупокСоставПлана.Цена КАК Цена, ПланЗакупокСоставПлана.ттДатаИзвещения КАК ДатаИзвещения, ПланЗакупокСоставПлана.Ссылка.ДатаПланирования, ПланЗакупокСоставПлана.ЕдиницаИзмерения.Код, ПланЗакупокСоставПлана.ЕдиницаИзмерения.Наименование, ПланЗакупокСоставПлана.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК МинимальныеТребования, ПланЗакупокСоставПлана.ттСпособЗакупки КАК СпособЗакупки, ВЫБОР КОГДА ПланЗакупокСоставПлана.Ссылка.КПЗ = ИСТИНА ТОГДА "да" ИНАЧЕ "нет" КОНЕЦ КАК Закупка, ВЫБОР КОГДА ЕСТЬNULL(ПланЗакупокСоставПлана.Номенклатура.Артикул, "") = "" ТОГДА "" ИНАЧЕ ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 1, 2) + "." + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 3, 2) + "." + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 5, 100) КОНЕЦ КАК Артикул, &Параметр, ПланЗакупокСоставПлана.НомерСтроки ПОМЕСТИТЬ втПараметр ИЗ Документ.ПланЗакупок.СоставПлана КАК ПланЗакупокСоставПлана ГДЕ ПланЗакупокСоставПлана.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ттРегионПоставки.кодОКАТО, ттРегионПоставки.Наименование, втПараметр.НоменклатураАртикул, втПараметр.Номенклатура, втПараметр.Количество, втПараметр.Цена, втПараметр.ДатаИзвещения, втПараметр.ДатаПланирования, втПараметр.ЕдиницаИзмеренияКод, втПараметр.ЕдиницаИзмеренияНаименование, втПараметр.МинимальныеТребования, втПараметр.СпособЗакупки, втПараметр.Закупка, втПараметр.Артикул, втПараметр.Параметр, втПараметр.НомерСтроки КАК НомерСтроки ИЗ втПараметр КАК втПараметр ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ттРегионПоставки КАК ттРегионПоставки ПО втПараметр.Параметр = ттРегионПоставки.Подразделение УПОРЯДОЧИТЬ ПО НомерСтроки Данный запрос отрабатывает, и дальше можно формировать ПФ, НО, если в РС ттРегионПоставки нет данных, то ПФ будет пустая,так как результат запроса не вернет значений никаких. Вот как сделать, что если в РС нет данных, то ПФ все равно формировалась, только без данных этого РС? |
|||
1
Mitriy
18.07.13
✎
15:29
|
стесняюсь спросить... кто такая ПФ?
|
|||
2
Валидатор
18.07.13
✎
15:29
|
Печатная Форма
|
|||
3
Mitriy
18.07.13
✎
15:30
|
Левое соединение...
|
|||
4
Валидатор
18.07.13
✎
15:30
|
Вот код процедуры целиком:
Процедура СформироватьПечатнуюФорму () ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Шапка = Макет.ПолучитьОбласть("Шапка"); План = Макет.ПолучитьОбласть("План"); Строка = Макет.ПолучитьОбласть("Строка"); Отступ = Макет.ПолучитьОбласть("Отступ"); Подписи = Макет.ПолучитьОбласть("Подписи"); Шапка.Параметры.Подразделение = СсылкаНаОбъект.Подразделение; ТабДок.Вывести(Шапка); ТабДок.Вывести(План); ПолучениеКода = СтрЗаменить(СсылкаНаОбъект.Подразделение.ПолныйКод(), "/", Символы.ПС); НаименованиеПодразделения = Справочники.Подразделения.НайтиПоКоду(ПолучениеКода); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПланЗакупокСоставПлана.Номенклатура.Артикул КАК НоменклатураАртикул, | ПланЗакупокСоставПлана.Номенклатура КАК Номенклатура, | ПланЗакупокСоставПлана.Количество, | ПланЗакупокСоставПлана.Цена КАК Цена, | ПланЗакупокСоставПлана.ттДатаИзвещения КАК ДатаИзвещения, | ПланЗакупокСоставПлана.Ссылка.ДатаПланирования, | ПланЗакупокСоставПлана.ЕдиницаИзмерения.Код, | ПланЗакупокСоставПлана.ЕдиницаИзмерения.Наименование, | ПланЗакупокСоставПлана.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК МинимальныеТребования, | ПланЗакупокСоставПлана.ттСпособЗакупки КАК СпособЗакупки, | ВЫБОР | КОГДА ПланЗакупокСоставПлана.Ссылка.КПЗ = ИСТИНА | ТОГДА ""да"" | ИНАЧЕ ""нет"" | КОНЕЦ КАК Закупка, | ВЫБОР | КОГДА ЕСТЬNULL(ПланЗакупокСоставПлана.Номенклатура.Артикул, """") = """" | ТОГДА """" | ИНАЧЕ ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 1, 2) + ""."" + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 3, 2) + ""."" + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 5, 100) | КОНЕЦ КАК Артикул, | &Параметр, | ПланЗакупокСоставПлана.НомерСтроки |ПОМЕСТИТЬ втПараметр |ИЗ | Документ.ПланЗакупок.СоставПлана КАК ПланЗакупокСоставПлана |ГДЕ | ПланЗакупокСоставПлана.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ттРегионПоставки.кодОКАТО, | ттРегионПоставки.Наименование, | втПараметр.НоменклатураАртикул, | втПараметр.Номенклатура, | втПараметр.Количество, | втПараметр.Цена, | втПараметр.ДатаИзвещения, | втПараметр.ДатаПланирования, | втПараметр.ЕдиницаИзмеренияКод, | втПараметр.ЕдиницаИзмеренияНаименование, | втПараметр.МинимальныеТребования, | втПараметр.СпособЗакупки, | втПараметр.Закупка, | втПараметр.Артикул, | втПараметр.Параметр, | втПараметр.НомерСтроки КАК НомерСтроки |ИЗ | втПараметр КАК втПараметр | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ттРегионПоставки КАК ттРегионПоставки | ПО втПараметр.Параметр = ттРегионПоставки.Подразделение | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Запрос.УстановитьПараметр("Параметр", НаименованиеПодразделения); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Номер = 0; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Номер = Номер + 1 ; Строка.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Строка.Параметры.Порядковый = Номер; Строка.Параметры.Закупка = ВыборкаДетальныеЗаписи.Закупка; Строка.Параметры.Артикул = ВыборкаДетальныеЗаписи.Артикул; Строка.Параметры.Количество = ВыборкаДетальныеЗаписи.Количество; Строка.Параметры.Сумма = ВыборкаДетальныеЗаписи.Цена; Строка.Параметры.ОКДП = ВыборкаДетальныеЗаписи.НоменклатураАртикул; Строка.Параметры.ЕдОКЕИ = ВыборкаДетальныеЗаписи.ЕдиницаИзмеренияКод; Строка.Параметры.ОКАТОРегион = ВыборкаДетальныеЗаписи.КодОкато; Строка.Параметры.НаименованиеРегион = ВыборкаДетальныеЗаписи.Наименование; Строка.Параметры.Требования = ВыборкаДетальныеЗаписи.МинимальныеТребования; Строка.Параметры.ЕдНаименование = ВыборкаДетальныеЗаписи.ЕдиницаИзмеренияНаименование; Строка.Параметры.СпособЗакупки = ВыборкаДетальныеЗаписи.СпособЗакупки; Строка.Параметры.ДатаПланирования = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=ММММ-кк-гггг"); Строка.Параметры.ДатаИзвещения = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=ММММ-кк-гггг"); ТабДок.Вывести(строка); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтветственныеЛицаСрезПоследних.ФизическоеЛицо |ИЗ | Документ.ПланЗакупок КАК ПланЗакупок | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛица.СрезПоследних КАК ОтветственныеЛицаСрезПоследних | ПО ПланЗакупок.Подразделение.Ссылка = ОтветственныеЛицаСрезПоследних.СтруктурнаяЕдиница.Ссылка |ГДЕ | ПланЗакупок.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Подписи.Параметры.Начальник = ВыборкаДетальныеЗаписи.ФизическоеЛицо; Подписи.Параметры.Дата = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy") ; КонецЦикла; ТабДок.Вывести(Отступ); ТабДок.ОтображатьСетку = Ложь; ТабДок.Вывести(Подписи); ТабДок.Показать(); КонецПроцедуры |
|||
5
Валидатор
18.07.13
✎
15:32
|
спс
|
|||
6
Deon
18.07.13
✎
15:32
|
уже ж сказали - Левое соединение
|
|||
7
Deon
18.07.13
✎
15:32
|
Почему все так любят эту стремную переменную "Строка"?
|
|||
8
Mitriy
18.07.13
✎
15:36
|
(7) потому что для иного нужна фантазия...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |