Имя: Пароль:
1C
1C 7.7
v7: Не работает блокировка док-та. Не могу записать ни кем не открытый док-т
,
0 IgorTrifonov
 
06.08.11
17:03
Всем добрый день!
В многострочной части документа надо скопировать значение из колонки слева в колонку справа. И ВСЁ! И не работает!
В модуле справочника такой код
Док = СоздатьОбъект("Документ.Потребность");
Док.ВыбратьДокументы();
ПОКА Док.ПолучитьДокумент() = 1 ЦИКЛ
   ТекДок = Док.ТекущийДокумент();
   
   ТекДок.ВыбратьСтроки();
   Пока ТекДок.ПолучитьСтроку() = 1 Цикл
           кол_во = ТекДок.ПолучитьАтрибут( Колонка1);
           ТекДок.УстановитьАтрибут(Колонка2,кол_во);
   КонецЦикла;
       
   Попытка
       ТекДок.Записать();
   Исключение
       Сообщить( ОписаниеОшибки() );
   КонецПопытки;
   
КОНЕЦЦИКЛА;

Пытался блокировать текущий документ. Тоже не работает.
Я сижу один, никого больше нет. Да и базу-то я развернул локально.
Зашёл в 1С под администратором. Всё равно!
Выдаёт ошибку:

не выбран документ

Если не выбран, тогда почему указатель отладчика попадает в цикл?
Тогда не должен попадать. Сразу переход на КОНЕЦЦИКЛА. Но этого не происходит.
Подскажите пожалуйста.
1 Torquader
 
06.08.11
17:05
ТекДок - у вас не документ, а ссылка на него - через ссылку данные, конечно, можно получить, но вот записать ничего не получиться.
Нужно создать объект "Документ", спозиционировать на нужном документе, а потом уже менять что-то и записывать.
2 Генератор
 
06.08.11
17:05
строка лишняя:
ТекДок = Док.ТекущийДокумент()
ниже вместо текдок используй док
3 Cthulhu
 
06.08.11
17:06
перевожу: "не выбран" = "не является спозиционированным объектом". т.е. ты пыраешься применить метод к ССЫЛКЕ на спозиционированный объект.
4 IgorTrifonov
 
06.08.11
17:10
Понял. Спасибо.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.