Двойное проведение при ОК

1. Dreams-Digitizer 06.03.12 23:14 Сейчас в теме
Дописываю свой документ и не могу понять, почему при нажатии на ОК выскакивает окно о выборе оперативного-неоперативного проведения, а после выбора любого из них документ типа проводится, и следом выскакивает окно что док изменён (Да Нет Отмена). После Да снова выскакивает окно о выборе оперативного-неоперативного проведения. В результате получается двойное движение. Если выбрать при сохранении Нет, то документ закрывается, а движений вообще нет.

Процедура ОбработкаПроведения(Отказ, Режим)
	
	// ************************************************************
	// Списание отгруженного товара с остатков складских документов
	// ************************************************************
	
	НаборДвижений = Движения.ТоварыПоСкладскимДокументам;
	
	// Получим таблицу значений, совпадающую со структурой набора записей регистра.
	ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
	
	ТаблицаПоОтгрузке = Товары.Выгрузить();
	
	Для Каждого Эл Из ТаблицаПоОтгрузке Цикл
		Эл.Количество = Эл.КоличествоОтгружено;
	КонецЦикла;
	
	// Удаление строк с нулевым количеством
	сч = 0;
	Пока сч < ТаблицаПоОтгрузке.Количество() Цикл
		Если ТаблицаПоОтгрузке.Получить(сч).Количество = 0 Тогда
			ТаблицаПоОтгрузке.Удалить(сч);
		Иначе
			сч = сч + 1;
		КонецЕсли;
	КонецЦикла;

	ТаблицаПоОтгрузке.Колонки.Добавить("ЧекККМ");
	ТаблицаПоОтгрузке.ЗаполнитьЗначения(ЧекККМ, "ЧекККМ");
	
	ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоОтгрузке, ТаблицаДвижений);
	
	НаборДвижений.мПериод          = Дата;
	НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
	
	НаборДвижений.ВыполнитьРасход();

	
КонецПроцедуры
Показать


Если закоментировать

НаборДвижений.ВыполнитьРасход();

то никаких вопросов о сохранении не выскакивает... подскажите куда рыть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. fomaOp 07.03.12 07:41 Сейчас в теме
(1) Grave_For_Spam,
1. Окно с предложением оперативного - не оперативного проведения выводится потому, что в свойстве документа "Оперативное проведение" установлено "Разрешить".
2. Я думаю, что строка "НаборДвижений.ВыполнитьРасход();" в обработке проведения совсем не нужна. Так-как в данной обработке выполняется транзакция проведения, дополнительная запись движений не имеет смысла.
3. reazek 07.03.12 09:37 Сейчас в теме
НаборДвижений.ВыполнитьРасход(); - убрать однозначно!
4. Dreams-Digitizer 07.03.12 10:11 Сейчас в теме
НаборДвижений.ВыполнитьРасход(); - убрать однозначно!


Так без этого вообще никаких движени нет..


Процедура ВыполнитьРасход() Экспорт

	ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект, ВидДвиженияНакопления.Расход);

КонецПроцедуры 
5. reazek 07.03.12 10:19 Сейчас в теме
кто тебе сказал? ты же пишешь сразу в движения, а потом еще раз их прокручиваешь!!!!!!!!
6. Dreams-Digitizer 07.03.12 10:20 Сейчас в теме
(5) reazek,
Жму ОК, открываю регистры, там ничего нет.

Делаю аналогично ЧекуККМ

	// ТОВАРЫ ПО РЕГИСТРУ ТоварыНаСкладах или ТоварыВРознице.
	Если Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
		НаборДвижений = Движения.ТоварыНаСкладах;
	Иначе
		НаборДвижений = Движения.ТоварыВРознице;
	КонецЕсли;

	// Получим таблицу значений, совпадающую со структурой набора записей регистра.
	ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();

        ...

	ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоКомплектам, ТаблицаДвижений);

        ...

	НаборДвижений.мПериод          = Дата;
	НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;

	...

	Если Не Отказ Тогда
		НаборДвижений.ВыполнитьРасход();
	КонецЕсли;
Показать


Вроде так же
7. fomaOp 07.03.12 10:47 Сейчас в теме
(6) Grave_For_Spam,
У вас в модуле объекта (документа) используется процедура "ПриЗаписи"?
Если "Да", покажите код.
8. Dreams-Digitizer 07.03.12 10:53 Сейчас в теме
(7) fomaOp,

Только ПередЗаписью

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	// Вставить содержимое обработчика.
	Если Товары.Количество() = 0 Тогда
		Предупреждение("Нельзя сохранить пустой документ.");
		Отказ = Истина;
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(Ответственный) Тогда
		Ответственный = ПараметрыСеанса.ТекущийПользователь;
	КонецЕсли;

КонецПроцедуры
Показать
9. Dreams-Digitizer 07.03.12 11:16 Сейчас в теме
Все вопрос снят. Нашел причину.

В свойствах документа сменил "Запись движений при проведении" на "Записывать модифицированные"

Ругаться перестало, убил на это 2 дня %)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот