Всё работало хорошо, но вдруг перестало, после того, как я внес изменения в макет СКД:
При формировании отчета появлялась надпись «Синтаксическая ошибка» и всё.
Когда убрал некоторые секции, методом деструктивного исключения обнаружил, что глючит зеленая секция.
Благо, CTRL+Z сработал и вернул изменения назад (каюсь, рабочей версии отчета не было).
Вздохнул было, но потом опять ошибка возникла. И тут до меня дошло — проблема в пустых ячейках, где указан тип ячейки «Параметр», но не указано, значение какого параметра брать. Поменял тип на Текст — и все заработало.
Экие тонкости в 1С, однако!
Всё работало хорошо, но вдруг перестало, после того, как я внес изменения в макет СКД:
При формировании отчета появлялась надпись «Синтаксическая ошибка» и всё.
Когда убрал некоторые секции, методом деструктивного исключения обнаружил, что глючит зеленая секция.
Благо, CTRL+Z сработал и вернул изменения назад (каюсь, рабочей версии отчета не было).
Вздохнул было, но потом опять ошибка возникла. И тут до меня дошло — проблема в пустых ячейках, где указан тип ячейки «Параметр», но не указано, значение какого параметра брать. Поменял тип на Текст — и все заработало.
Экие тонкости в 1С, однако!
КомпоновщикМакета, синтаксическая ошибка при выполнении
мозг сломал, не понимаю из-за чего появляется ошибка.
Используется набор данных, данные определяются при компоновке через таблицу значений
Концовка процедуры
Схема = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить(«НаборДМС», ТЗ_ДМС);
//Инициализируем процессор компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
//Очищаем документ результата
ДокументРезультат.Очистить();
//Выводим отчет в документ
ПроцессорВывода = Новый
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Ошибка
Синтаксическая ошибка
<ВнешнийОтчет.ПриложениеКДоговору.МодульОбъекта(129)>:
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка
Как выцепить эту синтаксическую ошибку? В журнал ничего не пишется. Спасибо
Источник
Ошибка при программном выполнении отчета СКД
Платформа 8.2.19.130.
Хочу получить результат отчета в дерево значений. Выполняю код
[1c]
&НаСервере
Процедура СохранитьРезультатОтчетаСервер()
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ТекОтчет.СхемаКомпоновкиДанных, Отчет.КомпоновщикНастроек.Настройки. Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДЗ = Новый ДеревоЗначений;
КонецПроцедуры
[/1c]
Выходит ошибка
[1c]
<ОбщаяФорма.ФормаОтчетаУпрСКД.Форма(101)>: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «СервисОтчетов.ПолучитьСсылочноеЗначение»
[/1c]
В схеме один из параметров отчета (справочник ссылка) определяется вызовом функции общего модуля «СервисОтчетов».
У модуля установлены флаги «Клиент», «Сервер», «Вызов сервера».
Если заменить выражение Параметра на предопределенное значение, то все работает.
Неужели при программном выполнении отчета нельзя использовать вызов функций общих модулей?
Источник
Ошибка компоновки макета по причине ошибка в выражении по причине синтаксическая ошибка
Описание ошибки:
Отчет на СКД формируется программно. При этом используется одно вычисляемое поле, в выражении которого указана экспортная функция глобального модуля. При формировании отчета возникает ошибка: <Форма.ФормаОтчета.Форма(137)>: Ошибка при вызове метода контекста (Следующий) ЭлементРезультата = ПроцессорКомпановки.Следующий(); по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
Подробное изучение методической информации дало понять, что при программном выводе отчета в коде было отключено использование внешних функций. См. текст из синтаксис-помощника метода Инициализировать() процессора компоновки данных (ПроцессорКомпоновкиДанных):
Поэтому в код программного вывода отчета было добавлено отсутствующее условие (выделено жирным):
Но после этого СКД отказалсь вывести отчет, рапортуя ошибку:
<Форма.ФормаОтчета.Форма(137)>: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Функция не найдена «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
При этом функция по всем правилам была экспортной и к этому моменту проверок размещена в глобальном модуле. Поэтому название модуля было исключено из значения выражения вычисляемого поля системы компоновки данных и отчет вывелся.
А для случая, если функция для расчета выражения вычисляемого поля скд, размещена не в глобальном модуле, то необходимо указать и имя самого модуля, содержащего используемую функцию (пример рис. 01).
Источник
Несоответствие типов СхемаКомпоновкиДанных
Здравствуйте! Нужно изменить стандартный отчет Карточка количественно-суммового учета МЦ. Сохранил его во внешний, добился, чтобы запускалась форма. Но вот при формировании отчета постоянно ошибка. Конфигурация БГУ 2.0, платформа 8.3.8.1675. Управляемое приложение. Третий день бьюсь. Помогите пожалуйста!
Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
по причине:
Несоответствие типов (параметр номер ‘1’)
В данном методе первый параметр должен иметь тип СхемаКомпоновкиДанных, а получается строка
СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
Вот вся процедура
Процедура СформироватьОтчет(Знач ПараметрыОтчета, Результат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
Если ПараметрыОтчета.Свойство(«Схема») тогда
Если ЭтоАдресВременногоХранилища(ПараметрыОтчета.Схема) Тогда
//ОтчетОбъект = РеквизитФормыВЗначение(«Отчет»);
//СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
//СхемаКомпоновкиДанных = РеквизитФормыВЗначение(«Объект»).ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
КонецЕсли;
КонецЕсли;
//Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета);
ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиОбъект, ПараметрыОтчета.УникальныйИдентификатор);
//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
//Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Массив = Новый Массив;
//ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
Пока Истина Цикл
//ОбработкаПрерыванияПользователя();
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Если ЭлементРезультата.Макет = «Макет3» Тогда
Массив.Добавить(Результат.ВысотаТаблицы);
КонецЕсли;
КонецЕсли;
КонецЦикла;
//вставка разрыва страниц
ЭтоПервый = Истина;
КонечнаяОбласть = Неопределено;
ОбластьСтрок = Неопределено;
Пока Истина Цикл
Если ЭтоПервый Тогда
НайденнаяОбласть = Результат.НайтиТекст(«Карточку заполнил»);
ЭтоПервый = Ложь;
Иначе
НайденнаяОбласть = Результат.НайтиТекст(«Карточку заполнил»,КонечнаяОбласть);
КонецЕсли;
Если НайденнаяОбласть = Неопределено Тогда
Прервать;
КонецЕсли;
КонечнаяОбласть = Результат.НайтиТекст(«Дата»,НайденнаяОбласть);
Если КонечнаяОбласть<>Неопределено Тогда
ОбластьСтрок = Результат.Область(Лев(КонечнаяОбласть.Имя,Найти(КонечнаяОбласть.Имя,»C»)-1));
ОбластьСтрок.КонецСтраницы = Истина;
КонецЕсли;
КонецЦикла;
//убираем последний разрыв страницы
Если НЕ ОбластьСтрок = Неопределено Тогда
ОбластьСтрок.КонецСтраницы = Ложь;
КонецЕсли;
//Исключение
// ИнформацияОбОшибке = ИнформацияОбОшибке();
// Пока ИнформацияОбОшибке.Причина <> Неопределено Цикл
// ИнформацияОбОшибке = ИнформацияОбОшибке.Причина;
// КонецЦикла;
// ТекстСообщения = НСтр(«ru = ‘Отчет не сформирован!’») + Символы.ПС + ИнформацияОбОшибке.Описание;
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
// Отказ = Истина;
//КонецПопытки;
КонецПроцедуры
Буду благодарен за любые идеи и подсказки.
Источник
СКД, ошибка в вычисляемых полях
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «опМодуль.КореньКвадратный»
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «SQRT»
(8) А это уже странно. Тупо ради интереса запилил себе в первый попавшийся отчет эту функцию, вот этот столбец:
Корень из отрицательного числа
118,82
39,01
79,81
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
В СКД можно использовать функции глобальных и неглобальных общих модулей в вычисляемых полях при условии что функция объявлена как экспортная.
Есть только маленькая тонкость при программном формировании отчета СКД.
Обычно, при инициализации процессора компоновки данных делают так:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
При таком формировании отчета вызова функций не произойдет. Что бы эту возможность включить нужно сделать так
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Неверные параметры «*»
Источник
Конфигурация Управление сервисным центром от Рарус
До обновления работало все ок.
Сейчас если под пользователем зайти в Документы -> Учет времени, то ошибка при отображении списка документов
Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'Документ.УчетВремени', поле: 'Проведен'; право: 'Чтение'
{(38, 18)}: Синтаксическая ошибка ":"
НеверноеПраво<<?>>: Добавление
по причине:
{(38, 18)}: Синтаксическая ошибка ":"
НеверноеПраво<<?>>: Добавление
Если попытаться создать этот документ, то ошибка такая
Ошибка в ограничении доступа к данным.
объект: 'Документ.УчетВремени'; право: 'Чтение'
{(38, 18)}: Синтаксическая ошибка ":"
НеверноеПраво<<?>>: Добавление
по причине:
{(38, 18)}: Синтаксическая ошибка ":"
НеверноеПраво<<?>>: Добавление
Хотя если зайти под Администратором, то все документы видны и даже те которые попытался создать пользователь (но у него вышла ошибка).
В конфигураторе смотрел права на Документ.УчетВремени. В нем у роли ДобавлениеИзменениеСобытийИЗаданий проставлены все галочки (чтение, добавление, изменение и т.д.). У пользователей эта роль включена. Я даже пробовал все роли включить которые присутствуют в правах. Ничего не помогает если у пользователя не праставлена галочка ПолныеПрава. А полные права как известно нельзя давать.
Прошу дать совет куда копать, чтоб побороть эту ошибку…
СКД: Ошибка в СКД! |
Я |
Викуся
13.08.09 — 07:42
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «ОбщегоНазначения.ФамилияИнициалыФизЛица»
Возникает при программном формировании отчета:
СхемаКомпоновкиДанных = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ЭлементыФормы.Результат.Очистить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, );
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , );
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Викуся
1 — 13.08.09 — 07:43
+ при формировании по умолчанию ошибка не возникает!
Викуся
2 — 13.08.09 — 07:47
+ выражение ОбщегоНазначения.ФамилияИнициалыФизЛица(Контрагент.Наименование) используется в вычисляемых полях
Bugmenot
3 — 13.08.09 — 08:09
(0) хех! )
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ,Истина);
Викуся
4 — 13.08.09 — 09:55
(3)Ура! Заработало))
Викуся
5 — 13.08.09 — 10:08
(3)А напиши еще как 2 разные схемы устанавливать в зависимости от условий? Параметры заполняются при открытии, а когда вторую устанавливаю, как их скопировать?
lxs
6 — 13.08.09 — 10:12
(5)
СхемаКомпоновкиДанных = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
Вместо «ОсновнаяСхемаКомпоновкиДанных» ставишь название нужной..
Викуся
7 — 13.08.09 — 10:27
(6)это я итак написала, см(0).а параметры не заполняются
lxs
8 — 13.08.09 — 11:24
А ты уверена, что настройки первой схемы не вызовут конфликтов при применении их ко второй?
Если да, то вот это
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
для второй схемы делать уже не надо.
Но, их надо предварительно получить из первой.
Попробуй.
Викуся
9 — 13.08.09 — 11:42
(8)>>А ты уверена, что настройки первой схемы не вызовут конфликтов при применении их ко второй
у меня тот же запрос,только групировки по-разному расположены в этих схемах. Это не повод для конфликтов?
Викуся
10 — 13.08.09 — 11:44
(8)Тогда что писать вместо Настройки в:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, );
IronDemon
11 — 13.08.09 — 11:47
(5) Может лучше параметры установить программно?
(10)
СхемаКомпоновкиДанных = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,);
СхемаКомпоновкиДанных2 = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных2»);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных2, Настройки, );
Викуся
12 — 13.08.09 — 11:53
(11)Не поняла. Что такое в твоем листинге Настройки? Откуда они берутся?
IronDemon
13 — 13.08.09 — 11:55
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Настройки = СхемаКомпоновкиДанных2.НастройкиПоУмолчанию;
Я думал ты догадаешься.
lxs
14 — 13.08.09 — 11:58
(13) для второго случая
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных2, Настройки, );
ей надо использовать тогда
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Викуся
15 — 13.08.09 — 12:04
(14)так он получит настройки по умолчанию, а не настройки с установленными параметрами?
КомпоновщикНастроекКомпоновкиДанных (DataCompositionSettingsComposer)
Свойства:
Настройки (Settings)
Методы:
Восстановить (Refresh)
ЗагрузитьНастройки (LoadSettings)
Инициализировать (Initialize)
ПолучитьНастройки (GetSettings)
РазвернутьАвтоПоля (ExpandAutoFields)
Конструкторы:
По умолчанию
Описание:
Описывает связь настроек компоновки данных и схемы компоновки данных.
См. также:
ОтчетОбъект, свойство КомпоновщикНастроек
ВнешнийОтчет, свойство КомпоновщикНастроек
Содержание
- КомпоновщикМакета, синтаксическая ошибка при выполнении
- Ошибка при программном выполнении отчета СКД
- Ошибка компоновки макета по причине ошибка в выражении по причине синтаксическая ошибка
- Несоответствие типов СхемаКомпоновкиДанных
- СКД, ошибка в вычисляемых полях
КомпоновщикМакета, синтаксическая ошибка при выполнении
мозг сломал, не понимаю из-за чего появляется ошибка.
Используется набор данных, данные определяются при компоновке через таблицу значений
Концовка процедуры
Схема = ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить(«НаборДМС», ТЗ_ДМС);
//Инициализируем процессор компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
//Очищаем документ результата
ДокументРезультат.Очистить();
//Выводим отчет в документ
ПроцессорВывода = Новый
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Ошибка
Синтаксическая ошибка
<ВнешнийОтчет.ПриложениеКДоговору.МодульОбъекта(129)>:
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка
Как выцепить эту синтаксическую ошибку? В журнал ничего не пишется. Спасибо
Источник
Ошибка при программном выполнении отчета СКД
Платформа 8.2.19.130.
Хочу получить результат отчета в дерево значений. Выполняю код
[1c]
&НаСервере
Процедура СохранитьРезультатОтчетаСервер()
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ТекОтчет.СхемаКомпоновкиДанных, Отчет.КомпоновщикНастроек.Настройки. Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДЗ = Новый ДеревоЗначений;
КонецПроцедуры
[/1c]
Выходит ошибка
[1c]
<ОбщаяФорма.ФормаОтчетаУпрСКД.Форма(101)>: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «СервисОтчетов.ПолучитьСсылочноеЗначение»
[/1c]
В схеме один из параметров отчета (справочник ссылка) определяется вызовом функции общего модуля «СервисОтчетов».
У модуля установлены флаги «Клиент», «Сервер», «Вызов сервера».
Если заменить выражение Параметра на предопределенное значение, то все работает.
Неужели при программном выполнении отчета нельзя использовать вызов функций общих модулей?
Источник
Ошибка компоновки макета по причине ошибка в выражении по причине синтаксическая ошибка
Описание ошибки:
Отчет на СКД формируется программно. При этом используется одно вычисляемое поле, в выражении которого указана экспортная функция глобального модуля. При формировании отчета возникает ошибка: <Форма.ФормаОтчета.Форма(137)>: Ошибка при вызове метода контекста (Следующий) ЭлементРезультата = ПроцессорКомпановки.Следующий(); по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
Подробное изучение методической информации дало понять, что при программном выводе отчета в коде было отключено использование внешних функций. См. текст из синтаксис-помощника метода Инициализировать() процессора компоновки данных (ПроцессорКомпоновкиДанных):
Поэтому в код программного вывода отчета было добавлено отсутствующее условие (выделено жирным):
Но после этого СКД отказалсь вывести отчет, рапортуя ошибку:
<Форма.ФормаОтчета.Форма(137)>: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Функция не найдена «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
При этом функция по всем правилам была экспортной и к этому моменту проверок размещена в глобальном модуле. Поэтому название модуля было исключено из значения выражения вычисляемого поля системы компоновки данных и отчет вывелся.
А для случая, если функция для расчета выражения вычисляемого поля скд, размещена не в глобальном модуле, то необходимо указать и имя самого модуля, содержащего используемую функцию (пример рис. 01).
Источник
Несоответствие типов СхемаКомпоновкиДанных
Здравствуйте! Нужно изменить стандартный отчет Карточка количественно-суммового учета МЦ. Сохранил его во внешний, добился, чтобы запускалась форма. Но вот при формировании отчета постоянно ошибка. Конфигурация БГУ 2.0, платформа 8.3.8.1675. Управляемое приложение. Третий день бьюсь. Помогите пожалуйста!
Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
по причине:
Несоответствие типов (параметр номер ‘1’)
В данном методе первый параметр должен иметь тип СхемаКомпоновкиДанных, а получается строка
СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
Вот вся процедура
Процедура СформироватьОтчет(Знач ПараметрыОтчета, Результат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
Если ПараметрыОтчета.Свойство(«Схема») тогда
Если ЭтоАдресВременногоХранилища(ПараметрыОтчета.Схема) Тогда
//ОтчетОбъект = РеквизитФормыВЗначение(«Отчет»);
//СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
//СхемаКомпоновкиДанных = РеквизитФормыВЗначение(«Объект»).ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
КонецЕсли;
КонецЕсли;
//Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета);
ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиОбъект, ПараметрыОтчета.УникальныйИдентификатор);
//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
//Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Массив = Новый Массив;
//ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
Пока Истина Цикл
//ОбработкаПрерыванияПользователя();
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Если ЭлементРезультата.Макет = «Макет3» Тогда
Массив.Добавить(Результат.ВысотаТаблицы);
КонецЕсли;
КонецЕсли;
КонецЦикла;
//вставка разрыва страниц
ЭтоПервый = Истина;
КонечнаяОбласть = Неопределено;
ОбластьСтрок = Неопределено;
Пока Истина Цикл
Если ЭтоПервый Тогда
НайденнаяОбласть = Результат.НайтиТекст(«Карточку заполнил»);
ЭтоПервый = Ложь;
Иначе
НайденнаяОбласть = Результат.НайтиТекст(«Карточку заполнил»,КонечнаяОбласть);
КонецЕсли;
Если НайденнаяОбласть = Неопределено Тогда
Прервать;
КонецЕсли;
КонечнаяОбласть = Результат.НайтиТекст(«Дата»,НайденнаяОбласть);
Если КонечнаяОбласть<>Неопределено Тогда
ОбластьСтрок = Результат.Область(Лев(КонечнаяОбласть.Имя,Найти(КонечнаяОбласть.Имя,»C»)-1));
ОбластьСтрок.КонецСтраницы = Истина;
КонецЕсли;
КонецЦикла;
//убираем последний разрыв страницы
Если НЕ ОбластьСтрок = Неопределено Тогда
ОбластьСтрок.КонецСтраницы = Ложь;
КонецЕсли;
//Исключение
// ИнформацияОбОшибке = ИнформацияОбОшибке();
// Пока ИнформацияОбОшибке.Причина <> Неопределено Цикл
// ИнформацияОбОшибке = ИнформацияОбОшибке.Причина;
// КонецЦикла;
// ТекстСообщения = НСтр(«ru = ‘Отчет не сформирован!’») + Символы.ПС + ИнформацияОбОшибке.Описание;
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
// Отказ = Истина;
//КонецПопытки;
КонецПроцедуры
Буду благодарен за любые идеи и подсказки.
Источник
СКД, ошибка в вычисляемых полях
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «опМодуль.КореньКвадратный»
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «SQRT»
(8) А это уже странно. Тупо ради интереса запилил себе в первый попавшийся отчет эту функцию, вот этот столбец:
Корень из отрицательного числа
118,82
39,01
79,81
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
В СКД можно использовать функции глобальных и неглобальных общих модулей в вычисляемых полях при условии что функция объявлена как экспортная.
Есть только маленькая тонкость при программном формировании отчета СКД.
Обычно, при инициализации процессора компоновки данных делают так:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
При таком формировании отчета вызова функций не произойдет. Что бы эту возможность включить нужно сделать так
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Неверные параметры «*»
Источник
1C 8 Система компоновки данных (СКД): вывод вычисляемых полей при программном формировании отчета
Описание ошибки:
Отчет на СКД формируется программно. При этом используется одно вычисляемое поле, в выражении которого указана экспортная функция глобального модуля. При формировании отчета возникает ошибка:
{Форма.ФормаОтчета.Форма(137)}: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
Найденные решения:
Подробное изучение методической информации дало понять, что при программном выводе отчета в коде было отключено использование внешних функций. См. текст из синтаксис-помощника метода Инициализировать() процессора компоновки данных (ПроцессорКомпоновкиДанных):
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>),
где <ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
Поэтому в код программного вывода отчета было добавлено отсутствующее условие (выделено жирным):
ПроцессорКомпановки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпановки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
Но после этого СКД отказалсь вывести отчет, рапортуя ошибку:
{Форма.ФормаОтчета.Форма(137)}: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Функция не найдена «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
При этом функция по всем правилам была экспортной и к этому моменту проверок размещена в глобальном модуле. Поэтому название модуля было исключено из значения выражения вычисляемого поля системы компоновки данных и отчет вывелся.
А для случая, если функция для расчета выражения вычисляемого поля скд, размещена не в глобальном модуле, то необходимо указать и имя самого модуля, содержащего используемую функцию (пример рис. 01).
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
22-05-2015
Журавлев А.С.
(www.azhur-c.ru)
Добрый день подскажите пожалуйста что значит «Синтаксическая ошибка» при формировании материального отчета (МХ-20). Заранее спасибо.
1С:Предприятие 8.3 (8.3.6.2100)
Бухгалтерия предприятия, редакция 3.0 (3.0.41.49) (http://v8.1c.ru/buhv8/)
Copyright (С) ООО «1C», 2009 — 2015. Все права защищены
(http://www.1c.ru)
Добрый день!
Приведите точный текст ошибки либо приложите скриншот ошибки.
Заполнить и подать уведомление об исчисленных суммах налогов и взносов
Добрый день!
Попробуйте сделать так:
при запуске программы удалите вашу базу из общего списка баз (предварительно запомнив путь к этой базе, он всегда прописан внизу). Потом по кнопке «Добавить» добавьте базу обратно в список. Таким образом кэш почистится и может быть проблема уйдет. Если не уйдет — ждем скриншот с описанием ошибки, и какой отчет формируете (типовой, или внешний, дописанный кем-то)
Добрый день!
Цитата (Бэлла КСК):формировании материального отчета (МХ-20).
В типовой конфигурации нет такой печатной формы, свяжитесь с тем кто ее для вас писал.
Цитата (Jilt):Добрый день!
Попробуйте сделать так:
при запуске программы удалите вашу базу из общего списка баз (предварительно запомнив путь к этой базе, он всегда прописан внизу). Потом по кнопке «Добавить» добавьте базу обратно в список. Таким образом кэш почистится и может быть проблема уйдет
Так и не понял, как очистка кэша скажется на внешнем отчете?🤦♀️
p.s. Кстати, кэш так не чистится, а уничтожается привязка его к данной базе. А в виде мусора на диске он остался.
Цитата (Культурный):Кстати, кэш так не чистится, а уничтожается привязка его к данной базе
Я очень даже часто так чищу, другое дело в этом случае это не поможет. При этом у базы теряется связь со старым «мусором» и появляется новый кэш. 😉
При работе с клиентом по телефону/в эл.письме как вы еще сможете ему подсказать? Ведь очень часто задача стоит не навести порядок на диске клиента, а запустить базу.
Заполняйте платежки с актуальными на сегодня КБК, кодами дохода и другими обязательными реквизитами
Добрый день, скриншот почему то не могу прикрепить, а вообще так и пишет «синтаксическая ошибка»
Цитата (Культурный):Так и не понял, как очистка кэша скажется на внешнем отчете?
p.s. Кстати, кэш так не чистится, а уничтожается привязка его к данной базе. А в виде мусора на диске он остался.
Вы когда решите в следующий раз чей-то вариант решения поправлять или критиковать, не забудьте предложить свой вариант действий — а то задающий вопрос рискует остаться без какой-либо помощи. А чтобы «мусор на диске» чистить — это еще надо уточняющие вопросы про ОС на компьютере задавать, а если там серверный вариант работы? Поэтому и был предложен оперативный вариант по отвязке старого кэша от базы
Бэлла КСК, между последним положительным формированием этого отчета и сегодняшним днем какие-то действия с базой выполнялись? Обновление ставили в этот период, права и роли для пользователей добавляли/меняли? Просто это может действительно сменилось наименование какого-то из реквизитов в коде, а во внешнем отчете идет привязка к старому наименованию. Тогда лучше обратиться к разработчикам отчета.
Цитата (Jilt):Вы когда решите в следующий раз чей-то вариант решения поправлять или критиковать, не забудьте предложить свой вариант действий
Так я не критикую, а говорю, что этот «вариант решения» никакого отношения к поставленной проблеме не имеет!
Вариант решения был прописан перед моим сообщением — внешний отчет должен исправлять его автор.
Цитата (Культурный):Так я не критикую, а говорю, что этот «вариант решения» никакого отношения к поставленной проблеме не имеет!
Вариант решения был прописан перед моим сообщением — внешний отчет должен исправлять его автор.
Я в таких случаях, когда в теме присутствуют и ответы по существу и не имеющие отношения к проблеме, просто «прохожу мимо». А Вы, видя, что ответ по существу уже был дан, не написали «последуйте совету Татьяны и обратитесь к автору внешнего отчета, очистка кэша не поможет в этом случае».
Вы написали
Цитата (Культурный): Так и не понял, как очистка кэша скажется на внешнем отчете?
Вопрос «как скажется?» это не одно и то же с утверждением «чистка кэша отношения не имеет».
Вести помарочный учет по новым правилам и отправлять данные в ЕГАИС
Цитата (Jilt):Бэлла КСК, между последним положительным формированием этого отчета и сегодняшним днем какие-то действия с базой выполнялись? Обновление ставили в этот период, права и роли для пользователей добавляли/меняли? Просто это может действительно сменилось наименование какого-то из реквизитов в коде, а во внешнем отчете идет привязка к старому наименованию. Тогда лучше обратиться к разработчикам отчета.
Добрый день, да обновления производили, представители 1С с которыми мы работаем каждый месяц это делают, хотела попробовать , не вызывая их решить эту проблему, спасибо,обращусь к ним.
SerGa
04.02.11
✎
12:26
В общем модуле Доработки объявил экспортную функцию
Функция СокрПроб(Стр) Экспорт
Возврат СокрЛП(Стр);
КонецФункции
В выражении представления для строкового поля Комментарий написал:
Доработки.СокрПроб(Комментарий)
но при формировании СКД выдает ошибку
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «Доработки.СокрПроб»
и закрывает программу
что я делаю не так?
kinsm
04.02.11
✎
12:34
Галка «Клиент» стоит?
SerGa
04.02.11
✎
12:34
стоит
SerGa
04.02.11
✎
12:45
ир
kinsm
04.02.11
✎
12:47
Программно отчет выводишь?
SerGa
04.02.11
✎
13:01
ДА
Point
04.02.11
✎
13:08
(0)
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки,ВОТ ЗДЕСЬ НУЖНО ПОСТАВИТЬ «ИСТИНА»);
SerGa
04.02.11
✎
13:48
(6) вот спасибо! никогда бы сам не догадался!
Dakka 0 / 0 / 0 Регистрация: 27.02.2023 Сообщений: 4 |
||||
1 |
||||
Синтаксическая ошибка в запросе даты27.02.2023, 07:29. Показов 714. Ответов 9 Метки нет (Все метки)
Не программист никак, сделал отчёт через консоль отчётов , и не могу ограничить параметрами.
0 |
27 / 18 / 9 Регистрация: 26.02.2023 Сообщений: 62 |
|
27.02.2023, 07:40 |
2 |
Ошибка синтаксиса возникает из-за того, что в запросе не указан параметр «Период1», который был задан пользователем. Для того, чтобы исправить ошибку, необходимо добавить параметр в запрос, установить его значение и использовать в условии.
0 |
Dakka 0 / 0 / 0 Регистрация: 27.02.2023 Сообщений: 4 |
||||
27.02.2023, 07:54 [ТС] |
3 |
|||
Видимо что то не так делаю: «{ВнешнийОтчет.ОтчетФН.Форма.ФормаОтчета.Форма(50)}: Ошибка при вызове метода контекста (Выполнить)
0 |
27 / 18 / 9 Регистрация: 26.02.2023 Сообщений: 62 |
|
27.02.2023, 08:02 |
4 |
Ошибка возникает из-за неправильного использования оператора МЕЖДУ в запросе. В строке «| Период МЕЖДУ &Период1 И &Период2» оператор МЕЖДУ используется для проверки значения поля «Период» находится между значениями параметров «&Период1» и «&Период2». Однако в данном случае параметры «&Период1» и «&Период2» не были определены в коде перед запросом, что приводит к ошибке «Синтаксическая ошибка ‘Период'». Для исправления ошибки необходимо определить параметры «&Период1» и «&Период2» перед выполнением запроса.
0 |
1603 / 1022 / 389 Регистрация: 31.05.2012 Сообщений: 3,603 |
|
27.02.2023, 08:03 |
5 |
соедини условие на период с предыдущим условием, с помощью И например. что в 1-ом, что во 2-ом запросе
0 |
120 / 98 / 28 Регистрация: 12.11.2015 Сообщений: 757 |
|
27.02.2023, 10:33 |
6 |
Что такое «Период2» вообще? Как вы его в запросе объявляете? Это реквизит документа, регистра? Или это передающий параметр? Видно, что данный запрос дорабатывался не в конструкторе, поэтому и ошибки…
0 |
Dakka 0 / 0 / 0 Регистрация: 27.02.2023 Сообщений: 4 |
||||
28.02.2023, 07:29 [ТС] |
7 |
|||
Да ошибка связана с тем что я не могу(не знаю как) определить параметры, если ставлю перед запросом
, то это ни на что не влияет, в ВЫБРАТЬ ставлю Период1, Период2, тоже не определяет, естественно любые действия с этими параметрами приводят к ошибке «Синтаксическая ошибка ‘Период'». Как определить эти параметры в запросе? Добавлено через 6 минут Что такое «Период2» вообще? Как вы его в запросе объявляете? Это реквизит документа, регистра? Или это передающий параметр? Есть 2 параметра(даты) задаваемые пользователем: Период1 и Период2. В запросе я не понимаю как объявить, как ни пытался не получается. Период это реквизит документа, он должен попадать в границы между Период1 и Период2. Видно, что данный запрос дорабатывался не в конструкторе, поэтому и ошибки… Я сразу в этом признался, но ограничения по периодам там не формируются, хотя эти параметры можно использовать в ручную.
0 |
slypower 120 / 98 / 28 Регистрация: 12.11.2015 Сообщений: 757 |
||||
28.02.2023, 08:15 |
8 |
|||
Сообщение было отмечено Dakka как решение Решение
Да ошибка связана с тем что я не могу(не знаю как) определить параметры, если ставлю перед запросом Вот здесь все верно. А в запрос параметр передается не верно.
1 |
Yulunga 1231 / 763 / 218 Регистрация: 22.04.2013 Сообщений: 5,589 Записей в блоге: 1 |
||||
28.02.2023, 08:18 |
9 |
|||
Сообщение было отмечено Dakka как решение Решение
| ГДЕ
1 |
0 / 0 / 0 Регистрация: 27.02.2023 Сообщений: 4 |
|
28.02.2023, 08:26 [ТС] |
10 |
Большое спасибо : slypower , Yulunga. Всё заработало!
0 |
Всё работало хорошо, но вдруг перестало, после того, как я внес изменения в макет СКД:
При формировании отчета появлялась надпись «Синтаксическая ошибка» и всё.
Когда убрал некоторые секции, методом деструктивного исключения обнаружил, что глючит зеленая секция.
Благо, CTRL+Z сработал и вернул изменения назад (каюсь, рабочей версии отчета не было).
Вздохнул было, но потом опять ошибка возникла. И тут до меня дошло — проблема в пустых ячейках, где указан тип ячейки «Параметр», но не указано, значение какого параметра брать. Поменял тип на Текст — и все заработало.
Экие тонкости в 1С, однако!
Вычисляемое поле в СКД — Синтаксическая ошибка |
Я |
Klesk
20.12.22 — 16:02
Что не так?
Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)).Количество()>0 Тогда
УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»))[0].Значение
Конец
Klesk
1 — 20.12.22 — 16:06
[1C]
Klesk
2 — 20.12.22 — 16:08
Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение Конец
Klesk
3 — 20.12.22 — 16:11
Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение Конец
убрал Объект, все равно
Гипервизор
4 — 20.12.22 — 16:29
(0) Что за ошибка-то? Этот модуль можно использовать в выражениях СКД?
Klesk
5 — 20.12.22 — 16:36
(4) Синтаксическая ошибка
{ОбщаяФорма.ФормаОтчета.Форма(1148)}: СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
{ОбщаяФорма.ФормаОтчета.Форма(594)}: СформироватьНепосредственно();
по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
Синтаксическая ошибка
{ВнешнийОтчет.ВыручкаИСебестоимостьПродажСПочтовымиАдресами.МодульОбъекта(18)}: МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
{ОбщаяФорма.ФормаОтчета.Форма(1148)}: СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении «(Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)).Количество()>0 Тогда
УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»))[0].Значение
Конец)»
по причине:
Синтаксическая ошибка
Klesk
6 — 20.12.22 — 16:42
Общий модуль конфигурации
Сервер, Внешнее соединение, Клиент (обычное приложение)
Если оставить только УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»))
ошибки нет
vicof
7 — 20.12.22 — 16:51
УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)) = Неопределено у каких-нибудь записей
Klesk
8 — 20.12.22 — 17:22
(7) там Возврат Запрос.Выполнить().Выгрузить();
в любом случае таблица
Kassern
9 — 20.12.22 — 17:25
(8) А зачем это делать в вычисляемом поле? Если речь идет про СКД, что мешает там получить нужную таблицу и привязать ее к основной?
Klesk
10 — 20.12.22 — 17:27
(9) нет, я могу и функцию запилить в общем модуле, просто интересно, почему так не получается
Kassern
11 — 20.12.22 — 17:28
(10) Потому что это корявое решение, пытаться получить таблицу в вычисляемое поле.
Kassern
12 — 20.12.22 — 17:30
Имхо все дело в синтаксисе, которые не проходит ваше выражение из-за точки.
Kassern
13 — 20.12.22 — 17:30
К функции вы можете обратиться, а вот через точку получить результат — вряд ли.
Klesk
14 — 20.12.22 — 17:30
(11) согласен, просто изначально думал это будет проще типовыми методами
Renium1963
15 — 20.12.22 — 17:31
А разве так можно «[0].Значение» ?
Kassern
16 — 20.12.22 — 17:32
(14) вы можете написать еще одну функцию, которая вернет первый элемент таблицы, либо неопределено (к примеру). И вот уже ее использовать, но все равно это корявое решение имхо))
vicof
17 — 20.12.22 — 17:37
Почта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеОСотруднике.ФизическоеЛицо, Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица, ТекущаяДата, Истина);
Kassern
18 — 20.12.22 — 17:38
(17) А если у физического лица несколько почтовых ящиков?
vicof
19 — 20.12.22 — 17:43
(18) Или свою функцию запилить, чтобы возвращали список одной строчкой. Или сделать несколько полей для контактной информации, или брать первый. Для начала можно почитать задачу, а там уже принимать решение.
Klesk
20 — 20.12.22 — 19:12
(15) да, нельзя
Выражение вычисляемого поля описывается на языке выражений компоновки данных. В выражениях вычисляемого поля есть ограничение — в нем нельзя использовать вычисляемые поля.
https://its.1c.ru/db/metod8dev/content/1810/hdoc
Klesk
21 — 20.12.22 — 20:23
я «победил»… всё выводится
ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)),»Значение»)
Klesk
22 — 20.12.22 — 20:23
[1C]ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)),»Значение»)[1C]
Klesk
23 — 20.12.22 — 20:23
[1С]ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение(«Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты»)),»Значение»)[1С]
Renium1963
24 — 21.12.22 — 10:43
(21) Ну, вот и все… а сколько бумаги исписали то на комментарии )))
Синтаксическая ошибка в запросе СКД
Автор Лесной Лес, 28 апр 2015, 16:17
0 Пользователей и 1 гость просматривают эту тему.
Не могу понять в чем ошибка синтаксиса при использовании функции Разностьдат
ВЫБРАТЬ
Номенклатура.НаименованиеПолное,
Номенклатура.Сертификат.ДатаОкон,
Номенклатура.Сертификат.СрокДейст
РАЗНОСТЬДАТ(Номенклатура.Сертификат.ДатаОкон, Номенклатура.Сертификат.СрокДейст, День)
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
(Номенклатура.Сертификат.СрокДейст < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, &Дни)
ИЛИ Номенклатура.Сертификат.ДатаОкон < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, &Дни))
Параметры вроде все указал
Может дата пустая, поэтому и возникает ошибка.
Разобрался. Строка написана руками. При написании с использованием конструктора запросов в СКД та же самая строчка работает нормально.
Видимо какой-то локальный глюк 1с.
Теги:
- Форум База
-
►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 -
►
Конфигурирование, программирование в 1С Предприятие 8 -
►
Синтаксическая ошибка в запросе СКД
Похожие темы (5)
Поиск
Здравствуйте, уважаемый форум.Очень прошу помощи.В типовом отчете «Расчетные листки» меняю макет, при этом заполняя параметры группировок и изменяя в варианте вывода отчета группировки.Но при запуске отчета получаю ошибку Код {ВнешнийОтчет.РасчетныеЛистки.МодульОбъекта}: Ошибка при вызове метода контекста (Выполнить) МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); по причине: Ошибка компоновки макета по причине: Ошибка в выражении по причине: Синтаксическая ошибка Заранее благодарна за любые советы,идеи, мысли
Простите, что не точно охарактеризовала проблему.никак не найду ,можно ли на форуме добавить рисунок. а синтаксическая ошибка возникла после того, как я некоторые строки макета разбила и перенесла в другую группировку
выгрузи схему после изменений и попробуй запихнуть ее в консоль скд
«Рисунок» заливаю на а сюда ссылку на него. В профиль вставь фотку. Только так можно ожидать помощи…
20 лет ребенку… не занимайтесь педофилией
Какая педофилия после 18-ти?))) Уже можно во все тяжкие))
Ваше внимание к моей персоне,несомненно, мне приятно.Но если можно,пожалуйста, давайте вернемся к теме. Фото обещаю выложить
Все так говорят… А вот ты выложи сначала
И на ничего не понятно… Хоть бы обвела куда смотреть…
был внешний вид рис.1, стал рис.2.Данные остались те же, что и были. Параметры в новых группировках заполнила.
Все параметры перенесла? в других макетах все так же осталось? Уверена?
да, уверена. параметров пустых ни в одной группировке нет. других макетов нет
У меня в 2.5.66 не открывается. Предыдущие релизы ставить лень
В других макетах в том же отчете. Имею ввиду макеты других группировок и полей, которые уже описаны в станадртном отчете
УПП поди для Украины. sweety-twetty 10 — 10.12.12 — 18:16 Клятвенно обещаю фотографию
Но вообще, они как две капли воды похожи были с год назад
я в теме писала — у меня УПП. в других группировках все заполнено
фото вроде бы отправила. Захожу в профиль фото старое, при попытке изменить новая фотка
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
bless18 |
|
||
---|---|---|---|
Добрый день! |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
(0) bless18, так этот функционал по умолчанию сам настроен. Правк клавишей мыши, новый элемент. |
bless18 |
|
||
---|---|---|---|
В режме предприятие доступны сейчас варианты ВывестиСписок и НастройкаСписка.. |
E_Migachev |
|
||
---|---|---|---|
(2) bless18, на форме это табличное поле, какой его тип? |
bless18 |
|
||
---|---|---|---|
На форме это ПанельОтбора |
bless18 |
|
||
---|---|---|---|
С табличной частью, тип которой КомпоновщикНастроек.Настройки.Отбор |
bless18 |
|
||
---|---|---|---|
Это данные |
E_Migachev |
|
||
---|---|---|---|
да вроде все правильно. |
bless18 |
|
||
---|---|---|---|
почему-то нет, если только задать отбор в настройке отчета в режиме Предприятие |
E_Migachev |
|
||
---|---|---|---|
(8) bless18, воттт.. что-то не так *09 |
bless18 |
|
||
---|---|---|---|
Спасибо за совет. |
bless18 |
|
||
---|---|---|---|
а при формировании отчета выдается ошибка: Ошибка компоновки макета |
E_Migachev |
|
||
---|---|---|---|
(11) bless18, зайди в конструктор запроса в СКД, там увидишь чего за ошибка |
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или . |