1с отсутствует отображение для типа формаклиентскогоприложения
1с доработали адреса в формате фиас и понеслось.
После обновления на УПП 166.2 возникло несколько проблем с заполнением адресов.
1. В контрагенте при сохранении адреса выдается ошибка, когда пытаешься установить номер квартиры, а слово Квартира не выбирается..
ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный.Модуль(225)>: Ошибка при вызове метода контекста (ЗаписатьJSON)
ЗаписатьJSON(ЗаписьJSON, Значение,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный);
по причине:
Передано значение недопустимого типа
2. В документе больничного при попытке выбрать адрес мед. заведения выдается ошибка:
: Поле объекта не обнаружено (ПанельНастроекАдреса)
ФормаРедактированияАдреса.ЭлементыФормы.ПанельНастроекАдреса.Свертка = РежимСверткиЭлементаУправления.Верх;
3. При открытии Классификатора из адресной строки физ лица:
: Тип не определен (ФормаКлиентскогоПриложения)
ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));
Даже как-то странно. такое количество ошибок, либо они вообще ничего не тестировали, просто накатили обнову и отправили людям.
У кого нибудь есть такие проблемы? Погуглил, таких ошибок не нашел.
Даже как-то странно, что человек после 8 лет общения с 1с обновляется не протестировав изменения.
где-то в 2010 на курсах в 1с Морозов утверждал, что ут почти вся покрыта тестами, а упп - вся.
но судя по кол-ву ошибок - тесты не поддерживаются и не применяются.
(1) Не поверите, но сколько не обновлялся за 20 лет косяков глобальных никогда не было, чтобы нельзя было работать. Вот чего чего, времени на глобальные тесты у меня нет, всех изменений не протестируешь. Если только у кого вагон свободного времени.
Дедушка старый, ему все равно. УПП, судя по всему, совсем не в приоритете у 1С, несмотря на то что они собирают по 8 штук за месячный пинкод обновлений и по 60 - за годовой.
(1) да в общем-то и я действую также. Чтобы тестировать - время надо и людей. Если в ит-отделе полтора человека, то заниматься этим некому. Если что-то вылезет в критичном функционале - подправляем прямо наживую. Что характерно, уже 10 годков существуем в таком режиме и ничего. Но у нас и готовность 24 часа в сутки не нужна, оттого что база будет недоступна, скажем, час - ничего не поменяется. Свет вырубают чаще и на-дольше, чем происходят сбои в ИТ.
Ошибка «Тип не определен (ФормаКлиентскогоПриложения)»
Данная ошибка возникает в том случае, когда вы пытаетесь использовать значение типа, о котором платформа не знает. Читать далее →
Недопустимое значение параметра номер 1 ПодключитьОбработчикОжидания()
Данная ошибка возникает при попытке подключения обработчика ожидания с некорректным именем процедуры. Читать далее →
Ошибка «Интерактивный выбор режима проведения документа не поддерживается»
Данная ошибка происходит при сочетании следующих настроек: Читать далее →
Ошибка «Отсутствует отображение для типа (ФормаКлиентскогоПриложения)»
Данная ошибка возникает в тот момент, когда Вы пытаетесь вызвать серверный метод и передаете ему в качестве параметра управляемую форму. Читать далее →
Ошибка «Переменная не определена (ЭтотОбъект)»
Данная ошибка характерна для управляемых форм платформы 1С:Предприятие 8 Читать далее →
Ошибка «Процедура или функция с указанным именем не определена (СтрСоединить)»
Данная ошибка возникает при попытке использования новой строковой функции СтрСоединить() на версии платформы 1С:Предприятие ниже 8.3.6 Читать далее →
Ошибка «Процедура или функция с указанным именем не определена (СтрРазделить)»
Данная ошибка возникает при попытке использования новой строковой функции СтрРазделить() на версии платформы 1С:Предприятие ниже 8.3.6 Читать далее →
Ошибка «Проверка мутабельных значений на заполненность не поддерживается»
Ошибка возникает при попытке использования функции ЗначениеЗаполнено() для проверки заполнения объекта агрегатного типа. Читать далее →
Ошибка «Процедура или функция с указанным именем не определена (СтрНайти)»
Данная ошибка возникает при попытке использования новой строковой функции СтрНайти() на версии платформы 1С:Предприятие ниже 8.3.6 Читать далее →
Ошибка «Значение поля код не уникально»
Ошибка возникает в том случае, когда выполняется попытка сохранить объект (элемент или группу справочника, плана видов характеристик и т.п.) с кодом, который уже имеется в информационной базе. Читать далее →
1с доработали адреса в формате фиас и понеслось.
После обновления на УПП 166.2 возникло несколько проблем с заполнением адресов.
1. В контрагенте при сохранении адреса выдается ошибка, когда пытаешься установить номер квартиры, а слово Квартира не выбирается..
ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный.Модуль(225)>: Ошибка при вызове метода контекста (ЗаписатьJSON)
ЗаписатьJSON(ЗаписьJSON, Значение,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный);
по причине:
Передано значение недопустимого типа
2. В документе больничного при попытке выбрать адрес мед. заведения выдается ошибка:
: Поле объекта не обнаружено (ПанельНастроекАдреса)
ФормаРедактированияАдреса.ЭлементыФормы.ПанельНастроекАдреса.Свертка = РежимСверткиЭлементаУправления.Верх;
3. При открытии Классификатора из адресной строки физ лица:
: Тип не определен (ФормаКлиентскогоПриложения)
ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения"));
Даже как-то странно. такое количество ошибок, либо они вообще ничего не тестировали, просто накатили обнову и отправили людям.
У кого нибудь есть такие проблемы? Погуглил, таких ошибок не нашел.
Даже как-то странно, что человек после 8 лет общения с 1с обновляется не протестировав изменения.
где-то в 2010 на курсах в 1с Морозов утверждал, что ут почти вся покрыта тестами, а упп - вся.
но судя по кол-ву ошибок - тесты не поддерживаются и не применяются.
(1) Не поверите, но сколько не обновлялся за 20 лет косяков глобальных никогда не было, чтобы нельзя было работать. Вот чего чего, времени на глобальные тесты у меня нет, всех изменений не протестируешь. Если только у кого вагон свободного времени.
Дедушка старый, ему все равно. УПП, судя по всему, совсем не в приоритете у 1С, несмотря на то что они собирают по 8 штук за месячный пинкод обновлений и по 60 - за годовой.
(1) да в общем-то и я действую также. Чтобы тестировать - время надо и людей. Если в ит-отделе полтора человека, то заниматься этим некому. Если что-то вылезет в критичном функционале - подправляем прямо наживую. Что характерно, уже 10 годков существуем в таком режиме и ничего. Но у нас и готовность 24 часа в сутки не нужна, оттого что база будет недоступна, скажем, час - ничего не поменяется. Свет вырубают чаще и на-дольше, чем происходят сбои в ИТ.
Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:
Ошибка отображения типов:
Отсутствует отображение для типа 'ЭлементСпискаЗначений'
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
форма: Элемент
имя: v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'value':
форма: Элемент
имя: value
Нажатие на изображении увеличит его
Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа "СписокЗначений". При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора "Новый СписокЗначений", значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется - в частности выполняется его дополнительная сортировка. Конечно, ошибка "Ошибка отображения типов: Отсутствует отображение для типа 'ЭлементСпискаЗначений'" может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.
Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода " СортироватьПоЗначению() ", т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель ".", пример: 1.1, 2.2, 2.2.1, 2.2.2, 3.1, 3.2, 3.3.1, 3.3.2). Поэтому сортировка выполнялась программно с созданием новой переменной типа "СписокЗначений" и ее заполнением по данным исходного списка.
После сохранения кода и попытки проверки появилась ошибка, текст которой приведен в начале страницы. Анализ данных через предмет отладки неявно, но показал ошибку.
Нажатие на изображении увеличит его
Не смотря на то, что в методической информации "Синтакс-помощника" 1С 8 указано, что значение элемента списка значений может быть любым (произвольным), все-таки для случая использования в управляемой форме в качестве реквизита накладывается ограничение по типу. И нельзя в значение такого списка значений поместить "ЭлементСискаЗначений" другого списка значений.
Т.е. для моего случая использования списка значений в управляемой форме в качестве реквизита ошибка была в коде, где происходило заполнение значений нового списка по данным исходного при сортировке.
Нажатие на изображении увеличит его
Было выполнено исправление в коде для обращения к значениям и передачи их в качестве значений нового списка значений.
Нажатие на изображении увеличит его
В данном случае значениями списка были значения примитивного тип "Строка", поэтому дальнейшая работа доработанного кода стала возможной. И это все-таки позволило реализовать задачу. Если у Вас будут другие типы, например ссылки, то продумывайте заранее, как будете упорядочить, возможно придется через другие универсальные объекты, например использование таблицы значений, и потом заполнять конечный список значений. Другие примитивные типы не проверялись, но предполагаю, что они так же подойдут для корректной работы в управляемой форме. в качестве значений списка. Поэтому учитывайте это, если столкнетесь с данной ошибкой при Вашем конфигурировании - подбирайте по возможности простой тип для значений списка.
Нажатие на изображении увеличит его
Таким образом на примере данной частной ситуации возникновения ошибки при конфигурировании в 1С 8 "Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа" извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта "Список значений" элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа "СписокЗначений" заполняется за счет другой подобной.
Иногда я воспринимаю термин «управляемые формы» как иронию. Объектная модель этих форм настолько несогласована, что о какой-то тотальной управляемости можно только мечтать.
Сегодня я вскрою одну большую проблему управляемых форм, которая провоцирует писать весь код в одной форме, не разнося его по общим модулям, что снижает повторное использование кода, что очень вредно для проектов, особенно сложных.
Итак, проблема заключается в том, что в параметре процедуры управляемую форму можно передать в серверный общий модуль только из серверной процедуры формы.
Попытка сделать такую передачу из клиенского модуля — общего или формы приведет к ошибке:
Многие скажут, что это не проблема, можно ведь вызвать серверную процедуру общего модуля из серверной процедуры формы.
Но не всегда это возможно. А если вы хотите часть кода формы вынести в общий модуль, то гарантированно столкнетесь с этой проблемой. Почему гарантированно?
Допустим вы хотите разнести по модулям такой несложный код:
Вы ожидаете, что это можно сделать так:
Но увы, не сработает, с клиента нельзя передать форму в серверный общий модуль.
Приходится выкручиваться примерно так:
Причем для вызова каждой процедуры придется написать свою функцию или использовать «магическую» функцию Выполнить. А ведь в форме такой функции нет, поэтому если вы работаете с разными формами, придется в каждую добавлять специальный передаточный код.
Теперь понятно, почему формы в 1С пишутся монолитным объемным кодом? Любой, кто пытался делать рефакторинг и разбивать на отдельные участки, сталкивался с подобной проблемой.
Но все же задачу надо было решать, поэтому я добавил в форму две функции:
Это позволяет вызывать функции из модулей почти привычным образом:
Этот код поддерживает до 5 параметров. Я сначала хотел использовать NULL для контроля количества параметров, но том решил, что GUID надежнее — NULL может встретиться в качестве значения параметра.
Вот так 1С создает нам сложности в управляемых формах, которые потом приходится героически преодолевать. Мне сказали, что с подобной проблемой сталкивается и фирма 1С в своих сложных типовых конфигурациях. Я не удивлен — ведь желание вынести часть формы в общие модули здраво.
Только мне сказали, что 1С использует массив параметров. Мне так не удобно, потому что приходится предварительно создавать массив параметров вместо простого вызова процедуры/функции.
Я написал пожелание в 1С, чтобы возможность передачи формы с клиента на сервер было и из клиентских модулей. Не знаю, реализуют или нет. Это было бы хорошее действие в направлении к компактному, легко модифицируемому и понятному коду.
Читайте также: