Неразрешимые ссылки на типы 1с
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (119):
При моделировании информации, рассказанной по данному теме , столкнулся с проблемой, которая не освещена ни в курсе, ни в данной ветке обсуждения… Проблему решил – хочу поделится решением (в случае, если кто то так же столкнулся с данной проблемой) при реализации “тесного внедрения БСП 2.1.9.2.” и настройки синхронизации на стороне базы, используюйще УФ (т.е. уже имеющей внедренный БСП)
Ошибка выполнения созданного и настроенного обмена на стороне Базы приемника – при использовании БСП 2.1.9.2 в базе источнике (стоит отметит, что с базой источником проблематика не связана):
”
: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().
Для объекта метаданных “ПланОбмена.ОбменИсходнаяБухгалтерия3”
не найден идентификатор
в справочнике “Идентификаторы объектов метаданных”.
Для разработчика: возможно требуется обновить вспомогательные данные,
которые влияют на работу программы. Для выполнения обновления можно:
– воспользоваться внешней обработкой
“Инструменты разработчика: Обновление вспомогательных данных”,
– либо запустить программу с параметром командной строки 1С:Предприятия 8
“/С ЗапуститьОбновлениеИнформационнойБазы”,
– либо увеличить номер версии конфигурации, чтобы при очередном запуске
выполнились процедуры обновления данных информационной базы.
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
”
Решение, которое мне помогло:
1. В “ПланОбмена” – в обоих программах = Добавить реквизит “ИспользоватьОтборПоОрганизации” – без этого происходит ошибка проверки данного реквизита.
2. В “ПланОбмена” БП3 – добавить Макет “ПравилаОбменаКорреспондента”, заполнив его текстом правил обмена из БазыИсточника (откуда данные идет в БП3). Если этого не сделать – происходит ошибка проверки всех требуемых условий для добавленния данных о ПланеОбмена в Регистр “Правила для обмена данными” – т.к. для добавления ТРЕБУЕТСЯ иметь оба эти макета… Ошибка происходит в функции “ВыполнитьОбновлениеВерсииТиповыхПравилДляОбменаДанными” = в общем модуле “ОбменДаннымиСервер”.
3. Создать внешнюю обработку для “ручного” обновления информации в справочнике “ИдентификаторыОбъектовМетаданных” – со следующим кодом (выполнение на сервере без контекста):
Например:
Конфигурация.Зарплата.Состав Неразрешимые ссылки на объекты метаданных (5)
Справочник.КатегорииОбъектов.Форма.ФормаСписка.Форма Неразрешимые ссылки на шрифты (4)
Справочник.СотрудникиОрганизаций.Форма.ФормаЗаписиСемейноеПоложение.Форма Неразрешимые ссылки на типы (3)
Документ.УстановкаНормПоСпецодежде.Форма.ФормаДокумента.Форма Неправильные пути к данным (1)
(2) vudu,
Заходии в конфигурация -> Проверка конфигурации и ставим флаг "Проверка логической целосности конфигурации".
Получилось это из-за того например, что объединяли на конфу документ, но не объединили справочник (картинку), на который есть ссылка в документе.
Как теперь можно найти эти "недообъединенные объекты"?
(7) там наверное документ копи пастом добавляли из другой конфы - елиб объединением такого вопроса не должно было быть.
Попробуй в конфигураторе тестирование и исправление. На всякий случай поставь все галочки.
Такое могло произойти из-за глючной версии платформы или из-за збой в момент обновления конфигурации.
если не поможет заходи и вручную меняй типы "глючных" реквизитов.
Проблема может быть двух видов это если в картинка на форме или картинка в коде.
Если в форме то выгрузить конфигурацию в файл и объединить с текущей указать галочку только на новый документ
при попытке объединить получите список ваших ""недообъединенные объекты".
В случае программных ссылок такое не получится.
(6) bar0n, спсю надо будет попробывать так сделать
(7) vudu, так не получится т.к. не понятко откуда там вообще что-то объединяли
(6) bar0n, вобщем через объединение этой же cf ничего не прокатило, никаких отличий не показало
единственный наверное способ - этогрохать с формы поодному реквизиты и смотреть после какого не будет вадить ошибку (проще наверное еще не придумали)
Сам столкнулся. Например бывает при переносе "элемента" ручным объединением двух конфигураций из одной в другую (когда запущено одновременно два разных конфигуратора 1С). Например я перенёс из одной в другую Справочник.ДисконтныеКарты то увидел:
Обнаружены неразрешимые ссылки:
Справочник.ДисконтныеКарты.Справка
Справочник.ДисконтныеКарты.Реквизит.ВидДК.Тип
Справочник.ДисконтныеКарты.Форма.ФормаСписка.Форма
Справочник.ДисконтныеКарты.Форма.ФормаЭлемента.Форма
А данные в них могут ссылаться на что угодно. Открытие в Обычном режиме Справочник.ДисконтныеКарты должно показать отсутствующие ссылающиеся "типы", например:
Особенно часто такое окно появляется при переходе с одной версии конфигурации на другую.
При переходе с 1С Бухгалтерия 2.0 на 3.0 такое окно Вы увидите почти наверняка, причем у меня появилась подобная надпись без возможности нажать кнопку «Продолжить». Просто вышло предупреждение, и дальше делай что хочешь.
Что я только не делал: проводил проверку и исправление информационной базы, прогонял базу через тестовую утилиту. Помогло исключение некоторых объектов из объединения. В общем, работал с теми объектами, которые указаны в окне «Неразрешимые ссылки».
В итоге, после нажатия кнопки «Продолжить», я получил еще одно предупреждение:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Здесь ничего не остается, кроме как нажать кнопку «Да».
Откроется еще одно окно:
Расставьте все указатели так, как указано на рисунке, и нажмите «Ок».
Будет произведено обновление нашей основной конфигурации. Но в таком виде оно нам не подходит, поэтому обновлять конфигурацию базы данных не будем. Сохраним конфигурацию в файл, например, new_conf.cf.
Причем сделать это нужно через окно настройки поддержки («Конфигурация» – «Поддержка» – «Настройка поддержки»). Там будет кнопка «Сохранить в файл».
Закрываем без сохранения текущую конфигурацию и начинаем сравнение вновь, только выбираем для сравнения конфигурацию поставщика и конфигурацию из файла («Конфигурация – «Сравнить конфигурации…»):
В таком случае мы сможем увидеть только те изменения, которые будут произведены при обновлении.
Здесь можно будет уже воспользоваться фильтром. Например, установить флажок «Показывать только дважды измененные свойства».
Я думаю, Вы сразу заметите разницу. Например, вот, как у меня было до проделанных процедур:
И вот, что стало после:
Разница, по-моему, очевидна. Из этих картинок видно, что некоторые процедуры изменены нами, но не содержат изменений поставщика. Но победу праздновать рано. Я довольно долго еще «плясал с бубном», пока не добился корректного обновления. В итоге я сделал практически попроцедурное сравнение и объединение, но зато надежно избавился от окна «Неразрешимые ссылки».
Еще имейте в виду, что у каждого свои изменения в конфигурации 1С. Поэтому запаситесь терпением, поднимите документацию со своими изменениями и решайте, какие процедуры Вам стоит заменять процедурами поставщика, а какие проще объединить вручную позже, добавив в свои то, что добавил поставщик.
Часто бывает, что в результате обмена данных в 1С 8.3 и 8.2 случаются ошибки, и вместо значения ссылочных данных в полях встречается «Объект не найден», то есть «битые ссылки».
Поиск битых ссылок в 1С запросом
Очень часто встает вопрос: как отобрать элементы с битыми ссылками запросом 1С?
Вопрос решается достаточно легко, рассмотрим его на примере:
необходимо отобрать документы Счет на оплату покупателю, где вместо организации установлена «битая ссылка».
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Первым отбором «НЕ СчетНаОплатуПокупателю.Организация ЕСТЬ NULL» мы определили, что ссылка установлена.
Вторым отбором СчетНаОплатуПокупателю.Организация.Код ЕСТЬ NULL, обращаясь к коду организации по точке, система строит левое соединение, но не находит в таблице организаций такой элемент — возвращает NULL.
Всё получается достаточно просто.
Определение битой ссылки в объектной модели
Если у Вас нет возможности сделать проверку запросом, рекомендую использовать два разных метода. Рассмотрим их на примере, который давали ранее:
Используя ПолучитьОбъект()
При использовании метода «ПолучитьОбъект()» битая ссылка вернет «Неопределено».
Поиск в строке
Этот метод самый простой — поиск строки «Объект не найден» в представлении элемента.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
В форме могут встречаться элементы формы, у которых не задан путь к данным. Или ранее заданный путь к данным стал невалидным. Например, после удаления соответствующего реквизита метаданного. При проверке подобных формы в Конфигураторе 1С возникают ошибки.
Или при ручном изменении запроса динамического списка сбрасывается свойство "Путь к данным" у полей на форме, связанных с этим динамическим списком. В результате элемент формы (колонка табличного поля) перестает быть связанным с полем динамического списка и исчезает из таблицы на форме. В таком случае внутри файлов форм штатной XML-выгрузки значение свойства "Путь к данным" начинается со знака "~", например, для поля "Код":
Такая же проблема возникает для кнопок командной панели, связанных свойством "Данные" со стандартным полем динамического списка, например, для кнопки с заполненным значением "Ссылка" в свойстве "Данные":
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
Читайте также: