Имя: Пароль:
1C
1С v8
Такой код вообще может теоретически вернуть ожидаемое?
,
0 Eastert
 
14.05.18
11:58
В типовой конфигурации есть такой код:

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

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

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

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

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