Работа с запросами 1с 8
11.08.2010
15:28
#1
"Народ проблема такая:
пишу запрос:
ПечатаемыДокумент.Дата как ДатаДок";
Если ПечатаемыйДокумент тогда
Запрос.Текст= Запрос.Текст+"
ПечатаемыйДокумент.СчетКонтрагента как СчетКонтрагента";
Иначе
Запрос.Текст= Запрос.Текст+"
ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета как СчетКонтрагента";
КонецЕсли;
Запрос.Текст = Запрос.Текст+"
Далее оставшийся текст запроса
....
Возврат Запрос.Выполнить();
При выводе документа на печать 1с выдает ошибку: Ошибка метода контекста Выполнить
Значения всем параметрам присвоены, условия до запроса тоже выполняются
В чем может быть проблема?"
пишу запрос:
ПечатаемыДокумент.Дата как ДатаДок";
Если ПечатаемыйДокумент тогда
Запрос.Текст= Запрос.Текст+"
ПечатаемыйДокумент.СчетКонтрагента как СчетКонтрагента";
Иначе
Запрос.Текст= Запрос.Текст+"
ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета как СчетКонтрагента";
КонецЕсли;
Запрос.Текст = Запрос.Текст+"
Далее оставшийся текст запроса
....
Возврат Запрос.Выполнить();
При выводе документа на печать 1с выдает ошибку: Ошибка метода контекста Выполнить
Значения всем параметрам присвоены, условия до запроса тоже выполняются
В чем может быть проблема?"
11.08.2010
17:57
#4
"Функция СформироватьЗапросПоДокументу(ДокументСсылка)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
// Установим параметры запроса
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Запрос.УстановитьПараметр("ДатаДокумента", ДокументСсылка.Дата);
Запрос.УстановитьПараметр("СтруктурнаяЕдиница",ДокументСсылка.Организация);
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
ПечатьПлатежногоПоручения = Истина;
Запрос.УстановитьПараметр("СчетКонтрагента", ДокументСсылка.СчетКонтрагента);
Иначе
ПечатьПлатежногоПоручения = Ложь;
Запрос.УстановитьПараметр("СчетКонтрагента", ДокументСсылка.Банк);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо.Наименование КАК ФизическоеЛицоНаименование,
| ОтветственныеЛицаСрезПоследних.Должность.Наименование КАК ДолжностьНаименование,
| ОтветственныеЛицаСрезПоследних.ОтветственноеЛицо,
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| ФизическиеЛица.Комментарий
|ПОМЕСТИТЬ ВТОтветственныеЛица
|ИЗ
| РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
| &ДатаДокумента,
| СтруктурнаяЕдиница = &СтруктурнаяЕдиница
| И ОтветственноеЛицо В (ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель), ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Кассир), ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))) КАК ОтветственныеЛицаСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
| ПО ОтветственныеЛицаСрезПоследних.ФизическоеЛицо = ФизическиеЛица.Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| ФизическоеЛицо";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ОтветственныеЛицаСрезПоследних.ДолжностьНаименование,
| ОтветственныеЛицаСрезПоследних.ОтветственноеЛицо КАК ОтветственноеЛицо,
| ЕСТЬNULL(ФИОФизЛицСрезПоследнихРуководитель.Фамилия + ВЫБОР
| КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Имя, 1, 1) <> """"
| ТОГДА """" """" + ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Имя, 1, 1) + """".""""
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Отчество, 1, 1) <> """"
| ТОГДА """" """" + ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Отчество, 1, 1) + """".""""
| ИНАЧЕ """"
| КОНЕЦ, ОтветственныеЛицаСрезПоследних.ФизическоеЛицоНаименование) КАК ФИОРуководителя
|ПОМЕСТИТЬ ВТДанныеОтветственныхЛиц
|ИЗ
| ВТОтветственныеЛица КАК ОтветственныеЛицаСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(
| &ДатаДокумента,
| ФизЛицо В
| (ВЫБРАТЬ
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо
| ИЗ
| ВТОтветственныеЛица КАК ОтветственныеЛицаСрезПоследних)) КАК ФИОФизЛицСрезПоследнихРуководитель
| ПО ОтветственныеЛицаСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследнихРуководитель.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| ОтветственноеЛицо";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПечатаемыйДокумент.Дата КАК ДатаДок";
Если ПечатьПлатежногоПоручения тогда
Запрос.Текст = Запрос.Текст +"
| ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента";
Иначе
Запрос.Текст = Запрос.Текст +"
| ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета КАК СчетКонтрагента";
КонецЕсли;
Запрос.Текст = Запрос.Текст +"
| ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
| ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха
|ИЗ
| Документ." + ДокументСсылка.Метаданные().Имя + " КАК ПечатаемыйДокумент
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихРуководитель
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихРуководитель.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель))
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихГлБух
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихКассир
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихКассир.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Кассир))
|ГДЕ
| ПечатамыйДокумент.Ссылка = &ДокументСсылка";
Если ПечатьПлатежногоПоручения Тогда
Запрос.Текст = Запрос.Текст + "
| ПечатаемыйДокумент.Ссылка В(&ДокументСсылка)";
Иначе
Запрос.Текст = Запрос.Текст + "
| ПечатаемыйДокумент.Ссылка = &ДокументСсылка";
КонецЕсли;
Возврат Запрос.Выполнить();
КонецФункции // СформироватьЗапросДляПечати()
"
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
// Установим параметры запроса
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Запрос.УстановитьПараметр("ДатаДокумента", ДокументСсылка.Дата);
Запрос.УстановитьПараметр("СтруктурнаяЕдиница",ДокументСсылка.Организация);
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
ПечатьПлатежногоПоручения = Истина;
Запрос.УстановитьПараметр("СчетКонтрагента", ДокументСсылка.СчетКонтрагента);
Иначе
ПечатьПлатежногоПоручения = Ложь;
Запрос.УстановитьПараметр("СчетКонтрагента", ДокументСсылка.Банк);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо.Наименование КАК ФизическоеЛицоНаименование,
| ОтветственныеЛицаСрезПоследних.Должность.Наименование КАК ДолжностьНаименование,
| ОтветственныеЛицаСрезПоследних.ОтветственноеЛицо,
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| ФизическиеЛица.Комментарий
|ПОМЕСТИТЬ ВТОтветственныеЛица
|ИЗ
| РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
| &ДатаДокумента,
| СтруктурнаяЕдиница = &СтруктурнаяЕдиница
| И ОтветственноеЛицо В (ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель), ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Кассир), ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))) КАК ОтветственныеЛицаСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
| ПО ОтветственныеЛицаСрезПоследних.ФизическоеЛицо = ФизическиеЛица.Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| ФизическоеЛицо";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ОтветственныеЛицаСрезПоследних.ДолжностьНаименование,
| ОтветственныеЛицаСрезПоследних.ОтветственноеЛицо КАК ОтветственноеЛицо,
| ЕСТЬNULL(ФИОФизЛицСрезПоследнихРуководитель.Фамилия + ВЫБОР
| КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Имя, 1, 1) <> """"
| ТОГДА """" """" + ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Имя, 1, 1) + """".""""
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Отчество, 1, 1) <> """"
| ТОГДА """" """" + ПОДСТРОКА(ФИОФизЛицСрезПоследнихРуководитель.Отчество, 1, 1) + """".""""
| ИНАЧЕ """"
| КОНЕЦ, ОтветственныеЛицаСрезПоследних.ФизическоеЛицоНаименование) КАК ФИОРуководителя
|ПОМЕСТИТЬ ВТДанныеОтветственныхЛиц
|ИЗ
| ВТОтветственныеЛица КАК ОтветственныеЛицаСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(
| &ДатаДокумента,
| ФизЛицо В
| (ВЫБРАТЬ
| ОтветственныеЛицаСрезПоследних.ФизическоеЛицо
| ИЗ
| ВТОтветственныеЛица КАК ОтветственныеЛицаСрезПоследних)) КАК ФИОФизЛицСрезПоследнихРуководитель
| ПО ОтветственныеЛицаСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследнихРуководитель.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| ОтветственноеЛицо";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПечатаемыйДокумент.Дата КАК ДатаДок";
Если ПечатьПлатежногоПоручения тогда
Запрос.Текст = Запрос.Текст +"
| ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента";
Иначе
Запрос.Текст = Запрос.Текст +"
| ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета КАК СчетКонтрагента";
КонецЕсли;
Запрос.Текст = Запрос.Текст +"
| ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
| ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха
|ИЗ
| Документ." + ДокументСсылка.Метаданные().Имя + " КАК ПечатаемыйДокумент
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихРуководитель
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихРуководитель.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель))
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихГлБух
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер))
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОтветственныхЛиц КАК ОтветственныеЛицаОрганизацийСрезПоследнихКассир
| ПО (ОтветственныеЛицаОрганизацийСрезПоследнихКассир.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Кассир))
|ГДЕ
| ПечатамыйДокумент.Ссылка = &ДокументСсылка";
Если ПечатьПлатежногоПоручения Тогда
Запрос.Текст = Запрос.Текст + "
| ПечатаемыйДокумент.Ссылка В(&ДокументСсылка)";
Иначе
Запрос.Текст = Запрос.Текст + "
| ПечатаемыйДокумент.Ссылка = &ДокументСсылка";
КонецЕсли;
Возврат Запрос.Выполнить();
КонецФункции // СформироватьЗапросДляПечати()
"
11.08.2010
20:47
#6
"{ОбщийМодуль.ФормированиеПечатныхФормДополнительный(117)}: Ошибка при вызове метода контекста (Выполнить): {(3, 2)}: Синтаксическая ошибка "ПечатаемыйДокумент.СчетКонтрагента.НомерСчета"
<>>ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
Возврат Запрос.Выполнить();
по причине:
{(3, 2)}: Синтаксическая ошибка "ПечатаемыйДокумент.СчетКонтрагента.НомерСчета"
<>>ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
такая же ошибка выдается при запуске на печать из документа ЗарплатаКВыплатеОрганизаций"
<>>ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
Возврат Запрос.Выполнить();
по причине:
{(3, 2)}: Синтаксическая ошибка "ПечатаемыйДокумент.СчетКонтрагента.НомерСчета"
<>>ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
такая же ошибка выдается при запуске на печать из документа ЗарплатаКВыплатеОрганизаций"
12.08.2010
09:07
#9
"Согласно этому:
> Запрос.Текст =
> "ВЫБРАТЬ РАЗЛИЧНЫЕ
> | ПечатаемыйДокумент.Дата КАК ДатаДок";
> Если ПечатьПлатежногоПоручения тогда
> Запрос.Текст = Запрос.Текст +"
> | ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента";
> Иначе
> Запрос.Текст = Запрос.Текст +"
> | ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета КАК СчетКонтрагента";
> КонецЕсли;
> Запрос.Текст = Запрос.Текст +"
>
> | ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
> | ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха
у вас получиться:
"ВЫБРАТЬ РАЗЛИЧНЫЕ
ПечатаемыйДокумент.Дата КАК ДатаДок
ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха"
Ничего необычного в первых 2-х строчках (после выбрать) не замечаете?"
> Запрос.Текст =
> "ВЫБРАТЬ РАЗЛИЧНЫЕ
> | ПечатаемыйДокумент.Дата КАК ДатаДок";
> Если ПечатьПлатежногоПоручения тогда
> Запрос.Текст = Запрос.Текст +"
> | ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента";
> Иначе
> Запрос.Текст = Запрос.Текст +"
> | ПечатаемыйДокумент.Банк.ОсновнойБанковскийСчет.НомерСчета КАК СчетКонтрагента";
> КонецЕсли;
> Запрос.Текст = Запрос.Текст +"
>
> | ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
> | ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха
у вас получиться:
"ВЫБРАТЬ РАЗЛИЧНЫЕ
ПечатаемыйДокумент.Дата КАК ДатаДок
ПечатаемыйДокумент.СчетКонтрагента.НомерСчета КАК СчетКонтрагента
ВЫРАЗИТЬ(ПечатаемыйДокумент.Организация.НаименованиеПолное КАК СТРОКА(300)) КАК НазваниеОрганизации,
ОтветственныеЛицаОрганизацийСрезПоследнихГлБух.ФИОРуководителя КАК ФИОГлБуха"
Ничего необычного в первых 2-х строчках (после выбрать) не замечаете?"
Читают тему
(гостей: 1)