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