- от автора admin
Содержание
Пожалуй, одной из самых часто возникающих ошибок при эксплуатации программ и конфигураций, выпущенных фирмой 1С можно назвать сообщение «Поле объекта не обнаружено». Причинам возникновения этой ошибки, методам её устранения и ситуациям, в которых она проявляется и посвящена эта статья.
Что значит «поле объекта не обнаружено»
Любая конфигурация 1С представляет собой набор объектов метаданных, к которым программа периодически обращается. Каждый объект характеризуется набором полей. Именно о некорректном результате обращения к полю объекта и сообщает программа, когда появляется это окно.
Возникнуть эта ситуация может в любое время:
- При запуске программы;
- При заполнении информационных полей формы;
- При выводе информации на печать.
Причины появления ошибки
Сообщение 1С поле объекта не обнаружено, чаще всего появляется после внесения изменения в конфигурацию (самостоятельное её дописывание или обновление до актуальной версии). Основная причина возникновения – невнимательность программистов:
- Реквизит, к которому обращается код, отсутствует в базе (был удален или еще не был создан);
- Код содержит ошибку (;
- Ошибка при генерировании поля (актуально для пользователей, работающих с управляемыми формами);
- Не заполнены все реквизиты элемента формы (в частности, если в поле ввода не проставить реквизит «Путь к данным», ошибка «Поле объекта не обнаружено» будет появляться при каждом обращении к этому полю);
- В управляемых формах, если забыть указать в обработчике команду для кнопки можно так же столкнуться с этой ошибкой.
Способы устранения
Следует отметить, что для 1С «Поле объекта не обнаружено» не является критической ошибкой. Работа системы продолжается, прерывается только исполнение того модуля, в теле которого ошибка возникла.
Каковы бы ни были причины возникновения этой ошибки, без вмешательства программистов решить её можно только в одном случае: если ошибка вызвана обновлением поставки конфигурации.
В этом случае можно восстановить резервную копию базы или откатить обновление, после, в новом релизе конфигурации, скорее всего ошибка будет устранена. В большинстве других случаев требуется внесение изменений в исполняемый код программы.
Пример ошибки и методика ее устранения
В версиях программы, идущих за релизом 8.2.15, для упрощения идентификации пользователей, была внесена возможность входа с помощью OpenID. В момент выхода этого релиза многие пользователи столкнулись с ошибкой «Поле объекта не обнаружено (АутентификацияOpenID).
Как позднее выяснилось, причиной появления этого окна послужило то, что ранее разработанные конфигурации не учитывают возможности такой аутентификации. И в коде программы не был прописан механизм решения такой проблемы.
В качестве основных путей решения выступали:
- Обновление платформы до версии, актуальной на данный момент;
- Отказ от обновления конфигурации;
- Изменение правил обмена;
- Можно просто проигнорировать проверку;
В любом случае, что бы ни послужило причиной возникновения исключительной ситуации, ни в коем случае не следует впадать в панику. Постарайтесь прочитать, о чем Вам сообщает программа, какого поля не хватает, проанализируйте, какие действия привели к появлению сообщения и обратитесь к специалисту по технической поддержке. Чаще всего такая проблема решается в течении часа с момента обращения.
Итак, перед нами начальная страница программы. Слева мы видим разделы меню, находим раздел «Справочники». Нажатием левой кнопкой мыши открывается окно с подразделами данного справочника
Здесь, в разделе «Товары и услуги» находим надпись «Номенклатура»
Нажимаем, открывается пустая страница, в которой мы будем делать заполнения
Многие организации занимаются не только куплей/продажей товаров, но предоставляют услуги по доставке. Для удобства, рекомендуем разделить эти виды деятельности на соответствующие группы. Назовем их «Товары» и «Услуги». Нажимаем «Создать группу»
Перед нами открывается небольшое окно «Номенклатура (создание группы)»
Вводим название данной группы «Товары» в поле «Наименование». Поле «Вид номенклатуры» можно оставить незаполненным. Далее жмём «Записать и закрыть».
Таким же путем создаём группу «Услуги». В графе «Наименование» появились две созданные группы, условно их можно называть папки
Далее входим в группу «Товары» и нажимаем вверху надпись «Создать». Перед нами открывается окошко для заполнения информацией
Допустим, что продавать мы будем хозяйственные товары. Вводим в поле «Наименование» название товара, которое будет видеть пользователь. Предположим Ведро.
Следующее поле «Полное наименование» подразумевает уточнение по товару. Например, Ведро для мусора 10л. То, что мы здесь напишем, будет отображаться в печатной форме документов.
Ниже есть поле «Артикул». Здесь будет отображаться уникальный артикул номенклатуры, по которому данный товар можно будет искать или различать.
Строка «Входит в группу» заполняется автоматически по названию папки, в которую входит.
Поле «Вид номенклатуры». Обязательно нужно заполнить путем выбора вида из выпадающего окна. На основании выбора задается счет учета номенклатуры. Выбираем «Товары», потому что мы планируем покупать их и продавать.
Следующее поле «Единица». Нам необходимо указать «ШТ.», так как товар у нас штучный.
В следующем поле «% НДС» проставляем процентную ставку – 18%, которая соответствует данной категории товаров согласно стандартам
В следующем поле «Комментарий» мы можем указать любую дополнительную информацию, относящуюся к данному товару.
Заполнение других параметров пока рассматривать не будем. Вернемся к ним при необходимости. Нажимаем кнопку «Записать»
Создадим еще 2 товара. Например, Ведро для мусора 15л и Ведро для мусора 30л.
Видим, что в папке располагаются три товара, которые мы с вами ввели.
Перейдём теперь к заполнению услуг. Входим в папку «Услуги» и нажимаем «Создать». Аналогичным образом, как и при создании группы «Товары» заполняем поля
«Наименование» и «Полное наименование» будут содержать одни и те же данные – Услуги по доставке.
«Входит в группу» так же будет заполнено автоматически.
В поле «Вид номенклатуры» нужно отметить, что это Услуги. Больше здесь ничего не нужно заполнять.
Одно из самых важных понятий номенклатуры, это «Счета учета номенклатуры». В справочнике эту гиперссылку можно найти в верхней части
Здесь указаны основные параметры установки счетов в документы. Например, для нашего вида номенклатуры «Товары» указан номер счета 41.01. Для «Услуги» номер счета не указан. Нажав на саму надпись можно зайти в настройки и прописать его. Сделаем это. Укажем счет учёта 20.01
Далее «Записать и закрыть»
Сейчас обратим внимание на верхнюю строчку. Если «Вид номенклатуры» не указан, то по умолчанию будет использован счет 41.01
Если зайти в настройки, то здесь помимо номенклатуры можно указать конкретную позицию или целую папку, для которой будет использоваться это правило.
Итак, мы создали номенклатуру, создали счета для учета номенклатуры и разобрались, как с ними работать.
В Управляющей Компании холдинга (даллее УК) возникла задача создания копий баз всех предприятий холдинга и ежедневной поддержки их в актуальном состоянии. Многие предприятия холдинга находятся на большом расстоянии от УК (порой в других регионах), имеют различное качество связи и пользуются разными конфигурациями 1С 8.1 и 8.2. Для решения этой задачи ежедневная пересылка полных копий баз не подходит, ибо предприятий много, у одних интернет плохой, у других администраторы не в состоянии наладить автоматическую высылку копии и т.д. и т.п. Для решения данной задачи подходит РИБ, но как обеспечить односторонность передачи данных и при этом не влезать в код? (Для некоторых предприятий снятие с поддержки критично). Для решения этой задачи необходим обмен с использовниаем правил обмена. Итак:
1. Создание правил обмена.
Если у вас одна из типовых конфигураций, указанных в анонсе, то возьмите правила из прикрепленных файлов, пропускайте 1й пункт и переходите ко 2му.
1.1 Для создания правил обмена используем конфигурацию конвертация данных ред.2. (Ее можно найти на любом диске ИТС либо скачать с сайта 1С). В конфигурации, которую мы распределяем, откроем файл MD81exp.epf либо MD82exp.epf, которые входят в комплект поставки конвертации данных. (Для 8.2 лежат, например, в C:Documents and Settings*user*Application Data1C1Cv82 mplts1cConversion2_1_5_1).
1.2 Выбираем файл, куда сохраним описание структуры метаданных, и жмем «Выгрузить».
1.3 После завершения выгрузки запускаем конфигурацию Конвертация данных и открываем «Стартовый помощник»:
1.4 В появившемся окне жмем далее и выбираем пункт «Создать правила обмена с нуля» и «Далее»:
1.5 В следующем окне нам предлагают выбрать конфигурации для обмена- нажимаем «Новая», и в появившемся окне выбираем наш файл из пункта 1.2 , жмем «Выполнить загрузку» :
1.6 Через некоторое время (5-10 мин.) загрузка закончится, и после нажатия «ОК» наша конфигурация появится в поле «конфигурация-источник». Выбираем ее же в поле «конфигурация-приемник» и жмем «Далее»:
1.7 В появившемся окне выбираем 1й пункт и жмем «Выполнить»:
1.8 Через некоторое время правила создадутся, и мы увидим следующую картину:
1.9 В списке объектов есть один, который нам передавать точно не нужно. Я говорю о регистре сведений «ГраницыЗапретаИзмененияДанных» (Его передача приведет к коллизиям, в случае изменения даты запрета редактирования, что бывает не так и редко). Снимаем с него галочку и жмем «Создать правила выгрузки»:
1.10 Затем жмем кнопку «Сохранить правила», выбираем имя файла и жмем «Сохранить»:
В результате мы получили файл с правилами обмена данными нашей конфигурации с идентичной конфигурацией. Этот файл мы и используем в настройке РИБ.
2. Настройка РИБ. (Я не буду расписывать создание РИБ, варианты настройки автообмена и т.д. Статьи на эту тему легко найти, опишу лишь нюансы, связанные с первоначальной задачей). Итак:
2.1 Настройка на основном узле: Переключаемся на полный интерфейс, заходим в меню «Сервис» —> «Распределенная информационная база (РИБ)» —> «Настроить узлы РИБ». Нажимаем «Добавить» и попадаем в окно:
2.2 Выбираем наименование для настроек обмена данными, ставим галочку «Обмен по правилам обмена», жмем кнопку «Загрузить правила», выбираем наш файл из пункта 1.10 и на всякий случай жмем «Проверить правила». (Не забудьте выбрать тип обмена и др. настройки).
Жмем сохранить и переходим к настройке 2го узла (Копия).
2.3 Настройка на 2м узле (на последующих узлах она идентична, если таких копий нужно несколько). Повторяем действия пунктов 2.1 и 2.2 в копии и переходим на закладку «Обмен по правилам», жмем «Загрузить настройки»:
2.4 После загрузки объектов выбираем все (ctrl+A) и жмем «Изменить настройку». Меняем на «не выгружать», жмем «ОК» .
2.5 Далее записываем настройку , и так как мы ничего назад в основной узел выгружать не будем, не забываем изменить дату запрета редактирования на какую нибудь пораньше в разумных пределах (на пару лет назад, например, там точно ничего править не будут). Это необходимо для того , чтобы избежать проблем, связанных с изменением даты запрета редактирования, перепроведением документов и возврата даты обратно в между обменами. (Такое, как показывает практика, бывает сплошь и рядом).
2.6 Тестируем обмен.
Интересные материалы:
- Как в 1С зуп отстранить от работы
Как в программе "1С:Зарплата и управление персоналом 8" редакции 3 зарегистрировать отстранение сотрудника от работы…
- 1С ИТС логин и пароль
ИТС – это комплексная поддержка, которую компания "Лаэрта" совместно с фирмой "1С" оказывает пользователям программ…
- Поиск в 1С по нескольким словам
До сих пор немногие знают, что, начиная с версии 8.1, у платформы "1С:Предприятие" появился замечательный…
- 1С запрос не в таблице
Большинство разработчиков 1С знают, что выполнение запроса в цикле крайне нежелательно из-за множественных серверных вызовов…
- 1С FTP удалить
Описание ошибки: При обмене через ftp-соединение возникает ошибка и обмен не выполняется: Ошибка при копировании…