Имя: Пароль:
1C
1C 7.7
v7: Почему может не работать метод ВыгрузитьТабличнуюЧасть
0 Aleksey
 
17.01.12
16:23
Есть у меня функция в которую я передаю ссылки на документ реализация и счет-фактуру. код простой

Функция ПодготовитьТЧДок(Реализация,Фактура);
 Результат=СоздатьОбъект("ТаблицаЗначений");
 Реализация.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");

 Если ПустоеЗначение(Фактура)=0 тогда
   Фактура.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");
...
   
Вот тут у меня ступор, т.е. судя по отладчику он заходит сюда, но при этом переменная результат не меняется

Почему так может быть?
1 andrewks
 
17.01.12
16:24
а у твоей фактуры точно есть ТЧ?
2 Aleksey
 
17.01.12
16:25
Да
3 Aleksey
 
17.01.12
16:26
Более того Фактура.КоличествоСтрок() возвращает количество строк
4 Aleksey
 
17.01.12
16:27
Сообщить(""+Фактура.КоличествоСтрок());
Фактура.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");
Сообщить(""+Результат.КоличествоСтрок());

Возвращает
36
0
5 sanja26
 
17.01.12
16:30
Результат у тебя таблица, метод документа
6 sanja26
 
17.01.12
16:30
не то сказал
7 sanja26
 
17.01.12
16:31
может для результат надо колонки задать
8 Aleksey
 
17.01.12
16:32
(7) Нет, "Если переданное значение пустое, то система сама создаст объект типа «Таблица значений». "
9 Дядя Васька
 
17.01.12
16:33
потому что колонки уже есть наверное... Попробуй так:
Функция ПодготовитьТЧДок(Реализация,Фактура);
 Результат=СоздатьОбъект("ТаблицаЗначений");
 Реализация.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");

 Если ПустоеЗначение(Фактура)=0 тогда
   Результат=СоздатьОбъект("ТаблицаЗначений");
   Фактура.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");
...
10 Aleksey
 
17.01.12
16:34
(9)
Пробовал
Если ПустоеЗначение(Фактура)=0 тогда
   Результат="";
   Фактура.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");

Тогда Результат вообще строка, а не ТЗ, как должно быть
11 Aleksey
 
17.01.12
16:34
Да и первые строки ремил, все равно
12 sanja26
 
17.01.12
16:35
(8) ну и попробуй не задавать колонки
13 andrewks
 
17.01.12
16:36
а если так?

Если ПустоеЗначение(Фактура)=0 тогда
   ФактТЧ="";
   Фактура.ВыгрузитьТабличнуюЧасть(ФактТЧ);
   ФактТЧ.ВыбратьСтроку();
КонецЕсли;
14 Дядя Васька
 
17.01.12
16:37
Ну тогда так:
Функция ПодготовитьТЧДок(Реализация,Фактура);
 Результат=СоздатьОбъект("ТаблицаЗначений");
 Реализация.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");

 Если ПустоеЗначение(Фактура)=0 тогда
   Результат=СоздатьОбъект("ТаблицаЗначений");
   ДокФактура = СоздатьОбъект("Документ.СчетФактура");
   ДокФактура.НайтиДокумента(Фактура);
   ДокФактура.ВыгрузитьТабличнуюЧасть(Результат,"Номенклатура,Цена,Количество,Сумма,Единица,ГТД,СтранаПроисхождения");
...
15 Дядя Васька
 
17.01.12
16:37
+(14) ДокФактура.НайтиДокумент(Фактура); конечно
16 andrewks
 
17.01.12
16:38
а что за конфа?
17 Aleksey
 
17.01.12
16:38
Разобрался
18 Aleksey
 
17.01.12
16:39
(16) самописка

у меня у фактуры нет колонки Единица, и при выгрузки почему-то 1С вообще молча кладет на выгрузку, если нет колонки
19 Эльниньо
 
17.01.12
23:05
Результат=СоздатьОбъект("ТаблицаЗначений");
 Реализация.ВыгрузитьТабличнуюЧасть(
??????
20 Дядя Васька
 
17.01.12
23:11
(19) Да разобрался же уже. Набор колонок неверный передавал.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.