0

Метод объекта не обнаружен

Шаблоны внешнего отчета 1с 8.3 на управляемых формах

Простой внешний отчет с макетом без использования СКД

  1. В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
  2. Назначаем отчету имя и переходим к созданию макета. В нижней части формы выбираем Макеты-Добавить-Тип макета-Табличный Документ.
  3. Исходными данными для тестового отчета будет справочник “Банки”. В макете создаем шапку отчета с названиями колонок (Город, Банк, КорСчет).Заполнение ячеек шапки оставляем по умолчанию Текст. Выделяем строки шапки и назначаем Имя области через меню Таблица-Имена-Назначить имя. В дальнейшем в коде через имя области будем выводить шапку отчета и сами данные.
  4. Добавляем строки, соответствующие получаемым данным из справочника Банки. Назовем их пГород, пБанк и пКорсчет. Для каждой ячейки Заполнение указываем “Параметр”. Выделяем ячейки параметры и назначаем имя области “Строки”
  5. Назначаем шрифты, ширину и высоту ячеек, выбираем окантовку ячеек итп. Для форматирования макета отчета служит специальная панель “Форматирование”
  6. Создаем Форму отчета. В группе формы, напротив Формы отчета нажимаем на значек лупы. При создании формы галку “Использовать систему компоновки данных” не ставим.
  7. После создания формы отчета добавляем команду формы “Сформировать” (Правый верхний угол вкладка “Команды формы”). Назначаем ей действие на клиенте. Добавляем на форму Кнопку через правую кнопку мыши. Привязываем к кнопке Имя Команды – “Сформировать”, которую только что сделали.
  8. Пишем обработчик события Команды Сформировать, из которой вызывается функция на сервере для получения данных отчета. Реквизит формы “Отчет” появляется автоматически после создания формы отчета. Отчет создан для примера, поэтому никаких отборов и сортировок в запросе нет и данные выводятся из справочника как есть.

Сохраняем отчет, открываем его в режиме 1с Предприятия 8.3 и нажимаем кнопку “Сформировать”.

Простой внешний отчет со Схемой Компоновки Данных (СКД)

  1. В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
  2. Создаем основную схему компоновки данных (СКД). Для этого нажимаем кнопку “Открыть схему компоновки данных”
  3. Слева добавляем Набор данных -запрос
  4. Открываем конструктор отчета. Создаем простейший запрос из объекта справочник. Из левой части (база данных) переносим Справочник “Банки” в поле Таблицы. Раскрываем справочник и переносим интересующие данные в правую часть Поля. Сохраняем запрос.
  5. Переходим на вкладку “Настройки”. Щелкаем правой кнопкой мыши на Отчете и выбираем “Свойства элемента пользовательских настроек”.
  6. Выбираем элементы которые будут доступны пользователю 1с для настройки параметров отчета(выбираемые поля, отбор, сортировка, условное оформление и группировки).
  7. Создаем Форму отчета и форму настроек отчета. При создании формы отчета обязательно ставим галку “Использовать систему компоновки данных”.
  8. Формы созданы, для простого отчета на СКД никакого написания кода не требуется.Сохраняем отчет.
  9. Открываем внешний отчет на СКД в режиме 1с Предприятия 8.3. Открываем настройки и выбираем нужные поля.
  10. Добавляем группировку по “Городу”. В настройках отчета переходим во вкладку “Группировка” и добавляем поле “Город”.
  11. Сохраняем настройки и нажимаем кнопку Сформировать.

Получаем отчет по справочнику на СКД с группировкой в соответствии со сделанными настройками.

Как прикрепить внешний отчет в программу 1с через дополнительные отчеты обработки.

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

Форма подключения чаще всего находится в разделе Администрирование-Печатные формы и обработки -Дополнительные отчеты и обработки.

При добавлении отчета без доработок может появится сообщение об ошибке “Невозможно подключить дополнительный отчет из файла. Метод объекта не обнаружен (СведенияОВнешнейОбработке)”.

Чтобы исправить эту ошибку, в модуль Отчета нужно добавить код описывающий данный отчет.

Теперь отчет можно разместить в определенном разделе и опубликовать.

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

«При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса»

Решение: в реестре Windows необходимо зарегистрировать компоненту comcntr.dll

Сначала пробуем простые варианты.
Первый вариант: пробуем удалить и заново установить платформу 1С, войдя в систему с полными правами (предварительно перезагрузив компьютер).
Проверяем. Если не помогло —

Второй вариант:
Открываем Проводник (Мой компьютер), в адресной строке пишем %windir% и нажимаем Enter,

открывается командное окно с путем: C:\Windows\,
Далее в зависимости от разрядности вашей версии Windows (32 или 64 разряда) входим в соответствующую директорию,
находим среди файлов cmd.exe и запускаем его от имени Администратора (клик правой клавишей — запустить от имени Администратора).

В появившемся окне также в зависимости от разрядности Windows вставляем (можно отсюда через копировать-вставить) следующую строку:

для Windows 7×32
в %windir%\System32\RegSvr32.exe «С:\Program Files (x86)\1cv8\8.3.11.3034\bin\comcntr.dll»

для Windows 7×64
в %windir%\SysWoW64\RegSvr32.exe «С:\Program Files (x86)\1cv8\8.3.11.3034\bin\comcntr.dll»

Важно! Здесь вместо подстроки «С:\Program Files (x86)\1cv8\8.3.11.3034» укажите путь к Вашему каталогу 1С Предприятие.

Если и это не помогло —
Третий вариант, регистрируем компонент в реестре вручную:

Открываем: Панель управления — Администрирование — Службы компонентов – Компьютеры – Мой компьютер

Выбираем: Приложения COM+ — Дополнительные действия — Приложения — Создать приложение.
Вводим имя «V83COMConnector» , ставим опцию «Серверное приложение», и Указанный пользователь выбираем «Администратор», либо «Текущий пользователь».
В появившейся ветке V83COMConnector выбираем Компоненты – Создание нового компонента – Установка новых компонентов.
Выбираем файл — входим в Ваш каталог 1С, далее \bin\comcntr.dll, и выбираем Готово.
Правой кнопкой мыши нажимаем по ветке V83COMConnector, далее переходим на Свойства – Безопасность.
Снимаем опцию «Принудительная проверка доступа для приложений», выставляем опцию «Применить политику программных ограничений» и выбираем уровень «Неограниченный».

Вы (или пользователь) работаете в 1С. Вдруг – ошибка. Что делать?

Конечно самое правильное – проанализировать — что за ошибка 1С, ее причины, провести в отладчике 1С часик-другой, чтобы выяснить что к чему.

Что делать, если это невозможно? Нет времени, нет желания, недостаточно знаний. Вот несколько очень вредных советов по быстрому исправлению ошибок в 1С.

Сообщение об ошибке 1С

Типовой вид сообщения об ошибке 1С– это окно с текстом ошибки 1С и кнопками ОК и Подробнее.

Текст ошибки 1С, отображенный здесь – это пользовательское сообщение, программисту оно часто ни о чем не говорит, так как отображенная ошибка 1С может быть следствием каких-то неправильных действий.

Для исправление ошибок 1С необходимо в этом окне нажать Подробнее, чтобы увидеть программистское сообщение об ошибке 1С. В нем указано:

  • Модуль, в котором произошла ошибка 1С
  • Функция этого модуля, в котором произошла ошибка 1С
  • Номер строки этого модуля, в котором произошла ошибка 1С.

Также Вы можете нажать на кнопку Конфигуратор, и тогда будет открыт конфигуратор, этот модуль, эта функция на этой строке, после чего Вы можете провести исправление ошибки 1С.

Хитрости понимания ошибок

Как только что было сказано, в тексте ошибки 1С очень часто следствие выполненных ранее неверных действий.

Например, очень распространенный текст ошибки 1С гласит:

Значение не является значением объектного типа (КакоетоИмя)

Что бы это значило???

А это значит следующее:

  • Есть переменная
  • В программе предполагается, что значение переменной – справочник или документ или что то другое подобное – в общем у него есть реквизиты(поля)
  • В программе делается попытка обратиться к полю этого объекта
  • Однако ошибка 1С состоит в том, что по какой-то причине в предыдущих строчках программы эта переменная получила значение, у которого нет никаких реквизитов (полей), например значение «Неопределено».

Исправление ошибок 1С, которые чаще встречаются

Конечно же все ошибки, которые могут быть в 1С — мы сейчас рассмотреть не можем.
Попробуем кратко перечислить ошибки 1С, которые бывают часто, а также вредные советы по быстрому исправлению ошибок 1С.

  • Если переменная имеет тип булево (то есть принимает значения Истина и Ложь), то к ней можно обращаться вот так:

    Если ИмяПеременной Тогда

    Такое написание аналогично:
    Если ИмяПеременной = Истина Тогда

    Однако если по какой-то причине эта переменная примет значение не булево, то первый вариант даст ошибку 1С, а второй нет.

  • «Функция с именем Ххх не обнаружена»

    В клиент-серверном варианте 1С часть модулей выполняется на сервере. Мало того, некоторые функции одного и того же модуля могут выполняться на сервере или на клиенте.

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

    Необходимо перенести такую функцию на сервер, если это возможно.

  • «Переменная с именем Ххх не обнаружена»

    Аналогично предыдущей ошибке 1С. Если в программе прописано обращение к функции, которая находится в общем модуле, то это выглядит так:
    ИмяМодуля.ИмяФункции();

    Если при этом в свойствах модуля установлено, что он выполняется на клиенте, а мы обращаемся из тех строчек программы, которые выполняются на сервере – то будет ошибка 1С
    «Переменная не обнаружено – ИмяМодуля»

    Необходимо аналогично включить выполнение этого модуля на сервере.

  • «Свойство Ххх у объекта не обнаружено»

    Под словом «Свойство» понимается поле этого объекта (реквизит). Необходимо:
    o Определить, что это за объект
    o Если это объект 1С – справочник, документ – необходимо посмотреть, действительно ли реквизит так называется
    o Если это обычная форма или управляемая форма – посмотреть реквизиты формы с таким названием.

  • «Метод Ххх у объекта не обнаружен»

    Под словом «метод» понимается функция/процедура в модуле этого объекта.

    Необходимо:
    o Определить что это за объект
    o Найти его модуль (модуль объекта если это объект 1С, модуль формы, если это форма)
    o Проверить наличие функции с таким наименованием.

  • «Ошибка 1С при выполнении запроса»

    Это значит в тексте запроса ошибка 1С. Текст запроса определяется в программе обычно раньше (то есть выше), чем выполняется. Поищите текст запроса в этом модуле (глазами выше или по поиску слова «ВЫБРАТЬ»).

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

  • «Ошибка 1С компоновки» — при выполнении отчета СКД

    Данная ошибка 1С означает или ошибку 1С в тексте запроса или ошибку 1С настроек СКД (часто в группировках, в выбранных полях, в условном форматировании).

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

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

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *