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

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

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

Колонка1 как раз та добавленная колонка. выдает ошибку. Похоже я не могу спозиционироваться на строке справочника (СправочникСписок) но как это сделать?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Dem1urg 386 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_ 26 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_ 26 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_ 26 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_ 26 27.01.15 12:59 Сейчас в теме
(30) alw-1, в СП посмотри различия
27. alw-1 27.01.15 12:51 Сейчас в теме
Может что-то в настройках Колонки1 ?
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)