Имя: Пароль:
1C
 
Почему не пишет в ячейку в ТабличнойЧасти, хотя колонка 100% есть?
0 mis012
 
27.07.15
09:30
Здравствуйте. Конфа типовая. Форма не УФ.
Есть табличное поле ОтработанноеВремя, пишу туда с excel.

Делаю форма.ЭлементыФормы.ОтработанноеВремя.ДобавитьСтроку(); - работает
Далее, если пишу в поле Сотрудник, то все оК:

стр = форма.ЭлементыФормы.ОтработанноеВремя.ТекущиеДанные;
стр.Сотрудник            = Сотрудник;

Но там есть колонка День1,...,ДеньХ.
если пытаюсь выполнить:
стр.День1 = "ааа";

То выдает ошибку: {(1)}: Поле объекта не обнаружено

Хотя тут же простым циклом проверяю все колонки таблицы:
//для каждого колонка из форма.ЭлементыФормы.ОтработанноеВремя.Колонки цикл
    Сообщить(колонка.Имя);    
конеццикла;

Колонока День1 и т.д. - есть

Я думаю, это из-за того, что у поля сотрудник в св-вах заполнен рекв. Данные - т.е. оно связано с ТабличнойЧастью самого док-та, поле День1 - у него не заполнен рекв. Данные, т.е. оно напрямую не связано ни с одним рекв ТабличнойЧасти Документа

Вопрос: Как корректно записать текст в колонку День1???
1 hhhh
 
27.07.15
09:34
там нет данных. Данные формируются на лету в момент вывода строки. Поэтому записать туда что-то не получится.
2 mis012
 
27.07.15
09:43
(1) Ну пользователь то вводит туда
Я 6
и прочее.
Что это можно сделать только пользователю, а программно не получится?
3 1Сергей
 
27.07.15
09:45
стр.День1.Значение = ...
4 mis012
 
27.07.15
09:52
(3) Не помогло, все равно поле День1 не найдено.

Может как-то к нему подобраться не через объект ТекущиеДанные?
5 1Сергей
 
27.07.15
09:55
(4) ты это при каком событии делаешь? ПриПолученииДанных или ПриВыводеСтроки?
6 hhhh
 
27.07.15
09:58
(4) ТекущиеДанные - это по-любому табличная часть. Это да. Так не получитя.
7 osa1C
 
27.07.15
10:18
(0) Попробуй
Стр = ЭтотОбъкт.ИмяТЧ.ДобавитьСтроку();
8 Andrey2C
 
27.07.15
10:18
(4) Процедура ПриВыводеСтроки()
ОформлениеСтроки.Ячейки.День1.Значение = ТвоеЗначение;
9 mis012
 
27.07.15
11:46
(5) Я вообще события не использовал...
Просто:
д = Документы.ТабельУчетаРабочегоВремениОрганизации.СоздатьДокумент();
    д.дата                     = конецмесяца(дата(лгод,ИндексМесяца,1));
...

форма = д.ПолучитьФорму();
форма.Открыть();

...

форма.ЭлементыФормы.ОтработанноеВремя.ДобавитьСтроку();
стр = форма.ЭлементыФормы.ОтработанноеВремя.ТекущиеДанные;
стр.Сотрудник = Сотрудник;
стр.День1 = ДеньЗнач;
10 mis012
 
27.07.15
11:48
(8) А как мне из моей обработки это выполнить?
Как мне эту процедуру использовать и в модуле формы точно такой вообще нет.
11 Andrey2C
 
27.07.15
11:58
(9) Заполняешь в процедуре При выводе строки(). А в качестве значения подставляешь свои значения.  Это процедура табличного поля. Становишься на табличное поле и ищешь в свойствах.
12 mis012
 
27.07.15
12:01
(11) Так это надо менять типовую конфу...если я правильно понял.
Что то не хочется лишний раз залазить...
Думал можно обойтись без этого.
Тогда буду заполнять исходные ТЧ в объекте (в документе).

Как то можно этот обработчик переопределить в моей обработке, чтобы не залазить в конфу?
13 mis012
 
27.07.15
14:27
Спасибо всем за ответы.
Все таки буду переделывать, на загрузку в тч документов