Процессоркомпоновкиданных инициализировать ошибка

1C
1С v8
Ошибка программной инициализации ПроцессораКомпоновкиДанных
0

ЭЦ

naïve

04.04.13

16:34

ГОСПОДА !

Имеется отчет на СКД.

В схеме компоновки имеется параметр с выражением

Справочники.ПодразделенияОрганизаций.НайтиПоКоду(«000000064»)

отчет нормально работает.

Теперь надо его запустить из формы документа

//—————————-

Отчет = Отчеты.sРезультатыОпроса.Создать();

СхемаКомпоновкиДанных = Отчет.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);

ЭлтНастройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(«ОПРОС»);

ЭлтНастройки.Значение = Ссылка;

ЭлтНастройки.Использование = Истина;

Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(«Опрос»,Ссылка);

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

//————————-

Вылетает при инициализации ПроцессораКомпоновки с диагностикой

Синтаксическая ошибка «Справочники.ПодразделенияОрганизаций.НайтиПоКоду»

В чем тут может быть?

Прошу подсказать.

1

ЭЦ

naïve

04.04.13

16:56

Вот так срабатывает :

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина);

TurboConf — расширение возможностей Конфигуратора 1С

Обновлено: 27.01.2023

Доброго всем дня.
В СКД в запросе использую параметр ТекДата, на вкладке Параметры в поле Выражение пишу ТекущаяДата(). Отчёт даже не открывается, пишет «значение не является значением объектного типа (ДоступныеЗначения)». Что это? 1С сломала выражения для параметров СКД на управляемых формах?

Всем спасибо, выяснилось, что я когда копировал отчёт, не посмотрел что там в форме ПриОткрытии написано обращение к одному из параметров, которых в новом отчёте нет. Блин, плохо когда ошибка такая неинформативная, непонятно, на какое поле ругается.

какая версия платформы ?
у меня на 8.3.14.1694 работает

«значение не является значением объектного типа ( ДоступныеЗначения )»

(4) Я умею читать. Только в этом поле ничего нет. Поэтому и спрашиваю.

(6) Ну, так ругается на «Доступные значения», поле которых есть не только на вкладке «Параметры», но и на первой вкладке, «Наборы данных», если параметр используется как поле.
Из-за того, что не было предоставлено ни скринов, ни самого отчета, непонятно, что в отчете заполнено правильно, а что нет.
Еще возможно, сломались настройки сохраненного варианта, можно попробовать сбросить на по умолчанию.
Как заметили в (2) указанное выражение работает, в том числе и на 8.3.16.1296 (проверено мной).
Для самостоятельной проверки повторения проблемы достаточно создать пустой отчет с единственным параметром, и проверить его (отчета) открытием.

(3) Я вроде русским языком написал — «пишу в поле Выражение»

ТекущаяДатаСеанса() не подойдёт?
И еще момент — может ДоступныеЗначения поломались? Список с пустыми или битыми значениями, например.

Всем спасибо, выяснилось, что я когда копировал отчёт, не посмотрел что там в форме ПриОткрытии написано обращение к одному из параметров, которых в новом отчёте нет. Блин, плохо когда ошибка такая неинформативная, непонятно, на какое поле ругается.

(9) Если ошибка возникала в обработчике события ПриОткрытии(), то все там должно быть информативно. Нужно было всего лишь, нажать кнопку «Подробно» и скопировать весь текст от туда сюда в тему при составлении своего вопроса. Там должен был быть и кусок кода, и название модуля, и номер стоки в нем.
А так это ваш вопрос абсолютно не информативен: ни полного текста ошибки, ни скринов, ни отчета.

Преподаватель 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Временный (на проект)

На ИТС нашёл упоминание, что ТекущаяДата() работает в СКД (в справке про это ни слова), про другие методы описанные в статье ничего не нашёл.

Как собиралась информация: открыл в СП раздел «Глобальный контекст» и все методы проверял в СКД. Функции, которые помнил, что есть в СКД пропускал как заведомо рабочие. Также пропускал методы заведомо не рабочие, например ПоказатьВопрос. Прошёлся методом перебора по порядку по разделам «Функции работы со значениями типа Строка», «Функции работы со значениями типа Число», «Функции работы со значениями типа Дата» и т.д. до «Процедуры и функции сохранения значений».

Следующие за ним разделы решил не проверять, т.к. они явно не для работы из чистого СКД (например «Процедуры и функции работы с операционной системой», «Процедуры и функции работы с внешними компонентами» и т.д.).

Проверял в СКД на данных полученные запросом:

Перечень методов глобального контекста работающих в СКД на платформе «8.3.8.1652» «8.3.7.1845», «8.3.6.2390» и «8.2.19.130» в управляемом приложении клиенте:

  1. СтрНайти (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130). Найти на 8.2.19.130 тоже не работает.
  2. СтрСравнить (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  3. СтрНачинаетсяС (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  4. СтрЗаканчиваетсяНа (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  5. СтрРазделить (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  6. СтрСоединить (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  7. ТекущаяДата()
  8. СтрШаблон (не работает на 8.3.7.1845, 8.3.6.2390 и 8.2.19.130)
  9. ЧислоПрописью
  10. НСтр
  11. ПредставлениеПериода
  12. ПолучитьОбщийМакет
  13. ПредопределенноеЗначение
  14. ПолучитьПолноеИмяПредопределенногоЗначения
  15. ПолучитьСкоростьКлиентскогоСоединения()
  16. ИмяКомпьютера()
  17. ИмяПользователя()
  18. ПолноеИмяПользователя()
  19. КаталогПрограммы()
  20. КаталогВременныхФайлов()
  21. ПравоДоступа – тут надо разбираться как передать ОбъектМетаданных в параметр
  22. РольДоступна
  23. ТекущийЯзык()
  24. ТекущийКодЛокализации()
  25. СтрокаСоединенияИнформационнойБазы()
  26. ПараметрыДоступа – тут надо разбираться как передать ОбъектМетаданных в параметр
  27. ПредставлениеПриложения
  28. ТекущийЯзыкСистемы()
  29. ТекущийРежимЗапуска()
  30. ЧасовойПоясСеанса()
  31. ТекущаяДатаСеанса()
  32. ПредставлениеПрава
  33. ПолучитьИнформациюЭкрановКлиента() (не работает на 8.2.19.130)
  34. ТекущийВариантОсновногоШрифтаКлиентскогоПриложения() (не работает на 8.2.19.130)
  35. ТекущийВариантИнтерфейсаКлиентскогоПриложения() (не работает на 8.2.19.130)
  36. ЗначениеВСтрокуВнутр
  37. ЗначениеИзСтрокиВнутр
  38. ПолучитьИмяВременногоФайла()
  39. ЗначениеЗаполнено (зачеркнул, т.к. есть в справке)
  40. ТекущаяУниверсальнаяДатаВМиллисекундах()

Среди этих методов есть абсолютно бесполезные, например «ПолучитьИнформациюЭкрановКлиента()» (даже представить не могу где это можно применить в чистом СКД), но есть и очень даже полезные, например «ЧислоПрописью». К сожалению, СокрЛП до сих пор не работает…

Получается использовать данные выражения можно только на свой страх и риск, т.к. в справке о них ни слова, значит работоспособность не гарантируется.

Ответ от разработчиков:
В выражениях компоновки данных можно использовать функции общих модулей и функции глобального контекста.

В отчете нет ничего нового относительно данной статьи, но к сожалению, написать бесплатную статью с файлом нельзя по правилам Инфостарта. В отчете все 40 методов тестируются на «чистом» СКД через вычисляемые поля. Результат работы отчета приведен в скриншоте к статье. Если проверять на базе где нет «Перечисление.ВидыИмущества.ОсобенностиОтсутствуют» то методы ПредопределенноеЗначение и ПолучитьПолноеИмяПредопределенногоЗначения работать не будут, поэтому требуется ручная замена на что-нибудь подходящее.

Описание ошибки:
Отчет на СКД формируется программно. При этом используется одно вычисляемое поле, в выражении которого указана экспортная функция глобального модуля. При формировании отчета возникает ошибка: : Ошибка при вызове метода контекста (Следующий) ЭлементРезультата = ПроцессорКомпановки.Следующий(); по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»

1с 8 скд вывод вычисляемого поля с выражением при программном выводе

1с 8 ошибка при выводе вычисляемого поля с выражением отчета на СКД при программном выводе

Подробное изучение методической информации дало понять, что при программном выводе отчета в коде было отключено использование внешних функций. См. текст из синтаксис-помощника метода Инициализировать() процессора компоновки данных (ПроцессорКомпоновкиДанных):

Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>),
где <ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь

Поэтому в код программного вывода отчета было добавлено отсутствующее условие (выделено жирным):

ПроцессорКомпановки = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпановки . Инициализировать ( МакетКомпоновки , , ДанныеРасшифровки , Истина);

Но после этого СКД отказалсь вывести отчет, рапортуя ошибку:

1с 8 скд ошибка вывода вычисляемого поля отчета на СКД использующего выражение с функцией при программном выводе

: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Функция не найдена «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»

При этом функция по всем правилам была экспортной и к этому моменту проверок размещена в глобальном модуле. Поэтому название модуля было исключено из значения выражения вычисляемого поля системы компоновки данных и отчет вывелся.

1с 8 скд использование функции в выражении вычисляемого поля программно выводимого отчета

А для случая, если функция для расчета выражения вычисляемого поля скд, размещена не в глобальном модуле, то необходимо указать и имя самого модуля, содержащего используемую функцию (пример рис. 01).

Читайте также:

  • Как задать вопрос аудитору в 1с итс
  • Oc android что это за программа и нужна ли она
  • 1с ерп коммерческое предложение как
  • Драйвера 5850 не обновляются
  • Ch340 драйвер не работает
Gnost
22.06.2012 16:27 Прочитано: 5512

Добрый день, есть отчет, созданный на СКД. Вызывается он программно. Если я вывожу его в файловом варианте — все проходит успешно; отчет выводится, расшифровка работает, но как только я пытаюсь вызвать его в клиент-серверном варианте происходит ошибка;

«{Отчет.Отчет.Форма.ФормаОтчетаУправляемая.Форма(380)}: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
по причине:
Несоответствие типов (параметр номер ‘3’)»

Код 1C v 8.2 УП

 &НаСервере
Процедура ВывестиРасшифровкуПоПлановымПоказателям(НоменклатурнаяГруппа, ТабличныйДокумент)

СхемаКомпановкиДанных = Отчеты.вр_ОтчетДляКонтроляПлатежейПоЗаказам.ПолучитьМакет("РасшифровкаПоПлановымПоказателям");

Настройки = СхемаКомпановкиДанных.НастройкиПоУмолчанию;

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

КомпановщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпановщикМакета.Выполнить(СхемаКомпановкиДанных, Настройки, ДанныеРасшифровки);

// Параметры

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);

ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры

Помогите пожалуйста разобраться где ошибка.


Изменено 22.06.12 16:27:56

Yandex
Возможно, вас также заинтересует

Реклама на портале

Gnost
22.06.2012 17:21 Ответ № 1

Сори, моя невнимательность )

Gnost
22.06.2012 17:21 Ответ № 2

Вопрос закрыт!

Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more…

open

8.2-3.22+ Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции


Description

https://partners.v8.1c.ru/forum/t/2074332/m/2074332
Уже не первый раз сталкиваюсь с недостаточно понятным сообщением об ошибке метода ПроцессорКомпоновкиДанных.Инициализировать() при обращении к функциям модулей и глобального контекста. У метода Инициализировать() есть параметр

ВозможностьИспользованияВнешнихФункций — Указывает возможность использования функции общих модулей конфигурации и функций глобального контекста в выражениях компоновки данных. Значение по умолчанию: Ложь.

Таким образом по умолчанию запрещено использование таких функций.

Но какую же ошибку выбрасывает этот метод при наличии такого обращения в макете компоновки?
Ниже пример кода
Настройки = Новый НастройкиКомпоновкиДанных;
ЭлементСтруктуры = Настройки.Структура.Добавить(Тип(«ГруппировкаКомпоновкиДанных»));
ЭлементСтруктуры.Выбор.Элементы.Добавить(Тип(«АвтоВыбранноеПолеКомпоновкиДанных»));
ВыбПоле = Настройки.Выбор.Элементы.Добавить(Тип(«ВыбранноеПолеКомпоновкиДанных»));
ВыбПоле.Поле = Новый ПолеКомпоновкиДанных(«Поле1»);
Схема = Новый СхемаКомпоновкиДанных;
Ист = Схема.ИсточникиДанных.Добавить();
Ист.Имя = «1»;
Ист.ТипИсточникаДанных = «local»;
Н = Схема.НаборыДанных.Добавить(Тип(«НаборДанныхЗапросСхемыКомпоновкиДанных»));
Н.Имя = «Набор1»;
Н.Запрос = «ВЫБРАТЬ &Кум КАК Поле1»;
Н.ИсточникДанных = «1»;
П = Схема.Параметры.Добавить();
П.Имя = «Кум»;
П.Выражение = «ПолучитьФункциональнуюОпцию(«»фыв»»)»;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет);

Он выбрасывает ошибку

Ошибка при вызове метода контекста (Инициализировать): Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «ПолучитьФункциональнуюОпцию»

Думаю фраза «Синтаксическая ошибка» очень мало наталкивает на мысль о том, что включен запрет использования таких функций. Первая мысль обычно скорее «я что то неверно написал в выражении».

Предлагаю заменить текущую формулировку на

Запрещенный вызов «ПолучитьФункциональнуюОпцию»

Мне кажется так людям будет проще понимать причину и что нужно сделать.

Внешнюю обработку с единственной кнопкой для выполнения примера прилагаю.


Files

  • Subject changed from Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции to 8.2-3.22+ Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции

Also available in: Atom
PDF

{ВнешнийОтчет.рар_ПроектнаяСтатистикаДокументов.МодульОбъекта}: Ошибка при вызове метода контекста (Инициализировать)     ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина); по причине: Ошибка компоновки данных по причине: Ошибка инициализации по причине: Ошибка создания набора данных «НаборДанных1» по причине: Не найден внешний набор данных «ТЗПроектнаяСтатистика

Ждем историю, куда подевался ТЗПроектнаяСтатистика

НоваяСтрВидыДок.ДокументСиноним = «Поступление товаров и услуг»;                            НоваяСтрВидыДок.ДокументСиноним = «Расчет управленческой выручки (Рарус)»;

В ДНК ошибка. Тип ТЗПроектнаяСтатистика должен быть ТаблицаЗначений

получилось! ВСЕ СПАСИБО!!!

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Процесс обнаружения и исправления ошибок называют
  • Процессор evco ошибка ah
  • Прочитав книгу это дает новые знания ошибка
  • Процесс устранения ошибок напоминающий дарвиновский отбор это
  • Процесс пабг прерван ошибка при запуске игры

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии