|
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
|
опять же
нафига Чек.ТекущийДокумент.Проведен()
достаточно Чек.Проведен()
|
|