Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Такой код вообще может теоретически вернуть ожидаемое?

Такой код вообще может теоретически вернуть ожидаемое?
Я
   Eastert
 
14.05.18 - 11:58
В типовой конфигурации есть такой код:

    ТаблицаКонтрагентов  = ДокументыДляИмпорта.Скопировать(,"НомерСтроки, СчетКонтрагентаДляПоиска, ОКПОКонтрагента, ИмяКонтрагента");

где
- "ТаблицаКонтрагентов" - ДеревоЗначений,  реквизит обработки;
- "ДокументыДляИмпорта" - ТаблицаЗначений, простая переменная;

В конце концов у дерева "ТаблицыКонтрагентов" не одной строки не появляется.
Если смотреть отладчиком то данные в таблице значений есть в этом:
    ДокументыДляИмпорта.Скопировать(,"НомерСтроки, СчетКонтрагентаДляПоиска, ОКПОКонтрагента, ИмяКонтрагента");

Это дерево значений всегда будет пустым? Опять же, это типовый код конфигурации Бухгалтерия на УФ.
 
 
   Eastert
 
1 - 14.05.18 - 11:59
Как заканчивать код в сообщении?)
Уже когда строка "где", там не код, а простой мой текст поста
   Eastert
 
2 - 14.05.18 - 11:59
блин....
   Eastert
 
3 - 14.05.18 - 12:00
и тут также, ладно
   Ёпрст
 
4 - 14.05.18 - 12:06
(0) скопировать возвращает ТаблицуЗначений. Дальше думай.
   Eastert
 
5 - 14.05.18 - 12:38
(4) я понимаю, что логичней задать вопрос про то, как преобразовать таблицу значений в дерево значений, просто это код типовый и не понятно, что вообще должно в этом месте произойти и на что разработчики здесь расчитывают.
   D_E_S_131
 
6 - 14.05.18 - 12:44
(4) У ДереваЗначений есть метод "Скопировать()", который возвращает ДЗ.
   Eastert
 
7 - 14.05.18 - 12:45
(6) не совсем понял зачем
   Ёпрст
 
8 - 14.05.18 - 12:48
(7) затем, что тип ДокументыДляИмпорта должен быть ДЗ, чтоб код в (0) был рабочим
   Eastert
 
9 - 14.05.18 - 12:48
И вообще-то там дальше идет вот такая строка 
    Для каждого СтрокаДокумента Из ТаблицаКонтрагентов Цикл

И ругается с ошибкой "Итератор для значения не определен", 
если как я понял обход дерева делается по его строкам, а не по нему самому, то чего разработчики ожидали??
   Ёпрст
 
10 - 14.05.18 - 12:50
но в данном случае, тут всё наоборот, раз у скопировать есть параметры, то ТаблицаКонтрагентов  должна иметь тип ТЗ.
 
 Рекламное место пустует
   Eastert
 
11 - 14.05.18 - 12:51
(10) Но это реквизит обработки, и простым присвоением тип не поменятся
   Eastert
 
12 - 14.05.18 - 12:53
Хотя возможно, что я выгрузив стандартную обработку и запуская как внешнюю, где-то что-то с видимостью реквизитами не учел и здесь ТаблицаКонтрагентов должна быть простой переменной.. не знаю уже
   Eastert
 
13 - 14.05.18 - 12:59
аа, вообщем я, мне кажется понял, этот код был в модуле менедержера обработки в конфигурации, я же когда обработку себе выгружал, за неимением модулей менеджера во внешних обработках, перенес все в модуль объекта, а модуль объекта уже имеет видимость реквизитов, в отличии от модуля менеджера.
   Eastert
 
14 - 14.05.18 - 13:00
(13) и если в модуле менеджера ТаблицаКонтрагентов было обчычной неопределенной переменой и легко становилась таблицей значений, то в модуле объекта ее тип нельзя было изменить и ничего не присваивалось
   D_E_S_131
 
15 - 14.05.18 - 13:03
(14) Так это еще как бы и не совсем уже "код разработчиков, которые непонятно на что рассчитывают"? xD
   Eastert
 
16 - 14.05.18 - 13:14
(15) да), нельзя быть ни в чем уверенным, особенно когда на кого-то наезжаешь

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует