Имя: Пароль:
1C
 
Объект не может быть перепозиционирован... - почему?
0 Злопчинский
 
29.12.14
20:05
Собственно:
.

ТЗостатки.Выгрузить(ТЗФирмы);
ТЗФирмы.Свернуть("Фирма",);
ТЗФирмы.НоваяКолонка("Документ","Документ.ИнвентаризацияТМЦ");

ТЗФирмы.ВыбратьСтроки();
Пока ТЗФирмы.ПолучитьСтроку() = 1 Цикл
  ТЗФирмы.Документ = СоздатьОбъект("Документ.ИнвентаризацияТМЦ");
КонецЦикла;

//тут всякие промежуточные вычисления

//по всем фирмам инвентаризации
ТЗФирмы.ВыбратьСтроки();
Пока ТЗФирмы.ПолучитьСтроку() = 1 Цикл
  ТЗФирмы.Документ.Новый();

ЕГГОГ!
...АЦИЯ.DIR\ЗАГРУЗКАИНВЕНТАРИЗАЦИЯ.ERT(205)}: Объект не может быть перепозиционирован!
.
почему, собственно?
что не так?
.
я понимаю, привыкли руки к топорам и все такое...
но все же?
1 Остап Сулейманович
 
29.12.14
20:07
(0) Много всяких слов напрашивается... Особенно вот это :
ТЗФирмы.Документ = СоздатьОбъект("Документ.ИнвентаризацияТМЦ");
2 Злопчинский
 
29.12.14
20:07
а вот почему!
3 Злопчинский
 
29.12.14
20:08
Потому что надо правильно вот так
ТЗФирмы.НоваяКолонка("Документ");
4 Злопчинский
 
29.12.14
20:09
Ветку можно закрыть
5 Остап Сулейманович
 
29.12.14
20:11
+ (1) Коротко :
//ОбъектДокументыИнветаризации
Докс = СоздатьОбъект("Документ.ИнвентаризацияТМЦ");
//

ТЗостатки.Выгрузить(ТЗФирмы);
ТЗФирмы.Свернуть("Фирма",);
ТЗФирмы.НоваяКолонка("Документ","Документ.ИнвентаризацияТМЦ");

ТЗФирмы.ВыбратьСтроки();
Пока ТЗФирмы.ПолучитьСтроку() = 1 Цикл
  Докс.Новый();
  //Установить реквизиты нового документа. Например :
  Докс.Фирма = ТЗФирмы.Фирма;
  ...
  Докс.Записать();
  //
  // И только теперь (когда есть ссылка)
  ТЗФирмы.Документ = Докс.ТекущийДокумент();
КонецЦикла;
6 Остап Сулейманович
 
29.12.14
20:13
(3) Даже так ссылку на новый документ не получить. Его нужно сначала поиметь новым, потом записать и только потом присвоить реквизиту ТЗ. Иначе получается, что в реквизит пишем не документ, а объект (в терминах программирования, а не БД) для получения объекта собствеено БД.
7 Злопчинский
 
29.12.14
20:30
(6) фигня
нормально все работает
.
ТЗФирмы.НоваяКолонка("Документ");
ТЗФирмы.ВыбратьСтроки();
Пока ТЗФирмы.ПолучитьСтроку() = 1 Цикл
  ТЗФирмы.Документ = СоздатьОбъект("Документ.ИнвентаризацияТМЦ");
КонецЦикла;

//потом в африке

Пока ТЗФирмы.ПолучитьСтроку() = 1 Цикл
  ТЗФирмы.Документ.Новый();
  ТЗФирмы.Документ.Автор = глПользовтаель;
  ТЗФирмы.Документ.Записать();
КонецЦикла;
8 Остап Сулейманович
 
29.12.14
20:35
(7) Ну если в "ТЗФирмы.Документ" нужен не сам документ, а объект доступа - тогда да. Только нафига их столько? Обычно вполне достаточно одного.
9 ИсчадиеADO
 
29.12.14
20:40
таки шо там со снеговиком? емнип, автор ТС начинал было
10 фобец
 
29.12.14
20:42
Ибо нормальная запись для 7ки это
Док = создатьобъект()

Пока тз.получитьстроку()= 1 цикл
Док.новый();
Док.записать();
Тз.документ = док.текущийдокумент();
Конеццикла;


Все что ТС тут в (0) и (6) описал говорит лишь о слабой объектной модели семерки
11 фобец
 
29.12.14
20:44
+10 не 6 а (7) *
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.