|
Двойной вызов обработки проведения | ☑ | ||
---|---|---|---|---|
0
YurAnt
07.07.13
✎
01:40
|
Доброго времени суток всем.
Проблема следующая при проведении документа вываливается ошибка что документ (периодичность проведения = мес) не может быть проведен поскольку запись с такими ключевыми полями существует. Отладчиком обнаружил что после того, как проходится вся процедура проведения, она вызывается снова... что похоже и вызывает ошибку. http://s1.ipicture.ru/uploads/20130707/83VC3VBq.png Ни на форме, ни в объекте нет процедур а ля: ПриЗаписи(), ПриЗакрытии() Обработка проведения создана конструктором (док осуществляет движение по 3м регистрам сведений) Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр РегистрРасчетаЗаработнойПлаты Движения.РегистрРасчетаЗаработнойПлаты.Записывать = Истина; Движения.РегистрРасчетаЗаработнойПлаты.Очистить(); Для Каждого ТекСтрокаРасчетЗП Из РасчетЗП Цикл Движение = Движения.РегистрРасчетаЗаработнойПлаты.Добавить(); Движение.Период = ЭтотОбъект.Дата; Движение.РасчетЗаработнойПлаты = ЭтотОбъект.Ссылка; Движение.ОбъемПоДоговоруИтого = ОбъемПоДоговоруИтого; Движение.КомУслИтого = КомУслИтого; Движение.КомандирИтого = КомандирИтого; Движение.ОбъемДляНачислЗПИтого = ОбъемДляНачислЗПИтого; Движение.ОбъемПоНЗаказамИтого = ОбъемПоНЗаказамИтого; Движение.ВТЧКоэффицентИтого = ВТЧКоэффицентИтого; Движение.ВТЧЗарплатаИтого = ВТЧЗарплатаИтого; Движение.РасчетЗПУправление = ТекСтрокаРасчетЗП.Управление; Движение.РасчетЗПОбъемПоДоговору = ТекСтрокаРасчетЗП.ОбъемПоДоговору; Движение.РасчетЗПКомУсл = ТекСтрокаРасчетЗП.КомУсл; Движение.РасчетЗПКомандир = ТекСтрокаРасчетЗП.Командир; Движение.РасчетЗПОбъемДляНачислЗП = ТекСтрокаРасчетЗП.ОбъемДляНачислЗП; Движение.РасчетЗПОбъемПоНЗаказам = ТекСтрокаРасчетЗП.ОбъемПоНЗаказам; Движение.РасчетЗПВТЧКоэффицент = ТекСтрокаРасчетЗП.ВТЧКоэффицент; Движение.РасчетЗПВТЧЗарплата = ТекСтрокаРасчетЗП.ВТЧЗарплата; КонецЦикла; // регистр РегистрРасчетаЗаработнойПлатыКомУсл Движения.РегистрРасчетаЗаработнойПлатыКомУсл.Записывать = Истина; Движения.РегистрРасчетаЗаработнойПлатыКомУсл.Очистить(); Для Каждого ТекСтрокаКомУсл Из КомУсл Цикл Движение = Движения.РегистрРасчетаЗаработнойПлатыКомУсл.Добавить(); Движение.Период = ЭтотОбъект.Дата; Движение.РасчетЗаработнойПлаты = ЭтотОбъект.Ссылка; Движение.КомУслУправление = ТекСтрокаКомУсл.Управление; Движение.КомУслЭлектроэнергияОсвещение = ТекСтрокаКомУсл.ЭлектроэнергияОсвещение; Движение.КомУслТеплоэнергия = ТекСтрокаКомУсл.Теплоэнергия; Движение.КомУслГазПриродный = ТекСтрокаКомУсл.ГазПриродный; Движение.КомУслИнтернет = ТекСтрокаКомУсл.Интернет; Движение.КомУслСвязь = ТекСтрокаКомУсл.Связь; Движение.КомУслСотСвязь = ТекСтрокаКомУсл.СотСвязь; Движение.КомУслСпецпитаниеЗаТекМесяц = ТекСтрокаКомУсл.СпецпитаниеЗаТекМесяц; Движение.КомУслШтраф = ТекСтрокаКомУсл.Штраф; Движение.Итого = ТекСтрокаКомУсл.Итого; КонецЦикла; // регистр РегистрРасчетаЗаработнойПлатыМолоко Движения.РегистрРасчетаЗаработнойПлатыМолоко.Записывать = Истина; Движения.РегистрРасчетаЗаработнойПлатыМолоко.Очистить(); Для Каждого ТекСтрокаМолоко Из Молоко Цикл Движение = Движения.РегистрРасчетаЗаработнойПлатыМолоко.Добавить(); Движение.Период = ЭтотОбъект.Дата; Движение.РасчетЗаработнойПлаты = ЭтотОбъект.Ссылка; Движение.СпецжирыПодразделения = ТекСтрокаМолоко.Подразделения; Движение.СпецжирыЗатратыНаСпецжиры = ТекСтрокаМолоко.ЗатратыНаСпецжиры; Движение.СпецжирыИтого = СпецжирыИтого; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Думал проблемы с периодичностью (месяц), выставлял непереодический - толку ноль. Не могу понять что вызывает такое поведение... |
|||
1
sanja26
07.07.13
✎
03:12
|
проводишь программно через записать()?
Посмотри еще подписки |
|||
2
Web00001
07.07.13
✎
04:46
|
Глупый вопрос. какой обработчик на кнопке ОК?
|
|||
3
Defender aka LINN
07.07.13
✎
08:33
|
(0) Ну у тебя ж там реально 2 строки одинаковых
|
|||
4
YurAnt
07.07.13
✎
10:15
|
(1) В модуле формы/объекта все чисто...
Проблема если я все правильно понимаю растет из того, что обработка проведения вызывается 2 раза... PS построено конструктором В общих подписках тоже не сильно ясно что искать, поскольку документ опять же новый (сам создавал) и разумеется, чего либо относящегося к данному типу документов быть не может. (2) Дописанных своих из модуля формы/объекта нет никаких, На ЗАПИСАТЬ - висит действие записать, на ОК - записать и закрыть. (3) Defender aka LINN, что значит 2 строки одинаковых?поясните... Если вы о строках таблицы на скрине, то даже если там 1 строка будет, эффект будет тот же. |
|||
5
YurAnt
07.07.13
✎
10:24
|
Лол... костыль вида - первый раз попали изменили счетчик, и больше сюда не заходим.
Если Сч = 0 Тогда Сч = 1; ...тут весь конструктор описанный выше... КонецЕсли; Ну конечно решение в лоб и причина остается, но в этом случае документ проводится. |
|||
6
YurAnt
07.07.13
✎
10:28
|
+ на периодичность регистра теперь 0 внимания...((
|
|||
7
YurAnt
07.07.13
✎
10:36
|
так... теперь всё совсем плохо. Регистры перестали обращать внимание на периодичность(
Разбираюсь дальше... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |