Имя: Пароль:
1C
1C 7.7
v7: Как определить в процедуре ОбработкаПроведения() откуда пришел вызов?
0 Смотрящий
 
14.08.16
08:51
Как однозначно определить в процедуре ОбработкаПроведения() откуда пришел вызов ? Из формы документы или из метода .Провести()
1 Горогуля
 
14.08.16
09:01
а ей не поровну?
2 Генератор
 
14.08.16
09:03
обработка проведения вроде параметр принимает
3 nordbox
 
14.08.16
09:07
(0) В 7.7 вроде бы пофигу откуда
4 Смотрящий
 
14.08.16
09:09
Мне надо стартануть одну процедуру в модуле проведения если вызов прилетел из формы, а не программно
5 nordbox
 
14.08.16
09:24
(4) Ну можешь вообще совершенно тупо сделать,
переменную назначь и присваивай ей значение, а в модуле проведения смотри ее и делай как надо
6 DmitriyDI
 
14.08.16
09:29
(0)
А нельзя эту процедуру в форме и выполнять?
7 nordbox
 
14.08.16
09:29
+5 хотя это правило плохого тона )))
я 7.7 сейчас плохо помню, смотреть все надо
8 Смотрящий
 
14.08.16
09:30
Править код буду уж совсем в крайнем случае, желательно без вмешательства
9 nordbox
 
14.08.16
09:31
(6) Поддерживаю, если вызов модуля проведения из формы то сначала процедура потом модуль, если как обычно то как обычно
10 Смотрящий
 
14.08.16
12:21
А что скажут Епрст и Злопчинский ?
11 welwel
 
14.08.16
13:49
Можно параметр использовать

ОбработкаПроведения(<3нач>)

Параметры:

<3нач>
Необязательный параметр. Идентификатор перемен­ной, в которую системой будет передано значение па­раметра, если проведение документа запущено про­граммно при помощи метода Провести. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отрабо­тать режим проведения, т. к. в случае вызова метода Провести это будет программный, а не интерактив­ный и не групповой (см. ГрупповаяОбработка) спо­соб проведения документа.
12 welwel
 
14.08.16
13:50
и также смотреть ГрупповаяОбработка()
13 Злопчинский
 
14.08.16
13:56
Присоединяюсь к 11 посту
мну сильно не нравится идея разного поведения проведения при программном и при интерактивном.
14 Смотрящий
 
14.08.16
14:05
(11)(13) вызов с параметром ОбработкаПроведения подразумевает отказ от команды #Провести на функции кнопки и перевод ее на процедуру, что не есть хорошо
15 Злопчинский
 
14.08.16
14:30
(14) у тебя результат программного и интерактивного проведения - одинаковый?
16 Злопчинский
 
14.08.16
14:33
(14) с чего ты это взял?
штатное провести по кнопке - будет с
ОбработкаПроведения(ЗначениеПоУмолчанию=0) - например

а программное проведение будет с явно заданным значением..

???
17 Aleksey
 
14.08.16
14:46
(13), (14) Почему?
Удобно когда нужно "допровести" по части данным. Или когда добавил новый регистр и хочешь чтобы появились новые движения без изменений старых
18 Смотрящий
 
14.08.16
14:46
(15) По движняку товаров, взаиморасчетов и т.п - одинаков
Надо стартовать процедуру одну статистическую, которую не надо дергать при восстановлении последовательности или при программном проведении документа
19 Aleksey
 
14.08.16
14:49
(18)
Процедура ОбработкаПроведения(ВидыДвижений)
....
Если Найти(ВидыДвижений, "Прайс") <> 0    Тогда
   ПроведениеПоРегиструПрайс();
Иначе    
  Если (ПустоеЗначение(ВидыДвижений) = 1) ИЛИ (Найти(ВидыДвижений, "Регистр") <> 0) Тогда
    ПроведениеПоРегистрам();
...


Соответственно там где нужно сделать движение так и пишешь
например Док.Провести(,"Прайс")
20 Aleksey
 
14.08.16
14:54
Только не забудь отключить автоматическое удаление движений
21 Злопчинский
 
14.08.16
16:18
(17) это все - нештатная работа и оправдано при ИНИЦИАЛИЗАЦИИ данных
22 Aleksey
 
14.08.16
16:25
(21) Например в оперативном режиме можно проводить по регистру остатки ТМЦ, а затем ночью уже рассчитывать себестоимость и допроводить партии
23 Остап Сулейманович
 
14.08.16
16:38
(22) Не. Самый показательный пример допроведения - это работа нескольких операторов, когда остатки списываются не после проведения всего документа, а сразу при изменении количества в строке.
24 Aleksey
 
14.08.16
16:40
(23) А разве так в 7-ке можно? Оператор будет сидеть в документе, он будет заблокирован. Или редактирование документов с помощью внешней обработки?
25 Остап Сулейманович
 
14.08.16
16:47
(24) Зачем в обработке? Провести() вполне вызывается из модуля формы. И можно передать параметр и получить результат провелось/не провелось.
26 Злопчинский
 
14.08.16
17:19
Дятлы потомучто
Вполне очевидно что оператор здесь работает не с сущностью документа
А с сущностью "строка"
Соответственно на этапе приемки звонка или оперативного резервирования  надо работать с "однострочным документом"
27 mishaPH
 
модератор
14.08.16
17:46
(4) для этого есть глобальныые переменные.
28 Карст
 
15.08.16
01:40
взятьконтекст , учи матчасть