Имя: Пароль:
1C
1C 7.7
v7: Как получить ссылку на текущий документ?
0 MathaiShung
 
06.03.16
15:14
В модуле формы документа Чек необходимо запретить печать табличной формы пока документ не проведён. Написал следующее условие:

    Процедура Печать()
    Чек=СоздатьОбъект("Документ.Чек");
    Чек.ВыбратьДокументы();
    Если Чек.ТекущийДокумент.Проведен()=1 Тогда

Сейчас - Поле агрегатного объекта не обнаружено (ТекущийДокумент)
Как спозиционироваться именно на том документе из формы которого будет вызываться процедура Печать() (при условии, что пользователем может быть одновременно открыто сразу несколько форм документов), чтобы ТекущийДокумент вернул ссылку на него, чтобы можно было проверить условие проведённости?
1 zak555
 
06.03.16
15:15
ТекущийДокумент()
2 zak555
 
06.03.16
15:15
это всё запросом надо делать
3 MathaiShung
 
06.03.16
15:17
(2) Почему именно запросом? А что в объектной модели никак?
4 al4605
 
06.03.16
15:19
Получиться, просто запросом быстрей работает.
5 RomanYS
 
06.03.16
15:22
(0) в модуле формы просто Проведен(). Никаких выборок и СоздатьОбъект не надо для работы с текущим документом. Все поля и методы документа доступны в контексте формы.
6 MathaiShung
 
06.03.16
15:27
(5) То есть писать просто: Если Проведен() Тогда
Так что ли?
7 Остап Сулейманович
 
06.03.16
15:33
(0) У тебя выборка открывется, но не присходит позиционирования. Нужно примерно так:
Чек.ВыбратьДокументы();
Пока Чек.ПолучитьДокумент() = 1 Цикл
   ...
КонецЦикла;
8 MathaiShung
 
06.03.16
15:33
(5) А точно, всё работает. Спасибо что подсказали. На самом деле оказалось проще простого, а я чего-то мудрить начал))
9 AntiBuh
 
06.03.16
15:36
опять же
нафига Чек.ТекущийДокумент.Проведен()
достаточно Чек.Проведен()
2 + 2 = 3.9999999999999999999999999999999...