Имя: Пароль:
1C
 
Как записать значение типа "СправочникСсылка" в свою колонку табличного поля
0 ZOOBR
 
11.06.10
14:18
1С 8.2, обычная форма(не управляемая). Есть табличное поле документа. Добавил туда новую колонку и при выводе строки хочу заполнить ее значением типа "СправочникСсылка". Как это можно сделать. Как добавить текст я знаю, а вот так что-то не выходит. Обычные колонки реквизитов заполняются просто, т.е. через ДанныеСтроки, но со своей колонкой так не получиться так как данных у нее нет. Как присвоить данные колонке, кроме как с помощью реквизита я не знаю.
Может кто подскажет можно ли это вообще сделать.
1 shuhard
 
11.06.10
14:23
(0) в неуправляемой форме с помощью "При выводе строки" можно всё
2 ZOOBR
 
11.06.10
14:38
Можно то оно можно но я вообще конкретную ситуацию описал и все мне не надо. Может я плохо объяснил. Короче есть документ у которого в табличной части есть реквизит "Номенклатура" типа "СправочникСсылка". В табличном поле я добавил еще одну колонку, назначил ей тип "СправочникСсылка.МойСправочник" и хочу в процедуре "ПриВыводеСтроки()" заполнять его из реквизита поля "Номенклатура". Вот тут возникает проблема! В процедуре "ПриВыводеСтроки" только два параметра.
Это "ДанныеСтроки", через него можно обратиться к данным строки табличного поля(для моей колонки данных нет, так как нет такого реквизита в документе и добавлять не хочеться, не будешь же для каждой колонки реквизиты табличной части плодить).
И "ОформлениеСтроки". Через данный параметр я могу записать в ячейку табличного поля текст, но никак не ссылку на справочник, т.е. это тоже не решение.

Вот собственно я и спрашиваю можно ли в "свою" колонку табличного поля без реквизита табличной части заполнять значениями типа "СправочникСсылка" в процедуре "ПриВыводеСтроки", чтобы потом можно было их изменить или открыть из табличного поля???
3 Mitriy
 
11.06.10
14:44
(2) а зачем такое извращение? почему просто не связать с данными Номенклатура? на картинке по определению не может быть данных...
4 ZOOBR
 
11.06.10
14:51
У Номенклатуры есть реквизит "КакоеТОСвойство". Именно его я хочу выводить в табличное поле напротив номенклатуры. Но не просто показать его, а чтобы можно было выбрать(изменить) его. Например в документе поступления при проведении данное свойство будет изменяться у элемента справочника "Номенклатура" если его изменили в моей дополнительной колонке. Не создавать же реквизит для этих целей!? Мне же хранить эти данныйе не требуется! Зачем базу забивать!? Ну теперь хоть я понятно объяснил?
5 Alpen906
 
11.06.10
15:35
ПриВыводеСтроки() или лучше ПриПолученииДанных() выводить.
Дальше обрабатывать событие табличного поля Выбор() и в зависимости от колонки открывть нужное свойство.
6 ZOOBR
 
11.06.10
15:44
Да я не спрашиваю как лучше выводить, а как вообще вывести???? Неужели я так непонятнонаписал. Еще раз! Вопрос!

КАК ЗАПОЛНЯТЬ ПОЛЯ КОЛОНКИ ТАБЛИЧНОГО ПОЛЯ, НЕ ПРИВЯЗАННОЙ К РЕКВИЗИТУ ТАБЛИЧНОЙ ЧАСТИ ЗНАЧЕНИЯМИ ТИПА "СПРАВОЧНИКССЫЛКА" В ПРОЦЕДУРЕ ПРИВЫВОДЕСТРОКИ()?
7 Mitriy
 
11.06.10
15:45
(6) иди ори в другое место...
8 Alpen906
 
11.06.10
15:49
Тебе ответили уже. Читай внимательно...
9 Alpen906
 
11.06.10
16:00
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

  Номенклатура = ДанныеСтроки.Ссылка;
  Свойство = ПолучитьСвойство(Номенлатура);    
  ОформлениеСтроки.УстановитьТекст(Свойство);

КонецПроцедуры // СправочникСписокПриВыводеСтроки()

Но с точки зрения производительности лучше использовать процедуру ПриПолученииДанных().
10 Alpen906
 
11.06.10
16:02
+(9) Сорри. Небольшая неточность...
ОформлениеСтроки.Ячейки.ТвояКолонка.УстановитьТекст(Свойство);
11 ZOOBR
 
15.06.10
09:30
ОформлениеСтроки.УстановитьТекст(Свойство);

Данная конструкция устанавливает текстовое представление ячейки и ссылку на элемент справочника таким образом в ячейку не запишешь, на то оно и "оформлениестроки"! Вот в чем и загвоздка. Для работы с данными есть "ДанныеСтроки", но для своей колонки это не работает, и кроме того доступно только в толстом клиенте. Так что спасибо всем за ответы но вопрос остается открытым.
12 Defender aka LINN
 
15.06.10
09:36
Выводи не табличную часть, а ТЗ, делов-то.
13 ZOOBR
 
15.06.10
09:59
Не совсем понял, что значит выводи ТЗ. Наверное имелось ввиду свое табличное поле. Да действительно в своем табличном поле такой проблемы нет и я уже подумывал об этом, в свойство "Данные" можно прописать все что угодно, но переписывать весь документ на свое табличное поле я не считаю рациональным. Мне уже начинает казаться, что сделать то о чем я говорю просто нельзя и самое простое это всё таки добавлять реквизит табличной части в документ, и соответственно хранить в базе то что хранить не нужно.
14 73
 
15.06.10
10:04
(6)(11) А что ты с этим значением делать собираешься? Оно ведь нигде не хранится.
15 73
 
15.06.10
10:13
(14)+ И если не проскролингуешь, то и не заполнится. Так, что ли?

ПриВыводеСтроки/ПриПолученииДанных - показать вычисляемые поля. А ПОКАЗАТЬ достаточно текст.
16 ZOOBR
 
15.06.10
10:26
Если решить это так как я хотел, то это автоматом дает нормальный способ быстрого открытия элемента справочника ссылка на который находится в ячейке, а так чтобы его посмотреть нужно городить кнопки, пункты меню и тому подобное, как в старухе семёрке. И во-вторых значения своей колонки используются в документе до проведения(сразу скажу что смысл в моей ситуации в этом есть). Ну и самое главное это минимум изменений в конфигурации.
17 73
 
15.06.10
10:33
(16) Как вариант:
Сделай массив(или подобное) по кол-ву строк в ТЧ. Заполняй ссылками. Только всЁ. Синхронность обеспечь. Показывай текст. Значение используй из массива.

Ну и 2й вариант: Значение всегда можно вычислить. Раз оно вычисляемое)

Открытие: Кнопки не городи. Перепиши обработчик открытия. Это проще.
18 73
 
15.06.10
10:39
(17)+
Кстати, а так попробовал?:
ОформлениеСтроки.Ячейки.Колонка.Значение = ...
19 ZOOBR
 
15.06.10
10:46
Пробовал! Так тоже текст просто записывается и при изменении как пустое светится. Про обработчик открытия тоже вариант. Буду пробовать.  Списибо за советы.
20 73
 
15.06.10
10:51
(19) ПриИзменении и будет пустое. Оно ж не хранится. Его подсунуть надо. ПриНачалеРедактирования.
В ЕСИС статья есть что-то: "Редактирование в колонке, не связанной с данными" с примером.

ЗЫ. У меня отладчик говорит, что  ОформлениеСтроки.Ячейки.Колонка.Значение - СправочникСсылка.ссс
21 ZOOBR
 
15.06.10
11:03
Сейчас попробую....
22 ZOOBR
 
15.06.10
14:22
Что-то у меня не получается подсунуть значение. Не просвятишь каким образом ты это делаешь?
23 73
 
15.06.10
14:26
(22) Статью нашел?

Оттуда кратко:
Основные принципы реализации редактирования в колонке, не связанной с данными, следующие:

1. Установить элемент управления в требуемой колонке. Это можно сделать, используя свойство ЭлементУправления колонки табличного поля.
-Это можно прямо в конфигураторе.


2. Перед началом редактирования необходимо установить элементу управления редактируемое значение. Это можно сделать, используя событие ПриНачалеРедактирования() табличного поля.

ЭлементыФормы.ТП.Колонки.Колонка2.ЭлементУправления.Значение = НужноеЗначение;

3.При окончании редактирования новое значение можно получить у элемента управления при обработке события ПриИзменении() данного элемента управления.


Если редактируемое значение должно нестандартно отображаться в табличном поле, то необходимо использовать событие ПриВыводеСтроки() табличного поля.
24 ZOOBR
 
15.06.10
15:21
БОЛЬШОЕ СПАСИБО. Все теперь понятно. Я просто забыл про ЭлементУправления и поэтому ошибка лезла. Благодаря вам можно считать что тема закрыта.:) Но если не сложно можно статью мне на 1С_8@mail.ru. Буду благодарен!
25 73
 
15.06.10
15:24
(24) Погугли "ЕСИС".
26 ZOOBR
 
15.06.10
15:36
Где скачать его я знаю. Проблемы с инетом просто, поэтому и прошу почтой.
27 73
 
15.06.10
15:51
(26) http://slil.ru/29335135
Статья(тхт) без картинки.
28 ZOOBR
 
15.06.10
16:16
Спасибо!!
AdBlock убивает бесплатный контент. 1Сергей