Имя: Пароль:
1C
1С v8
ТабличноеПоле! Вопрос!
,
0 urbanstyle
 
22.05.13
13:46
Здравствуйте, имеется Табличное поле "Работники", тип - ТаблицаЗначений.

                    сотрудник  
1. выдал диспетчер |___________
2. принял механик  |___________
3. принял водитель |___________
4. сдал водитель   |___________

Значения этих полей выбираются из справочника "ФизЛица".

Процедура ТабличноеПолеРаботникиСотрудникНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Истина;
КонецПроцедуры


Процедура ТабличноеПолеРаботникиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   Элемент.ТекущаяКолонка = Элемент.Колонки.Найти("Сотрудник");
   ТабличноеПолеРаботникиСотрудникНачалоВыбора(Элемент, СтандартнаяОбработка);
КонецПроцедуры

Процедура ТабличноеПолеРаботникиСотрудникПриИзменении(Элемент)
   Если ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Н = 1 Тогда
       ВыдалДиспетчер = ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Сотрудник;
   ИначеЕсли ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Н = 2 Тогда
       ПринялМеханик = ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Сотрудник;
   ИначеЕсли ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Н = 3 Тогда
       ПринялВодитель = ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Сотрудник;
   ИначеЕсли ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Н = 4 Тогда
       СдалВодитель = ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.Сотрудник;
   КонецЕсли;
КонецПроцедуры

//////////
Подскажите пожалуйста, что нужно сделать чтобы первая строка (ВыдалДиспетчер)  заполнялась автоматически тем работником, который заводит этот документ?
1 vicof
 
22.05.13
13:48
ТЧ[0].Сотрудник = Ответственный
2 User_Agronom
 
22.05.13
13:49
Такой вариант не катит?
ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.ВыдалДиспетчер = ....
3 palpetrovich
 
22.05.13
13:50
Пользователь.Физлицо
4 urbanstyle
 
22.05.13
13:51
Уже пытался так :ЭлементыФормы.ТабличноеПолеРаботники.ТекущаяСтрока.ВыдалДиспетчер = ПараметрыСеанса.ТекущийПользоватеь;
\Не реагирует
5 Рэйв
 
22.05.13
13:52
(0)что-то я не понял зачем тебе табличное поле в твоем случае? Помоему судя по описанию это вполне себе просто реквизиты объекта.
6 User_Agronom
 
22.05.13
13:52
(4) А тип совпадает этих значений?
7 palpetrovich
 
22.05.13
13:52
(4) а отладчик что видит в ПараметрыСеанса.ТекущийПользоватеЛь?
8 palpetrovich
 
22.05.13
13:53
+7 и это Пользователи и Физлица - Справочники разные, так что см (3)
9 urbanstyle
 
22.05.13
13:54
не это точно табл. поле, реквизит объекта у меня есть одельно на форме "ответственный", вот с ним прокатывает "ПараметрыСеанса.ТекущийПользоватеЛь"
10 cw014
 
22.05.13
13:54
(3) Пользователь.РукаЛицо )))
11 palpetrovich
 
22.05.13
13:55
(10) не путай автора
12 Рэйв
 
22.05.13
13:56
(9)
Источник какой?  Таб часть или еще что?
13 urbanstyle
 
22.05.13
13:57
Источник - СправочникСсылка.ФизическиеЛица
14 palpetrovich
 
22.05.13
13:58
млин
ПараметрыСеанса.ТекущийПользоватеЛь.ФизЛицо
15 Рэйв
 
22.05.13
13:59
(13)ой и сложно с тобой...
Источник данных у таб поля какой?
16 urbanstyle
 
22.05.13
14:01
Тьфу : Данные - ТабличноеПолеРаботники
17 Рэйв
 
22.05.13
14:02
(16) :-))

Не...я пас.
18 palpetrovich
 
22.05.13
14:12
последний раз:
Форма, на форме табличное поле ТабличноеПоле1, на нем Колонка ФизЛицо, нижеизложенная процедура, запоkyztn его физлицом текущего пользователя

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   НоваяСтрока = ТабличноеПоле1.Добавить();
   НоваяСтрока.ФизЛицо = ПараметрыСеанса.ТекущийПользователь.ФизЛицо;
   
КонецПроцедуры
19 palpetrovich
 
22.05.13
14:12
* запоkyztn = заполняет
20 Рэйв
 
22.05.13
14:14
(18)не взлетит с Табличным полем. я потому у него источник данных и пытал ..В него добавлять надо.
21 palpetrovich
 
22.05.13
14:15
(20) забъем? :)
22 Рэйв
 
22.05.13
14:21
(21)Если мы действительно говорим про Табличное поле как элемент формы, то у нее нет метода добавить():-)

Можно заюзать .ДобавитьСтроку()  но я лично не пользовался никогда:-)
23 urbanstyle
 
22.05.13
14:24
Простите,но я не совсем понимаю, что есть ИсточникДанных.
В Св-вах:
Данные: ТабличноеПолеРаботники;
ТипЗначения: ТаблицаЗначений.
Да, табличное поле действительно находится на форме
24 palpetrovich
 
22.05.13
14:27
(22) ну не знаю, у меня добавить() есть  :)
http://4put.ru/pictures/max/622/1912142.jpg
25 Рэйв
 
22.05.13
14:28
(23)Вот ТаблицаЗначений и есть источник данных. Реквизит на форме только отбражение.

Поэтому добавляй строку в ТЗ, заполняй чем нужно, а с элементом формы делай:

ЭлементыФормы.ТабличноеПолеРаботники.СоздатьКолонки();

И будет тебе счастье:-)
26 Рэйв
 
22.05.13
14:28
(24)Стопудово у тебя ТабличноеПоле1 ТЗ или дерево:-)
27 urbanstyle
 
22.05.13
14:29
Спасибо большое Вам за терпение!!!))
28 palpetrovich
 
22.05.13
14:29
(26) ТЗ конечно, как и у автора
29 palpetrovich
 
22.05.13
14:30
(27) получилось?
30 Рэйв
 
22.05.13
14:30
(28)ааа. точно, не увидел в сабже
тип : Таблица значений
:-))
31 Рэйв
 
22.05.13
14:31
вот поназовуь как попало путаешь
32 palpetrovich
 
22.05.13
14:33
(31) открыл спойлер "код" из сабжа, прикольная там Процедура ТабличноеПолеРаботникиСотрудникПриИзменении(Элемент) - просто чудо :)
33 Рэйв
 
22.05.13
14:34
(32)Да,не избито:-))
34 palpetrovich
 
22.05.13
14:39
(33) да там собственно все в таком стиле, похоже рождается очередной шедевр ;)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший