|
|
|
Заполнение формы: почему выдает ошибку? SleepyHead, ndrv, СвинТуз, Kigo_Kigo, formista2000, qwerty, _Batoo, X Leshiy, 1cVandal, Шурик71, maxar, Radion, Fish, piter3, глазковыколупыватель, Мультук, Хряк, paramedic, zzz_zzz_zzz, JohnGilbert, dvdle, программистище, Ногаминебить, kir-g, Homer, Frya, Vstur, Greeen, trad, Ненавижу 1С, Prog_man, comp2006, Олдж, ДенисСмирнов, crotnn, Crusher, Волшебник, Amra, yurikmellon2
| ☑ | ||
|---|---|---|---|---|
|
0
dvdle
25.12.25
✎
13:16
|
Ввожу такой код в ФормеСписка в РАСШИРЕНИИ.
&НаСервереБезКонтекста Процедура СписокПриПолученииДанныхНаСервере(КонтактнаяИнформация, Настройки, Строки) ВыводитьАдресЭП = Истина; Для Каждого КлючИЗначение Из Строки Цикл Если Не КлючИЗначение.Значение.Данные.Свойство("АдресЭП") Тогда ВыводитьАдресЭП = Ложь; Прервать; КонецЕсли; КонецЦикла; Если ВыводитьАдресЭП Тогда Запрос = Новый Запрос( "ВЫБРАТЬ | Ссылка, | АдресЭП |ИЗ | Справочник.КВП_Здания.КонтактнаяИнформация |ГДЕ | Ссылка В(&МассивСсылок) | И АдресЭП <> """""); Запрос.УстановитьПараметр("МассивСсылок", Строки.ПолучитьКлючи()); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Данные = Строки[Выборка.Ссылка].Данные; Если Данные.АдресЭП = "" Тогда Данные.АдресЭП = Выборка.АдресЭП; Иначе Данные.АдресЭП = Данные.АдресЭП + "; " + Выборка.АдресЭП; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ОсновнаяТаблица = "Справочник.КВП_Здания"; СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; СвойстваСписка.ТекстЗапроса = ТекстЗапросаСписка(); ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список,СвойстваСписка); НовыйЭлемент = Элементы.Вставить("КодФИАС", Тип("ПолеФормы"), Элементы.Список, Элементы.Наименование); НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи; НовыйЭлемент.ПутьКДанным = "Список.КодДомаПоФИАС"; НовыйЭлемент.Заголовок = "Код ФИАС"; НовыйЭлемент = Элементы.Вставить("ПочтАдрес", Тип("ПолеФормы"), Элементы.Список, Элементы.КодФИАС); НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи; НовыйЭлемент.ПутьКДанным = "Список.КонтактнаяИнформация.АдресЭП"; НовыйЭлемент.Заголовок = "Почт. адрес"; КонецПроцедуры &НаСервере Функция ТекстЗапросаСписка() Возврат "ВЫБРАТЬ | КВП_Здания.Код КАК Код, | КВП_Здания.Наименование КАК Наименование, | КВП_Здания.ТипСооружения КАК ТипСооружения, | КВП_Здания.НомерДома КАК НомерДома, | КВП_Здания.КодДомаПоФИАС КАК КодДомаПоФИАС, | КВП_Здания.ВидСооружения КАК ВидСооружения, | КВП_Здания.Этажей КАК Этажей, | КВП_Здания.Подъездов КАК Подъездов, | КВП_Здания.ПлощадьЗданияОбщая КАК ПлощадьЗданияОбщая, | КВП_Здания.ПлощадьЗданияЖилыхНежилыхПомещений КАК ПлощадьЗданияЖилыхНежилыхПомещений, | КВП_Здания.ПлощадьЗданияМестОбщегоПользования КАК ПлощадьЗданияМестОбщегоПользования, | КВП_Здания.ДатаВводаВЭксплуатацию КАК ДатаВводаВЭксплуатацию, | КВП_Здания.Ссылка КАК Ссылка, | РС_СведенияОФормированииФондаЗданияСрезПоследних.СпособФормированияФонда КАК СпособФормированияФонда, | УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних.РасчетныйСчетУслугКапитальногоРемонта КАК РасчетныйСчетУслугКапитальногоРемонта, | КВП_Здания.КонтактнаяИнформация.( | КВП_Здания.КонтактнаяИнформация.АдресЭП = (ВЫРАЗИТЬ("""" КАК СТРОКА(100))) КАК АдресЭП | ) КАК КонтактнаяИнформация |ИЗ | Справочник.КВП_Здания КАК КВП_Здания | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РС_СведенияОФормированииФондаЗдания.СрезПоследних КАК РС_СведенияОФормированииФондаЗданияСрезПоследних | ПО КВП_Здания.Ссылка = РС_СведенияОФормированииФондаЗданияСрезПоследних.Здания | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УПЖКХ_СведенияОбОбслуживающихЗданияОрганизациях.СрезПоследних КАК УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних | ПО КВП_Здания.Ссылка = УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних.Здание"; КонецФункции Но при выполнении выдает ошибку Ошибка при установке значения атрибута контекста (ПутьКДанным) {КодФИАС Справочник.КВП_Здания.Форма.ФормаСписка.Форма(59)}:НовыйЭлемент.ПутьКДанным = "Список.КонтактнаяИнформация.АдресЭП"; [ОшибкаВоВремяВыполненияВстроенногоЯзыка] по причине: Недопустимое значение |
|||
|
1
Мультук
гуру
25.12.25
✎
13:21
|
(0)
Зачем это ?
КВП_Здания.КонтактнаяИнформация.(
КВП_Здания.КонтактнаяИнформация.АдресЭП = (ВЫРАЗИТЬ("""" КАК СТРОКА(100))) КАК АдресЭП
) КАК КонтактнаяИнформация
Почему не сделать еще один join к Справочник.КВП_Здания.КонтактнаяИнформация КАК тКИ |
|||
|
2
dvdle
25.12.25
✎
13:47
|
Если вы имеете в виду так запрос переделать, то не работает тоже. Первоначальный код я прописывала, чтобы значение в виде строки именно доставалось:
Функция ТекстЗапросаСписка() Возврат "ВЫБРАТЬ | КВП_Здания.Код КАК Код, | КВП_Здания.Наименование КАК Наименование, | КВП_Здания.ТипСооружения КАК ТипСооружения, | КВП_Здания.НомерДома КАК НомерДома, | КВП_Здания.КодДомаПоФИАС КАК КодДомаПоФИАС, | КВП_Здания.ВидСооружения КАК ВидСооружения, | КВП_Здания.Этажей КАК Этажей, | КВП_Здания.Подъездов КАК Подъездов, | КВП_Здания.ПлощадьЗданияОбщая КАК ПлощадьЗданияОбщая, | КВП_Здания.ПлощадьЗданияЖилыхНежилыхПомещений КАК ПлощадьЗданияЖилыхНежилыхПомещений, | КВП_Здания.ПлощадьЗданияМестОбщегоПользования КАК ПлощадьЗданияМестОбщегоПользования, | КВП_Здания.ДатаВводаВЭксплуатацию КАК ДатаВводаВЭксплуатацию, | КВП_Здания.Ссылка КАК Ссылка, | РС_СведенияОФормированииФондаЗданияСрезПоследних.СпособФормированияФонда КАК СпособФормированияФонда, | УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних.РасчетныйСчетУслугКапитальногоРемонта КАК РасчетныйСчетУслугКапитальногоРемонта, | КВП_ЗданияКонтактнаяИнформация.АдресЭП КАК АдресЭП |ИЗ | Справочник.КВП_Здания.КонтактнаяИнформация КАК КВП_ЗданияКонтактнаяИнформация | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КВП_Здания КАК КВП_Здания | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РС_СведенияОФормированииФондаЗдания.СрезПоследних КАК РС_СведенияОФормированииФондаЗданияСрезПоследних | ПО КВП_Здания.Ссылка = РС_СведенияОФормированииФондаЗданияСрезПоследних.Здания | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УПЖКХ_СведенияОбОбслуживающихЗданияОрганизациях.СрезПоследних КАК УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних | ПО КВП_Здания.Ссылка = УПЖКХ_СведенияОбОбслуживающихЗданияОрганизацияхСрезПоследних.Здание | ПО КВП_ЗданияКонтактнаяИнформация.Ссылка = КВП_Здания.Ссылка"; КонецФункции |
|||
|
3
Ногаминебить
25.12.25
✎
13:52
|
Выполнить запрос в консоли, посмотреть, что попадает в поле КонтактнаяИнформация. Вероятно, там тип значения, у которого попросту не может быть такого реквизита, как АдресЭП.
Запрос смотреть лениво, но что-то вроде ВЫБОР КОГДА типзначения(КВП_Здания.КонтактнаяИнформация)="у чего там есть нужный реквизит" ТОГДА вот этот реквизит адрес ИНАЧЕ "Нету ничего" наверное спасет гиганта мысли и отца русской демократии. |
|||
|
4
Мультук
гуру
25.12.25
✎
13:49
|
(2)
0) Нет такого сообщения об ошибке "не работает" 1) Предположим, что для некоего здания из Справочник.КВП_Здания в Справочник.КВП_Здания.КонтактнаяИнформация есть телефон, адрес и электронная почта. Вы понимаете, что в этом случае вместо одной строки, будет три, а динамический список будет плакать горькими слезами ? 2) Почему вы решили, что КВП_ЗданияКонтактнаяИнформация.АдресЭП КАК АдресЭП это "Почт. адрес", а не телефон или эл.почта Где отбор по полям "Тип" и "Вид", если вам нужен конкретно адрес ? 3) Мой вам добрый совет. Отложите в сторону расширение. Создайте обработку и в ней в режиме конфигуратора нащёлкайте, то что вы хотите. И только потом вернитесь |
|||
|
5
программистище
25.12.25
✎
13:58
|
сначала накодят ИИ, а потом пытаются выяснить, что не так, совсем логически думать разучились (и изучать матчасть)
|
|||
|
6
СвинТуз
25.12.25
✎
16:53
|
(0)
Так в динамическом списке нет поля АдресЭП Вроде как. Есть ... типа: | КВП_Здания.КонтактнаяИнформация.( | КВП_Здания.КонтактнаяИнформация.АдресЭП = (ВЫРАЗИТЬ("""" КАК СТРОКА(100))) КАК АдресЭП | ) КАК КонтактнаяИнформация Но это какой то список с контактной информацией который называется "КонтактнаяИнформация". |
|||
|
7
СвинТуз
25.12.25
✎
16:55
|
| ПО КВП_ЗданияКонтактнаяИнформация.Ссылка = КВП_Здания.Ссылка И КВП_Здания.КонтактнаяИнформация.АдресЭП = (ВЫРАЗИТЬ("""" КАК СТРОКА(100))
Но это не хороший код тоже. |
|||
|
8
СвинТуз
25.12.25
✎
16:57
|
плохо написал.
предлагал не все сроки из ТЧ присоединять, а только нужные. Но если строк будет больше одной список сдохнет. |
|||
|
9
СвинТуз
25.12.25
✎
16:57
|
С такой простыней к уважаемым людям? ))))
|
|||
|
10
СвинТуз
25.12.25
✎
17:01
|
это же вот по другому смотриться?
&НаСервере Функция ТекстЗапросаСписка() Возврат "ВЫБРАТЬ | КВП_Здания.Код КАК Код, | КВП_Здания.Наименование КАК Наименование, ............................. | КВП_Здания.КонтактнаяИнформация.( | КВП_Здания.КонтактнаяИнформация.АдресЭП = (ВЫРАЗИТЬ("""" КАК СТРОКА(100))) КАК АдресЭП | ) КАК КонтактнаяИнформация |ИЗ | Справочник.КВП_Здания КАК КВП_Здания"; КонецФункции |
|||
|
11
СвинТуз
25.12.25
✎
17:03
|
(0)
Выдает ошибку потому что в первом случае нет такого поля в запросе дин. списка во втором случае строк по ключевому полю в динамическом списке более одного |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |