Как в неуправляемой форме справочника заполнить реквизит формы?

1. alw-1 27.01.15 10:19 Сейчас в теме
Есть справочник, у есть три важные реквизита значения большего тиз них надо выводить в фрму списка. Путался вывести добавиив колонку с типом поле ввода. Примерно так:[1C-CODE]
Процедура ПриОткрытии()
Построитель=Новый ПостроительОтчета;
Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(СправочникСписок);
Выборка=Построитель.Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ПустаяСтрока(Выборка.Ссылка.НомерПоКаталогу2) Тогда
ЭлементыФормы.СправочникСписок.Колонки.Колонка1.Данные = Выборка.Ссылка.НомерПоКаталогу2;
ИначеЕсли Не ПустаяСтрока(Выборка.Ссылка.НомерПоКаталогу1) Тогда
ЭлементыФормы.СправочникСписок.Колонки.Колонка1.Данные = Выборка.Ссылка.НомерПоКаталогу1;
Иначе
ЭлементыФормы.СправочникСписок.Колонки.Колонка1.Данные = Выборка.Ссылка.НомерПоКаталогу;
КонецЕсли;
КонецЦикла;

КонецПроцедуры
[1C-CODE]

Колонка1 как раз та добавленная колонка. выдает ошибку. Похоже я не могу спозиционироваться на строке справочника (СправочникСписок) но как это сделать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dem1urg 387 27.01.15 10:28 Сейчас в теме
(1) alw-1, Делать нужно вообще не так.
Если нужно вывести с форму списка справочника колонку с реквизитом самого справочника используй событие табличного поля "При получении данных"
15. DJDUH 17 27.01.15 11:33 Сейчас в теме
(1) alw-1, наверное нужно делать через функцию !
18. KiLLius 27.01.15 11:55 Сейчас в теме
(15) DJDUH, Окончательный алгоритм
1)На форме списка, у элемента "СправочникСписок" созадть колонку и назвать её "КакУгодно"
2)На форме списка, у элемента в событиях найти процедуру "ПриПолучанииДанных" и создать процедуру.
3)В модуле формы, у процедуры СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) использовать следующий код
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
	Для каждого ТекСтрока Из ОформленияСтрок Цикл
		
		ТекСтрока.Ячейки.КакУгодно.Значение ="Мой реквизит";
		ТекСтрока.Ячейки.КакУгодно.Текст="Мой реквизит";
		
	КонецЦикла;
КонецПроцедуры
Показать

4) Радоваться.

Сам лично сейчас всё это проделал.
3. alw-1 27.01.15 10:33 Сейчас в теме
вводить для этого новый реквизит справочника я не хочу, его можно было бы заполнять в форме элемента и выводить стандартным образом. Вопрос втом как запонять поле формы Реквизит формы) приоткрытии.
5. KiLLius 27.01.15 10:35 Сейчас в теме
(3) alw-1, обращение к реквизиту формы идёт так же как и реквизиту документа. Выводите на форму элемент, называете его "МойЭлемент",
и ПриОткрытии() пишите
МойЭлемент = "Самое лучшее значение в мире";

Никаких сложностей.
7. alw-1 27.01.15 10:42 Сейчас в теме
(5) KiLLius, Но это реквизит формы списка. Добавляю колонку - не запоняется:
ЭлементыФормы.СправочникСписок.Колонки.Колонка1 = Выборка.Ссылка.НомерПоКаталогу2
добавил новый реквизит :
не вижу его в данных для заполнения Колонки1.
4. KiLLius 27.01.15 10:33 Сейчас в теме
Попробуйте ещё раз описать проблему? Без ошибок в словах. Когда надо выводить? Что за реквизиты? Пример желательно.
6. alw-1 27.01.15 10:37 Сейчас в теме
В справочнике есть три реквизита , запоняются в форме элемента, в форму списка надо выводить значение большего из них.
Создавать доп. ревизит для вывода не хочу, хочу выводить значение большего в дополнительную колонку формы срписка.
8. KiLLius 27.01.15 10:50 Сейчас в теме
(6) alw-1, зачем акцентировать внимание на том, где заполняются реквизиты справочника? Достаточно того что их 3. и они заполнены.
А так в форме списка, так же создаёте реквизит. Собственный, не привязанный к реквизиту справочника.
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ТекСтрока Из ОформленияСтрок Цикл
	Реквизит1 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит1;	
      	Реквизит2 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит2;
	Реквизит3 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит3;
        
        ТекСтрока.Ячейки.МойРевизит.Текст = Макс(Реквизит1,Реквизит2,Реквизит3);
		
    КонецЦикла;

КонецПроцедуры
Показать
9. Alexey_ 27 27.01.15 10:58 Сейчас в теме
(8) KiLLius, не оптимально.
Надо одним запросом все значения реквизитов получить, а потом обрабатывать
10. KiLLius 27.01.15 10:59 Сейчас в теме
(9) Alexey_, да, согласен. ну я так написал для наглядности. Проблема же не в получить а в вывести.
11. alw-1 27.01.15 11:03 Сейчас в теме
(8) KiLLius, ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок) у меня справочник но пароцедуры: СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) не вижу в предопределенных.
12. KiLLius 27.01.15 11:06 Сейчас в теме
(11) alw-1, попробуйте в Процедуру СписокПриВыводеСтроки
13. alw-1 27.01.15 11:15 Сейчас в теме
И еще вопрос - я добавляю реквизит формы списка, но когда пытаюсь разместить данные на форме то его не видно.
14. alw-1 27.01.15 11:31 Сейчас в теме
И когда создаю новыю колонку то в данных вижу только данные справочника, а нового реквизита нет - как поместить его отображение на форму.(В управляемой просто перетаскиванием. а как здесь?)
16. KiLLius 27.01.15 11:41 Сейчас в теме
(14) alw-1, никак. Я видимо ввёл в заблуждение, не обязательно создавать реквизит формы списка, моя ошибка. Просто добавляете колонку, и по её имени заполняете её в событийной процедуре "СправочникСписокПриПолученииДанных(Элемент,ОформленияСтрок)"
17. alw-1 27.01.15 11:54 Сейчас в теме
Так?
ТекСтрока.Ячейки.Колонка1 = Макс(Реквизит1,Реквизит2,Реквизит3);
19. alw-1 27.01.15 11:59 Сейчас в теме
Я добавил колонку - Колонка1 , тип поле ввода,
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ТекСтрока Из ОформленияСтрок Цикл
    Реквизит1 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит1;    
    Реквизит2 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит2;
    Реквизит3 = ТекСтрока.ДанныеСтроки.Ссылка.реквизит3;
        
    ТекСтрока.Ячейки.Колонка1 = Макс(Реквизит1,Реквизит2,Реквизит3);
        
    КонецЦикла;

КонецПроцедуры
Показать

Колонка1 - не запоняется.
20. KiLLius 27.01.15 12:04 Сейчас в теме
(19) alw-1, Выше я подробнее и правильнее расписал. Заполнение "Значения" И "Текста" обязательно.
21. alw-1 27.01.15 12:05 Сейчас в теме
Да и вообще где вызывается эта процедура - поставил отладчик при открытии справочника в нее не попадаю.
22. KiLLius 27.01.15 12:10 Сейчас в теме
(21) alw-1,
Эта процедура события, она не пройдётся отладчиком если её явно не указать.
23. alw-1 27.01.15 12:29 Сейчас в теме
(22) KiLLius, Вот как показывали все и сделал , добавил событие Списка , отладччик при обходе попадет, данные присваиваются но на форме нет.
ТекСтрока.Ячейки.Колонка1.Текст = Макс(Реквизит1,Реквизит2,Реквизит3);

Колонка1 - пуста. Что я еще не сделал?
24. Alexey_ 27 27.01.15 12:42 Сейчас в теме
(23) alw-1, Макс(Реквизит1,Реквизит2,Реквизит3) что возвращает?
26. alw-1 27.01.15 12:44 Сейчас в теме
(24) Alexey_,Строку, она же и присваевается.
29. KiLLius 27.01.15 12:54 Сейчас в теме
(23) alw-1, Кроме ТекСтрока.Ячейки.Колонка1.Текст присвойте ещё и
ТекСтрока.Ячейки.Колонка1.Значение значение.

У меня в исходном коде в конфе так выглядит:

ТекСтрока.Ячейки.Колонка1.Значение = Макс(Реквизит1,Реквизит2,Реквизит3);
ТекСтрока.Ячейки.Колонка1.Текст = ТекСтрока.Ячейки.Колонка1.Значение;



ну кроме названий)
32. alw-1 27.01.15 14:44 Сейчас в теме
(29) KiLLius, Да этот вариант тоже работает. спасибо.
33. KiLLius 27.01.15 14:53 Сейчас в теме
(32) alw-1, та не за что.Но как мне кажется вариант Alexey_ по корректней, даже не знал что так можно (
25. alw-1 27.01.15 12:42 Сейчас в теме
Не понимаю почему не отражается на форме текст Колонки1 (Тип - ПолеВвода строка дл. 10) , при отладке данные присваиваются но на форме списка нет - пусто?
28. Alexey_ 27 27.01.15 12:54 Сейчас в теме
(25) alw-1, а так?
ТекСтрока.Ячейки.Колонка1.УстановитьТекст(Макс(Реквизит1,Реквизит2,Реквизит3));

либо тот код, что есть + ТекСтрока.Ячейки.Колонка1.ОтображатьТекст = Истина;
30. alw-1 27.01.15 12:58 Сейчас в теме
(28) Alexey_, Да так работает, праввда не понял различия, что присвить , что установить? Но все равно спасибо.
31. Alexey_ 27 27.01.15 12:59 Сейчас в теме
(30) alw-1, в СП посмотри различия
27. alw-1 27.01.15 12:51 Сейчас в теме
Может что-то в настройках Колонки1 ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот