Имя: Пароль:
1C
1С v8
Запись (только запись!) уже проведенного документа без повторного перепроведения
0 wmonref
 
09.09.15
22:13
Здравствуйте. 1с 8.3, формы обычные. Хочу изменить номер проведенного документа и записать его, БЕЗ перепроведения. Нажимаю на стандартную кнопку "Записать" (та у которой действие Записать) но документ перепроводиться...

В модуле объкта в процедуре ПередЗаписью() вставил:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Сообщить(РежимЗаписи);
КонецПроцедуры

и при записи документа сначала сообщается "Проведение" а потом "Запись". Как сделать чтоб документ только записывался, без перепроведения?
1 Кадош
 
09.09.15
22:15
2 wmonref
 
09.09.15
22:44
Блин...
При вызове метода Записать() вызываются обработчики ПередЗаписью() и ПриЗаписи(), правильно?. В обеих процедурах пусто. Поставил точку останова в теле процедуры ОбработкаПроведения(Отказ, РежимПроведения) и смотрю стек вызовов - там только эта процедура... Что еще может вызывать ОбработкаПроведения() при записи документа???
3 Кадош
 
09.09.15
22:48
(2) обработчик события
4 wmonref
 
09.09.15
22:50
Гмм.. есть несколько процедур (экспортных) в одном из общих модулей типа ПередЗаписьюДокумента ( ДокументОбъект, Отказ, РежимЗаписи, РежимПроведения ) и при записи документа эти процедуры тоже вызываются, но не пойму как...
5 wmonref
 
09.09.15
22:53
(3) В обработчках событий стоят стандартные ПередЗаписью(), ПриЗаписи(), ПослеЗаписи() и все они пустые....
6 palsergeich
 
09.09.15
22:57
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   режимЗаписи = РежимЗаписиДокумента.Запись;
КонецПроцедуры
7 palsergeich
 
09.09.15
22:59
ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)
Параметры:


<РежимЗаписи>

Тип: РежимЗаписиДокумента.
В параметр передается текущий режим записи документа. Позволяет определить в теле процедуры режим записи. Изменение значения параметра позволяет изменить режим записи.
8 Kolls
 
09.09.15
23:01
РежимОбменаДанными-загрузка-истина, не?
9 palsergeich
 
09.09.15
23:06
(4) Подписки на события
10 itlikbez
 
09.09.15
23:06
Есть еще подписки на события.
11 Defender aka LINN
 
09.09.15
23:07
(0) Вообще, у обычных людей все наоборот.
Делай программно.
12 palsergeich
 
09.09.15
23:10
Судя по всему сейчас подвергается вскрытию какая то типовая конфа. Та самая магия когда в обработчике пусто, а выполняется код в общих модулях называется Подписка на событие. Общие->Подписки на события
13 wmonref
 
09.09.15
23:12
(12) Да, так оно и  есть...
(9) А по подробнее можно?
14 palsergeich
 
09.09.15
23:19
Смотри что у тебя делается в подписке на событие, анализируй, что туда нужно засунуть, что бы была именно запись, а не проведение.
   режимЗаписи = РежимЗаписиДокумента.Запись; Пробовал?
15 palsergeich
 
09.09.15
23:20
Так же попробуй Док.ОбменДанными.Загрузка = Истина;
В типовых при обмене данными убираются проверки.....
16 wmonref
 
09.09.15
23:21
(14) Вот сейчас этим и занимаюсь... :)
Подскажите пожалуйста где искать " РежимОбменаДанными-загрузка-истина"?
17 palsergeich
 
09.09.15
23:38
тебе для разовой обработки? или это будет жить в конфе постоянно?
18 palsergeich
 
09.09.15
23:43
если тупо разово для определенного документа, тогда можно в модуле формы воткнуть следующее
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ОбменДанными.Загрузка = Истина;
КонецПроцедуры
потом сделать то что надо с нужными документами, и потом удалить. В рабочей конфе такой порнографии быть не должно. Но как костыль для разовой операции сойдет
19 palsergeich
 
09.09.15
23:47
Даже можно перестраховаться
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ОбменДанными.Загрузка = Истина;
    ПараметрыЗаписи = Новый Структура;
    ПараметрыЗаписи.Вставить("РежимЗаписи",РежимЗаписиДокумента.Запись);

КонецПроцедуры
Предупреждаю - Сферический г..внокод в ваккуме, который целесообразен для разового костыля, посл использования удалить, увидит кто, по рукам надает
20 Mankubus
 
10.09.15
06:00
(0) >>Нажимаю на стандартную кнопку "Записать" (та у которой действие Записать) но документ перепроводиться...
вероятно у формы установлено свойство ПриЗаписиПерепроводить
21 Devourer
 
10.09.15
06:55
(18) Лучше перестраховаться и вынести это во внешнюю обработку. Тогда конфигурацию не придется менять.
Да и работать это будет только если в модуле объекта предусмотрены возвраты в процедурах при таком режиме записи. (0) Конфигурация или документ типовые хотя бы?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс