Имя: Пароль:
1C
1С v8
В чем разница между программным и интерактивным проведением? и как ее обойти?
, ,
0 slafor
 
08.10.20
17:56
Вопрос такой.

Есть УТ 11, в ней есть документ "Заказ клиента", на основании него хочу сделать документ "Реализация товаров и услуг".
Делаю программно (Док.Записать(РежимЗаписиДокумента.Проведение, РезимПроведенияДокумента.Неоперативный)), система мне пишет: "В документе не рассчитаны автоматические скидки (наценки). Проведение невозможно. Для расчёта автоматических скидок (наценок) проведите документ из формы документа.".
Хорошо, оставляю только запись, провожу из формы документа - все рассчитывается и проводится отлично.

Как можно сделать так, чтобы документ мог проводиться программно, без открытия формы? Можно ли обратиться к экспортной функции модуля формы?
1 ДенисЧ
 
08.10.20
18:02
Смотреть, что в форме делается перед записью. И заодно на кнопку провести - может, её подменили
2 Михаил Козлов
 
08.10.20
18:03
Если скидки рассчитывать не нужно, можно выставить флаг "Скидки рассчитаны".
Разобраться, как рассчитать скидки без формы.
3 Velman
 
08.10.20
18:22
(0) Конфа походу доработана... У нас в КА 2.4 тоже сделана проверка, при создании заказа, перед записью даже надо сделать обеспечение, потом рассчитать скидки. Смотри расширение, походу там проверка эта.
4 Lama12
 
08.10.20
18:27
(0) А может оперативное проведение поставить?
5 GANR
 
08.10.20
18:28
(0) Нужно выгнать говнокодеров, которые так сделали.
6 GreyK
 
08.10.20
18:29
(3) В стандартной УТ проверка скидок есть и в заказе, и в реализации, есть ещё проверка заполнения графика оплат, и не дай бог вы захотите списать только часть заказанных товаров, это отдельная песня.
7 slafor
 
08.10.20
18:47
(3) Конфа типовая.
(3) Вот-вот...
8 slafor
 
08.10.20
18:50
(6) Вот-вот... А зачем рассчитывать скидки в реализации, если они уже рассчитаны в заказе?
9 slafor
 
08.10.20
18:52
(4) у реализации запрещено оперативное проведение.
10 slafor
 
09.10.20
09:27
Эх, решил я в итоге просто записывать документы, а потом уже пусть пользователь проводит их вручную. Потому что (6) оказался прав.

Но вот обратите внимание на название темы вопроса. По этой теме у меня возникла отдельная мысль: а существует ли вообще возможность программно эмулировать какие-либо интерактивные действия пользователя на форме, вообще не открывая ее? Кто-нибудь с этим сталкивался?
11 lEvGl
 
гуру
09.10.20
10:27
(10) нет формы, нет действий
можно к реквизитам обращаться, но процедуры не вызвать
12 lEvGl
 
гуру
09.10.20
10:29
интерактивные действия можно эмулировать через задницу, которую называют эмуляцией нажатия клавиш SendKeys, но даже для этого форма должны быть открыта, нет формы - нет интерактивности и действий
13 GANR
 
09.10.20
10:31
(7) [Конфа типовая.] Я бы на [email protected] написал - если до них доходчиво проблему донести, среагируют и решат.
14 GANR
 
09.10.20
10:34
+(13) а в качестве временного решения расширение
15 Evgenchik
 
09.10.20
10:53
(10) Можно, есть системы тестирования работы пользователей. Определяется перечень действий и программно эмулируется.
Я, правда, не работал с такими системами )
16 polosov
 
09.10.20
11:17
(10) Да рассчитай ты скидки уже. Будь мужиком.
В модуле СкидкиНаценкиСервер для тебя все сделали.
17 slafor
 
09.10.20
11:31
(16)  Вот я так и думаю - надо весь код с формы перенести в обработку, но потрачу я на это кучу времени, а смысла не вижу... )) По сути дела зря потраченное время.
18 Fish
 
09.10.20
11:33
(17) Весь не надо. Надо перенести только необходимый код.
19 Сияющий в темноте
 
11.10.20
01:37
можно документ вообще не проводить,а выставить у него признак проведен и включить режим обмена,а потом записать регистры вручную.
20 spectre1978
 
13.10.20
06:55
(17) зачем весь? Нужно просто дернуть несколько штук экспортных процедур. Может десяток. Всегда так делали. Что значит зря потраченное? Вам док нормальный надо получить? Вот вы и тратите на то чтобы его получить.
Ошибка? Это не ошибка, это системная функция.