Имя: Пароль:
1C
1С v8
Как добавить произвольную колонку в ТЧ документа, УФ?
,
0 rotting
 
11.11.11
02:10
Добавил на форму произвольную колонку, нужно заполнить ее данными в процедуре ПриЧтенииНаСервере(), не могу получить строки из ТаблицыФормы((( Как это сделать?
1 rotting
 
11.11.11
02:29
неужели все спать лягли?
2 rotting
 
11.11.11
04:02
подсмотрел в "Управление небольшой фирмой", написал вот так:


&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
   ПрочитатьСтатусыНосителей();
КонецПроцедуры

Процедура ПрочитатьСтатусыНосителей()
   Для Каждого СтрокаТовары Из Объект.Товары Цикл
       Запрос = Новый Запрос();
       Запрос.Текст =
       "ВЫБРАТЬ
       |    СтатусыТоваровСрезПоследних.Статус
       |ИЗ
       |    РегистрСведений.СтатусыТоваров.СрезПоследних(&Дата, ) КАК СтатусыТоваровСрезПоследних
       |ГДЕ
       |    СтатусыТоваровСрезПоследних.ТЕ = &ТЕ";
       Запрос.УстановитьПараметр("ТЕ",СтрокаТовары.ТранспортнаяЕдиница);
       Запрос.УстановитьПараметр("Дата",ТекущаяДата());
       Выборка = Запрос.Выполнить().Выбрать();
       Пока Выборка.Следующий() Цикл
           СтрокаТовары.СтатусНосителя = Выборка.Статус;
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры


Но почему-то не работает(((, Поле СтатусНосителя  на форме пустое, но в отладчике видно что  строка

СтрокаТовары.СтатусНосителя = Выборка.Статус;

должна сработать
3 rotting
 
11.11.11
06:01
ну хватит в "пятницах" сидет((((
4 rotting
 
11.11.11
15:34
up.
5 rotting
 
11.11.11
15:40
вверх
6 rotting
 
11.11.11
23:35
и снова вверх(((
7 MikleV
 
11.11.11
23:44
как то криво написано - запрос в цикле, выборка с присвоением произвольного значения..
таблица на форме - это что - ТЗ?
8 MikleV
 
11.11.11
23:44
или ТЧ?
9 MikleV
 
11.11.11
23:45
судя по Объект.Товары - таки ТЧ?
10 MikleV
 
11.11.11
23:56
оно вообще вызывается-событие?
11 rotting
 
12.11.11
18:50
То что криво это понятно, но в типовой я другого решения не нашел, таблица на форме это ТЧ, там есть произвольная колонка "СтатусНосителя", но почему-то в таком коде она не заполняется, событие вызывается, отрабатывается, но на форме в этой колонке все равно пусто.
12 MikleV
 
12.11.11
18:51
типы того, что заполняешь, и того, чем заполняешь, совпадают?
13 rotting
 
12.11.11
18:58
(12) )))) конечно, это в первую очередь проверил. Этот способ взял из типовой, может кто другой знает?
14 acsent
 
12.11.11
19:11
Криво колонку добавил
15 rotting
 
12.11.11
19:15
добавил вот так http://saveimg.ru/show-image.php?id=b036dbbf5d10e6daf1fbbffb4186e129 , что там может быть кривого?
16 DefMB
 
12.11.11
19:49
А документ новый создаешь?
17 DefMB
 
12.11.11
19:51
А если заполнять ТекущийОбъект.Товары ? Пробовал?
18 rotting
 
13.11.11
13:45
документ не новый, сейчас попробую через ТекущийОбъект
19 MikleV
 
13.11.11
15:02
поле на форме - путь к данным правильно указан?
20 mikecool
 
13.11.11
15:11
а добавить реквизит-колонку форме не предлагать?
21 rotting
 
13.11.11
15:44
(20) а я что сделал?
22 Yorokonde
 
13.11.11
17:10
Лень все читать. Делал подобную вещь. Есть ТЧ Товары, необходимо было добавить реквизит - колонку таблицы формы "ХарактеристикиИспользуются".
Для этого написал процедуру, заполняющую данную колонку и вызывал её в нужных обработчиках формы: ПриСозданииНаСервере, ПриЧтенииНаСервере, ПослеЗаписиНаСервере.

Пример процедур:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьПризнакИспользованияХарактеристик(Объект.Товары);
КонецПроцедуры

Процедура ЗаполнитьПризнакИспользованияХарактеристик(ТаблицаФормы) Экспорт
   
   Если ТаблицаФормы.Количество() = 0 Тогда
       Возврат;
   КонецЕсли;
       
   Запрос = Новый Запрос;
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    ТаблицаТоваров.НомерСтроки,
   |    ТаблицаТоваров.Номенклатура КАК Номенклатура
   |ПОМЕСТИТЬ ТаблицаТоваров
   |ИЗ
   |    &ТаблицаТоваров КАК ТаблицаТоваров
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ТаблицаТоваров.НомерСтроки,
   |    ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура КАК Справочник.Номенклатура).УчитыватьПоХарактеристикам КАК ХарактеристикиИспользуются
   |ИЗ
   |    ТаблицаТоваров КАК ТаблицаТоваров
   |
   |УПОРЯДОЧИТЬ ПО
   |    ТаблицаТоваров.НомерСтроки";
   
   Запрос.Текст = ТекстЗапроса;
   
   Запрос.УстановитьПараметр("ТаблицаТоваров",  ТаблицаФормы.Выгрузить(,"НомерСтроки,Номенклатура"));
   
   ТаблицаПризнаков = Запрос.Выполнить().Выгрузить();
   
   Для Каждого СтрТабл из ТаблицаФормы Цикл
       
       СтрокаХарактеристик = ТаблицаПризнаков[СтрТабл.НомерСтроки-1];
       
       СтрТабл.ХарактеристикиИспользуются = СтрокаХарактеристик.ХарактеристикиИспользуются;        
   КонецЦикла;
   
КонецПроцедуры

Собственно... прекрасно работает - делал по аналогии с УТ11, там таких примеров навалом
23 MikleV
 
14.11.11
01:11
(22)и что?
24 rotting
 
14.11.11
04:41
(22) я ведь так же сделал, не работает у меня(((
25 Yorokonde
 
14.11.11
06:33
(23) что и что ?)))
(24) ты добавил вызов во все события указанные мною?
26 rotting
 
14.11.11
12:25
(25) добавил во все события, которые ты написал, результат тот же. Скоро уже громко кричать начну((((
27 MikleV
 
15.11.11
00:01
(25)ну в чем смысл твоего поста то был?
в перепосте типового кода?=)
28 MikleV
 
15.11.11
00:01
(26)конфу пришли мне на мыло, будет время - гляну