![]() |
![]() |
![]() |
|
Программно нажать "Провести" в форме нового документа | ☑ | ||
---|---|---|---|---|
0
ice777
04.02.09
✎
13:00
|
Как это сделать? Сразу после создания нового Дока из ФормыСписка надо сделать пустой Док проведенным. Через интерфейс пользователя это - нажать "Провести". А программно?
|
|||
1
Sammo
04.02.09
✎
13:04
|
.Записать(РежимЗаписиДокумента.Проведение) Оно?
|
|||
2
ice777
04.02.09
✎
13:41
|
Никакие методы, применимые к существующему Доку, - не работают. Дока как бы нет, ссылки на него тоже не нашел, есть только ФормаДокумента. Все методы типа "Записать" работают только после нажатия на форме "Провести" или "Провести и закрыть".
Справедливости ради, платформа 8.2. Но это по-моему от платформы не зависит. |
|||
3
hhhh
04.02.09
✎
13:42
|
(2) Док.Проведен = Истина;
|
|||
4
H A D G E H O G s
04.02.09
✎
13:43
|
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
|
|||
5
ice777
04.02.09
✎
14:07
|
(3) ошибка :
Документ.Т.Форма.ФормаДокумента(57)}: Ошибка при установке значения атрибута контекста (Проведен): Нельзя изменять скрытое поле Объект.Проведен =истина; (4)- {Документ.Т.Форма.ФормаДокумента(82)}: Метод объекта не обнаружен (Записать) Объект.Ссылка.Записать(); НО ЭТО ВСЕ ФИГНЯ! :) Объект - типа ДанныФормыСтруктура Объект.Ссылка - типа ДокументСсылкаТ И ессли к ним с этими Проведен=истина и Записать() вообще не обращаться - то ПИШЕТ ВСЕ НА УРА. |
|||
6
Sammo
04.02.09
✎
14:11
|
Если в конфигураторе открыть закладку формы Реквизиты, там есть такое ДокументОбъект.
Так вот - записать, это действие объекта, а не ссылки |
|||
7
Sammo
04.02.09
✎
14:12
|
Соврал, из формы списка?
Можно подробнее и по шагам |
|||
8
ice777
04.02.09
✎
14:18
|
можно и по шагам, тока долго.
а вот вставил по приколу: сс=Объект.Ссылка; д=сс.ПолучитьОбъект(); д.Записать(); выругалось: {Документ.Т.Форма.ФормаДокумента(83)}: Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран! д=сс.ПолучитьОбъект(); |
|||
9
hhhh
04.02.09
✎
14:19
|
(8) читать умеешь? Надо не Ссылка.Записать(), а
Объект.Записать() !!!! |
|||
10
ice777
04.02.09
✎
14:20
|
в общем, вышло (не претендую на суперправильность решения), что надо просто тупо заполнять объект, потом сделать ЭтаФорма.Прочитать() и наслаждаться результатом.
|
|||
11
ice777
04.02.09
✎
14:21
|
(9) а ты посмотри выше, какого типа видится в отладчике Объект!
ну, ради прикола, попробую и по-твоему |
|||
12
ice777
04.02.09
✎
14:23
|
(9) вот ошибка на твое:
{Документ.Т.Форма.ФормаДокумента(84)}: Метод объекта не обнаружен (Записать) Объект.Записать(); |
|||
13
kosts
04.02.09
✎
14:30
|
Процедура ДокументСписокПередНачаломДобавления(Элемент, Отказ, Копирование)
Отказ = Истина; док = Документы.ЗаявкаНаЗакупку.СоздатьДокумент(); док.Дата = ТекущаяДата(); Док.Записать(РежимЗаписиДокумента.Проведение); Форма = Док.ПолучитьФорму(); Форма.Открыть(); КонецПроцедуры |
|||
14
hhhh
04.02.09
✎
15:21
|
(12) а что такое у тебя Объект? Сам что ли завел переменную? Пользуйся типовым ДокументОбъект.
|
|||
15
ice777
04.02.09
✎
15:44
|
Это 1C 8.2. Уже есть внутри формы. Объект - типа ДанныФормыСтруктура
|
|||
16
hhhh
04.02.09
✎
16:25
|
(15) намекаешь что левая переменная "объект", которую неизвестно кто завел и которая имеет тип структура сооответствует нормальному объекту документа? Ты мечтатель. Объект документа надо смотреть в свойствах формы: Поле Данные.
|
|||
17
ice777
04.02.09
✎
16:28
|
(16) я просто написал как есть.
А Объект в 8.2 просто предопределен, имхо. Кто его мог завести?? |
|||
18
ice777
04.02.09
✎
17:03
|
Все, что я тут огласил, касается только нового документа (чтоб камнями не кидали).
А вот главный вопрос так и остался: КАК программно нажать "Провести" в форме нового документа ? Вне формы, еще в списке - это все понятно. А исходный вопрос стоял так: В форме. Может есть еще идеи? |
|||
19
H A D G E H O G s
04.02.09
✎
17:15
|
В форме документа в
ПРЕДОПРЕДЕЛЕННОЙ процедуре - обработчике события ПередОткрытием() написать кот: Если ЭтоНОвый() Тогда ЭтотОбъект.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; действуй |
|||
20
H A D G E H O G s
04.02.09
✎
17:20
|
Даже лучше в ПРИОТКРЫТИИ(),
а то формочка еще не сформировалась, дата еще не задалась... |
|||
21
73
04.02.09
✎
19:46
|
ЭтаФорма.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
|
|||
22
ice777
04.02.09
✎
20:20
|
(19) и (20) я в ФормеДокумента прошу. Остальное тоже м б сгодится, но вопрос стоит именно так.
|
|||
23
ice777
04.02.09
✎
20:28
|
(21) Доберусь до нормального компа, попробую. Но надежды все меньше. Проще самому расклевывать становится.
|
|||
24
ice777
04.02.09
✎
22:00
|
(20) кстати, а когда формочка уже открылась, - в ней дата уже задалась и .. не везет мне на ответы.
|
|||
25
kosts
05.02.09
✎
08:54
|
(22) в (19) (20) Чем тебе не в форме?
Процедура ПриОткрытии() Если ЭтоНовый() Тогда Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецПроцедуры Где проблема то? |
|||
26
ice777
05.02.09
✎
09:32
|
1. ладно, проткрытиии и ли как.. неважно.
2. А проверь реально свой код в 8.2. Не работает. А чтоб конкретно, к какому объекту у тебя применен ЭтоНовый()? |
|||
27
ice777
05.02.09
✎
09:34
|
(21) выдало ошибку:
{Документ.Т.Форма.ФормаДокумента(10)}: Метод объекта не обнаружен (ЗаписатьВФорме) ЭтаФорма.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение); |
|||
28
hhhh
05.02.09
✎
09:43
|
(27) все-таки посмотри, что там находится в поле "данные"...
|
|||
29
ФарПост
05.02.09
✎
09:52
|
А смысл проводить ПУСТОЙ док?
Подскажите плиз.... |
|||
30
kosts
05.02.09
✎
10:40
|
(26)
ЭтоНовый() применен к ДокументОбъект Процедура ПриОткрытии() //То же что и в (25) Если ЭтотОбъект.ЭтоНовый() Тогда ЭтотОбъект.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецПроцедуры 8.2 нету, проверить не могу. Проверь может все же работает. |
|||
31
ice777
05.02.09
✎
20:26
|
(29)для заполнения кнопкой только что созданного Дока.
Бухгалтерша заволит новый Док и желает сразу его заполнить нажатием кнопочки;) Примеры: табель, оформление хез чего, разные ведомости и т.п. А потом она устраивает свою толстую задницу поудобнее и тока правит. Надо же и людей любить, правда? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |