Имя: Пароль:
1C
1С v8
КАК записать данные в табличную часть
0 Смертник
 
30.11.12
15:16
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
   
   СценарииПланирования = Справочники.СценарииПланирования;
   Сценарий             = СценарииПланирования.НайтиПоНаименованию("День");
       
   ФормаПланПродаж = Документы.ПланПродаж.ПолучитьФормуВыбора();
   ФормаПланПродаж.Отбор.Сценарий.Установить(Сценарий);
   ФормаПланПродаж.Заголовок = "Выберите документ План продаж для заполнения документа Наряд на отгрузку";
   ФормаПланПродаж.РежимВыбора = Истина;
   Наряд = ФормаПланПродаж.ОткрытьМодально();

   Если НЕ ЗначениеЗаполнено(Наряд) Тогда
       Возврат;
   КонецЕсли;
   ТЧ = Наряд.СоставПлана.Выгрузить();
   Объект.Товары.Покупатель = ТЧ.Номенклатура.Контрагент;
   
   Объект.Товары.Загрузить(ТЧ)

КонецПроцедуры

Выбираю список документо по определенному сценарию и хочу заполнить его данными такими как единица измерения - взяв его из Номенклатуры, контрагентов который в документе из которого берутся данные это Покупатель.
И не могу понять почему пишет ошибку - Заполнение ТЧ не произведено!
Поле объекта не обнаружено.
Конфигурация - Управление производственным предприятием, редакция 1.3 (1.3.31.1)
1 mikecool
 
30.11.12
15:18
(0) у тебя поле объекта не обнаружено, ваш кэп
2 salvator
 
30.11.12
15:19
(0) Какое поле не обнаружено?
3 viktor_vv
 
30.11.12
15:19
А как это так хитро в табличную часть пишешь без позиционирования на строке.
Я та подозреваю цикл нужен.

ТЧ = Наряд.СоставПлана.Выгрузить();
   Объект.Товары.Покупатель = ТЧ.Номенклатура.Контрагент;
4 mikecool
 
30.11.12
15:20
(3) телепат однако )
5 Маркетолог
 
30.11.12
15:21
Какое какое
Вот тут
ТЧ = Наряд.СоставПлана.Выгрузить();
получается ТаблицаЗначений
а во тут наверное и не обнаружено
ТЧ.Номенклатура.Контрагент;
6 viktor_vv
 
30.11.12
15:22
(4) :).

И вообще ты в конечном итоге ТЧ из Наряд загружаешь в ТЧ твоего дока.
Я опять же подозреваю, что это не очень хорошо.
7 Смертник
 
30.11.12
15:26
(6) а как правильно?
Для Каждого Стр ИЗ ТЧ Цикл
   Стр.Покупатель = ТЧ. Контрагент;
КонецЦикла
Так?
8 mikecool
 
30.11.12
15:27
(7) можно пользовать ЗаполнитьЗначенияСвойств
9 salvator
 
30.11.12
15:29
(7) Последняя строчка все убъет все равно.
10 Смертник
 
30.11.12
15:30
а пример можно? Даже интересно
11 salvator
 
30.11.12
15:32
(10) Синтаксис-помощник
12 mikecool
 
30.11.12
15:34
Для Каждого Стр ИЗ ТЧ Цикл
   ЗаполнитьЗначенияСвойств(Стр.Покупатель, Стр.Контрагент);
КонецЦикла
13 hhhh
 
30.11.12
15:35
(12) круто.
14 Смертник
 
30.11.12
15:36
Заполнение ТЧ не произведено!
Поле объекта не обнаружено (Покупатель)
все равно такая же ошибка
15 salvator
 
30.11.12
15:36
ВыгрузитьКОлонку/ЗагрузитьКОлонку пробуй
16 hhhh
 
30.11.12
15:45
(14) ТЧ.Колонки.Добавить("Покупатель");
    Для Каждого Стр ИЗ ТЧ Цикл
        Стр.Покупатель = Стр.НОменклатура.Контрагент;
    КонецЦикла;

    Объект.Товары.Загрузить(ТЧ)
17 viktor_vv
 
30.11.12
15:47
(14) А покупатель это разве реквизит табличной части Товары ?
18 Смертник
 
30.11.12
15:49
Покупатель это реквезит Табличной части Состав Плана - документа План продаж, а вот в документ в который надо загрузить - табличная часть Товары и там поле Контрагент
19 salvator
 
30.11.12
15:52
(18) А чего ты тогда пытаешься записать в реквизит, которого нет?
20 Смертник
 
30.11.12
15:52
Заполнение ТЧ не произведено!
Ошибка при вызове метода контекста (Добавить): Неверное имя колонки
21 Смертник
 
30.11.12
15:54
так я хочу из Состав Плана вытянуть реквизит покупатель и записать его в Контрагент Товары или так нельзя?
22 salvator
 
30.11.12
15:54
У тебя в ТЧ есть колонка "Покупатель". Ее надо "перенести" в колонку "Контрагент" Объекта. Если так, то

ТЧ = Наряд.СоставПлана.Выгрузить();
Объект.Товары.Покупатель = ТЧ.Номенклатура.Контрагент;    
Объект.Товары.Загрузить(ТЧ);
КолонкаПокупатель = ТЧ.ВыгрузитьКолонку("Покупатель");
Объект.Товары.ЗагрузитьКолонку(КолонкаПокупатель,"Контрагент");
23 salvator
 
30.11.12
15:54
2-ю строку убери, забыл стереть
24 salvator
 
30.11.12
15:57
Только вот опять же, заполнять колонку данными из совершенно левой ТЧ, без какого-либо анализа или сопоставления - не есть гуд.
25 Смертник
 
30.11.12
15:59
так я же выбираю документ из которого гружу
Но теперь другая ошибка

Заполнение ТЧ не произведено!
Ошибка при вызове метода контекста (ВыгрузитьКолонку): Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции)
26 Смертник
 
30.11.12
16:02
так по этому отбой а вот на счет Единицы измерения так чтото и не понял, этого реквезита нет в Плане продаж - но вот в Наряд она должна попасть
27 salvator
 
30.11.12
16:04
(25) Дело не в выборе документа, а в порядке строк в его табличной части. Чуть измени его и загрузится фигня.
28 sidalexsandr
 
30.11.12
16:10
(22) Тебе нужен отладчик + Вычислить значение (туда пихаеш все переменные по которым вопросы) + F11
29 Смертник
 
30.11.12
16:10
(25) сделал сам чуть накосячил, а можно приравнять единицу измерения к определенной?
30 sidalexsandr
 
30.11.12
16:11
(26) Обычно еденичы измерения можеш поставить основную, если у тебя как у многих только шт.
31 Смертник
 
30.11.12
16:12
не у меня тонн, у нас уголь
32 Смертник
 
30.11.12
16:13
я хотел взять БазовуюЕдиницуИзмерения и запутался как
33 sidalexsandr
 
30.11.12
16:13
(29) Тебе глЗначениеПеременной и передай ей еденицу измерения как параметр и она тебе вернет основную еденицу измерения.
34 hhhh
 
30.11.12
16:15
(32) базовую нельзя, бери основную
35 dj_serega
 
30.11.12
16:16
(29) Посмотри на ТипЗнч() твоих единиц.
36 Смертник
 
30.11.12
16:18
все только досмотрел в одном случае - это справочник единицы измерения в другом - Классификатор ЕдиницИзмерения
37 Смертник
 
30.11.12
16:18
наверное поэтому и не берется
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс