|
Помогите разобратся с запросом в УТ 8.2. | ☑ | ||
---|---|---|---|---|
0
0tsheln1k
18.02.20
✎
01:43
|
Решив одну проблему, наткнулся на другую...
Прошлая тема: УТ 8.2. Где заполняется макет внешней печатной формы? Проблема в том, что не могу понять почему ругается на: "Не удалось сформировать внешнюю печатную форму! Ошибка при вызове метода контекста (Выполнить): {(31, 2)}: Неправильный псевдоним "АктПриемкиНаРемонт.ПланируемаяСтоимость" <<?>>АктПриемкиНаРемонт.ПланируемаяСтоимость" Все та же конфигурация УТ 8.2. Текст запроса: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АктПриемкиНаРемонт.Номер КАК Номер, | АктПриемкиНаРемонт.Дата, | АктПриемкиНаРемонт.Организация, | АктПриемкиНаРемонт.Склад, | АктПриемкиНаРемонт.Контрагент, | АктПриемкиНаРемонт.Ответственный, | АктПриемкиНаРемонт.Подразделение, | АктПриемкиНаРемонт.Комментарий, | АктПриемкиНаРемонт.ДокументОснование.Дата КАК ДатаПродажи, | АктПриемкиНаРемонт.ПричинаОбращения, | АктПриемкиНаРемонт.ВидРемонта, | АктПриемкиНаРемонт.Техник, | АктПриемкиНаРемонт.ЗаключениеТехника, | АктПриемкиНаРемонт.Приемщик, | АктПриемкиНаРемонт.СтатусАкта, | АктПриемкиНаРемонт.Номенклатура, | АктПриемкиНаРемонт.СерийныйНомер КАК СерийныеНомера, | АктПриемкиНаРемонт.НомерБатареи, | АктПриемкиНаРемонт.IMEI_Телефона, | АктПриемкиНаРемонт.Оператор, | АктПриемкиНаРемонт.Комплектность, | АктПриемкиНаРемонт.ОграничениеСтоимости КАК ОграниченияСтоимости, | АктПриемкиНаРемонт.КодПароль, | АктПриемкиНаРемонт.НеисправностьСоСловВладельца КАК НеисправностьСоСловВладельца, | АктПриемкиНаРемонт.РезультатПроверки, | АктПриемкиНаРемонт.ДокументОснование.Номер, | АктПриемкиНаРемонт.Точка, | АктПриемкиНаРемонт.Замечания, | АктПриемкиНаРемонт.ДатаВыдачи, | АктПриемкиНаРемонт.ПредпологаемаяСтоимость |ИЗ | Документ.АктПриемкиНаРемонт КАК АктПриемкиНаРемонт |ГДЕ | АктПриемкиНаРемонт.Ссылка = &СсылкаНаДокумент"; Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаОбъект); Шапка = Запрос.Выполнить().Выбрать(); Если требуется полный код, то вот: Функция Печать() Экспорт Если (СсылкаНаОбъект.ПолучитьОбъект().ЭтоНовый())ИЛИ(СсылкаНаОбъект.ПолучитьОбъект().Модифицированность()) Тогда Возврат(0); КонецЕсли; КоличествоЭкземпляров = 1; НаПринтер = Ложь; ТабДокумент = СоздатьТабличныйДокументПечатиАкта(); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, "Акт приемки в ремонт"); КонецФункции // Печать // Функция создает табличный документ для печати // Параметры: // Тип - строка, содержит тип печатаемого документа (счет или заказ); // ПараметрыПечати - структура с данными для печати. // // Возвращаемое значение: // Табличный документ - сформированная печатная форма // Функция СоздатьТабличныйДокументПечатиАкта() Перем НаборЗаписей,Телефон,Заказчик; Телефон=""; Заказчик=""; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктПриемкиВРемонт"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АктПриемкиНаРемонт.Номер КАК Номер, | АктПриемкиНаРемонт.Дата, | АктПриемкиНаРемонт.Организация, | АктПриемкиНаРемонт.Склад, | АктПриемкиНаРемонт.Контрагент, | АктПриемкиНаРемонт.Ответственный, | АктПриемкиНаРемонт.Подразделение, | АктПриемкиНаРемонт.Комментарий, | АктПриемкиНаРемонт.ДокументОснование.Дата КАК ДатаПродажи, | АктПриемкиНаРемонт.ПричинаОбращения, | АктПриемкиНаРемонт.ВидРемонта, | АктПриемкиНаРемонт.Техник, | АктПриемкиНаРемонт.ЗаключениеТехника, | АктПриемкиНаРемонт.Приемщик, | АктПриемкиНаРемонт.СтатусАкта, | АктПриемкиНаРемонт.Номенклатура, | АктПриемкиНаРемонт.СерийныйНомер КАК СерийныеНомера, | АктПриемкиНаРемонт.НомерБатареи, | АктПриемкиНаРемонт.IMEI_Телефона, | АктПриемкиНаРемонт.Оператор, | АктПриемкиНаРемонт.Комплектность, | АктПриемкиНаРемонт.ОграничениеСтоимости КАК ОграниченияСтоимости, | АктПриемкиНаРемонт.КодПароль, | АктПриемкиНаРемонт.НеисправностьСоСловВладельца КАК НеисправностьСоСловВладельца, | АктПриемкиНаРемонт.РезультатПроверки, | АктПриемкиНаРемонт.ДокументОснование.Номер, | АктПриемкиНаРемонт.Точка, | АктПриемкиНаРемонт.Замечания, | АктПриемкиНаРемонт.ДатаВыдачи, | АктПриемкиНаРемонт.ПредпологаемаяСтоимость |ИЗ | Документ.АктПриемкиНаРемонт КАК АктПриемкиНаРемонт |ГДЕ | АктПриемкиНаРемонт.Ссылка = &СсылкаНаДокумент"; Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаОбъект); Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); //ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); Макет = ПолучитьМакет("Акт"); //1 союз программистов 11.05.2018 ТабДокумент.Очистить(); ТабДокумент.ПолеСверху = 10; ТабДокумент.ПолеСлева = 10; ТабДокумент.ПолеСправа = 10; ТабДокумент.РазмерКолонтитулаСверху = 0; ТабДокумент.РазмерКолонтитулаСнизу = 0; ТабДокумент.АвтоМасштаб = Истина; ТабДокумент.РазмерСтраницы="A4"; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктПриемкиВРемонт"; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ОбластьМакета = Макет.ПолучитьОбласть("Основной"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры["Дата"]=Формат(Шапка.Дата,"ДЛФ=Д"); ОбластьМакета.Параметры["ДатаПродажи"]=Формат(Шапка.ДатаПродажи,"ДЛФ=Д"); Для каждого Строка Из СсылкаНаОбъект.СтатусыАкта Цикл Если Строка.СтатусАкта=Перечисления.СтатусыАктовПриемки.Выдано Тогда ОбластьМакета.Параметры["Выдал"]=Строка.Ответственный.Наименование; ОбластьМакета.Параметры["ДатаВыдачи"]=Формат(Строка.Дата,"ДЛФ=Д"); //ОбластьМакета.Параметры["ПланСтоим"]=Формат(Строка.ПланируемаяСтоимость,"ЧЦ=10; ЧДЦ=2"); КонецЕсли; КонецЦикла; //ОбластьМакета.Параметры["ПланСтоимОб"]= Формат(Шапка.ДатаВыдачи,"ЧЦ=10; ЧДЦ=2"); УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(НаборЗаписей, Шапка.Контрагент); Для каждого строка Из НаборЗаписей Цикл Если строка.Вид=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента Тогда Телефон=Строка(строка.Представление); Если ЗначениеЗаполнено(Телефон) Тогда Заказчик=Заказчик+"тел: "+Телефон+";"; иначе Предупреждение("Незаполнен телефон"); КонецЕсли; иначеЕсли строка.Вид=Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда Если ЗначениеЗаполнено(строка.Представление) Тогда Заказчик=Заказчик+" адрес клиента: "+строка.Представление+";"; иначе Предупреждение("Незаполнен адрес"); КонецЕсли; КонецЕсли; КонецЦикла; ОбластьМакета.Параметры["ТелефонСотовый"]=Телефон; ОбластьМакета.Параметры["Адрес"]=Шапка.Точка.Адресс; ТабДокумент.Вывести(ОбластьМакета); //ТабличныйДок.РазмерСтраницы="A4" //ТабДокумент.АвтоМасштаб=Истина; Возврат ТабДокумент; КонецФункции // СоздатьТабличныйДокументПечатиСчетаЗаказа() Все это тестирую в тестовой базе, в основной базе, все так же, при этом не выдает этой ошибки. Прошу вашей помощи разобраться в этом, скорее всего я что-то где-то упустил. |
|||
1
Михаил Михайлович
18.02.20
✎
04:58
|
(0) А посмотреть и подумать?
|
|||
2
Галахад
гуру
18.02.20
✎
05:09
|
(0) В запросе, такого поля нет. Вывод - это другая печатная форма.
|
|||
3
ДенисЧ
18.02.20
✎
05:11
|
приведённый код не может выдать эту ошибку.
|
|||
4
Михаил Михайлович
18.02.20
✎
05:42
|
(3) отчего же не может?
|
|||
5
ДенисЧ
18.02.20
✎
06:12
|
(4) Потому что в коде нет слова ПланируемаяСтоимость
|
|||
6
Chameleon1980
18.02.20
✎
06:14
|
потому что поля нет
|
|||
7
bolder
18.02.20
✎
06:26
|
Это не тот запрос, в приведённом такого поля нет.Нужно понимать, что выполнятся.
|
|||
8
Михаил Михайлович
18.02.20
✎
06:32
|
(5) точняк))) комменты не увиддел))
|
|||
9
Chameleon1980
18.02.20
✎
07:06
|
ииии?
|
|||
10
0tsheln1k
18.02.20
✎
12:28
|
(7) Запрос тот же. Просто ситуация в том, что если я вставляю это поле запроса "АктПриемкиНаРемонт.Планируемаястоимость", он выдает ошибку, мол неправильный псевдоним, а если удаляю потом, то ошибка не проходит и все так же говорит, что неправильный псевдоним.
Проблема в том, что ругается на сам запрос, в запросе есть выборка по этому параметру. |
|||
11
ДенисЧ
18.02.20
✎
12:30
|
(10) Продам коробку запятых для расстановки в запросе.
|
|||
12
0tsheln1k
18.02.20
✎
12:30
|
(5) В отдельно выведенном тексте запроса, разве не указан "ПланируемаяСтоимость"? Покрайней мере я вижу или я смотрю не туда?
|
|||
13
0tsheln1k
18.02.20
✎
12:32
|
(11) Помогите, пожалуйста, понять где же я не поставил запятую?
|
|||
14
ДенисЧ
18.02.20
✎
12:33
|
(13) В строке перед той, на которую ругается 1с.
А чтобы не гадать - приведи точный запрос, на который ругается. И точную ругань. |
|||
15
0tsheln1k
18.02.20
✎
12:37
|
(14) Я привел полный текст запроса в самом начале темы и там же выше всего стоящего дословно указал ошибку, которую он мне выдает. Так же проверил через конструктор запроса, он так же не ставит запятую. Создал внешнюю обработку, в которой указал, точно такой же запрос за исключением условия "ГДЕ", как итог в выводе сообщения он видит все и запрос корректно обрабатывается.
|
|||
16
0tsheln1k
18.02.20
✎
12:42
|
(14) Так же проштудировал всю мат.часть по Запросам, и как следствие:
Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ |АктПриемкиНаРемонт.ДатаВыдачи, <--- Тут есть запятая |АктПриемкиНаРемонт.ПредпологаемаяСтоимость <--- Тут не ставится, а если и ставится, то это сразу же приводит к ошибке неверного параметра запроса |ИЗ Документ.АктПриемкиНаРемонт как АктПриемкиНаРемонт"; Шапка = Запрос.Выполнить().Выбрать(); |
|||
17
0tsheln1k
18.02.20
✎
12:44
|
(14) Или я не правильно понял? Если не правильно, то можно вразумить меня и дать понять, как и в каких случиях ставим, очень прошу с примерами.
|
|||
18
Галахад
гуру
18.02.20
✎
13:00
|
Гм. В (0) "Планируемая", а тут"ПредполОгаемая". Может все же выложить нормальный код и ошибку?
|
|||
19
catena
18.02.20
✎
13:01
|
(16)Соберись и скопируй уже запрос и текст. А то в именах переменных путаешься.
|
|||
20
catena
18.02.20
✎
13:01
|
*(19)и текст ошибки
|
|||
21
ДенисЧ
18.02.20
✎
13:05
|
(15) ТЫ привёл текст запроса, который НЕ МОГ выдать такую ошибку.
|
|||
22
unbred
18.02.20
✎
13:40
|
ТС пишет запрос, а ошибки ловит из другого запроса) советую использовать точки останова))
|
|||
23
acht
18.02.20
✎
13:41
|
(0) > //1 союз программистов
И Ленин великий нам путь озарил |
|||
24
0tsheln1k
18.02.20
✎
18:07
|
(22) Пробовал ставить точки остановка. Он их не видит,почему?
|
|||
25
unbred
18.02.20
✎
20:20
|
(24) без понятия. может отладка на серваке не включена. может отладку фоновых включить надо.
|
|||
26
Said_We
19.02.20
✎
01:08
|
(0), (10)
Судя по коду ниже "ПланируемаяСтоимость", это реквизит табличной части "СтатусыАкта", документа "АктПриемкиНаРемонт". Для каждого Строка Из СсылкаНаОбъект.СтатусыАкта Цикл ... //ОбластьМакета.Параметры["ПланСтоим"]=Формат(Строка.ПланируемаяСтоимость,"ЧЦ=10; ЧДЦ=2"); ... В запросе данная табличная часть не обрабатывается. Обращение к ней нет и в тексте запроса нет поля плановой стоимости, а есть некая ПРЕДПОЛОГАЕМАЯ. Как говорят в Одессе - это две большие разницы. (24) Не туда ставишь например. Смотри в отладчике подключения свои видишь и подключены ли они. Включена или нет отладка на сервере, если код на сервере. Самое простое сохрани внешнюю свою форму если она в виде внешней обработки и запускай. Точку останова в модуле формы не кнопке Сформировать или как она там называется. Если в отладчик попадешь, а внутрь функций модуля обработки не проваливаешься, то отладка на сервере не включена. |
|||
27
0tsheln1k
19.02.20
✎
06:27
|
(26) Используем толстый клиент, не серверную часть. Все подключаются к серверу на котором стоит 1С через удаленный рабочий стол и потом работают так.
|
|||
28
ДенисЧ
19.02.20
✎
06:56
|
Да тупо сообщить() в нужных местах вставить и не надо мозги того... НИИ...
|
|||
29
Said_We
19.02.20
✎
07:46
|
(27) К (28) Если в сообщить не знаешь что писать пиши Сообщить("324"), Где 324 номер строки. :-)
|
|||
30
0tsheln1k
19.02.20
✎
10:47
|
(26) Убрал от туда, и все равно. Запустил внешнюю обработку отдельно от документа на запрос теперь не ругается, но проблема с полями теперь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |