Дописываю свой документ и не могу понять, почему при нажатии на ОК выскакивает окно о выборе оперативного-неоперативного проведения, а после выбора любого из них документ типа проводится, и следом выскакивает окно что док изменён (Да Нет Отмена). После Да снова выскакивает окно о выборе оперативного-неоперативного проведения. В результате получается двойное движение. Если выбрать при сохранении Нет, то документ закрывается, а движений вообще нет.
Если закоментировать
НаборДвижений.ВыполнитьРасход();
то никаких вопросов о сохранении не выскакивает... подскажите куда рыть?
Процедура ОбработкаПроведения(Отказ, Режим)
// ************************************************************
// Списание отгруженного товара с остатков складских документов
// ************************************************************
НаборДвижений = Движения.ТоварыПоСкладскимДокументам;
// Получим таблицу значений, совпадающую со структурой набора записей регистра.
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
ТаблицаПоОтгрузке = Товары.Выгрузить();
Для Каждого Эл Из ТаблицаПоОтгрузке Цикл
Эл.Количество = Эл.КоличествоОтгружено;
КонецЦикла;
// Удаление строк с нулевым количеством
сч = 0;
Пока сч < ТаблицаПоОтгрузке.Количество() Цикл
Если ТаблицаПоОтгрузке.Получить(сч).Количество = 0 Тогда
ТаблицаПоОтгрузке.Удалить(сч);
Иначе
сч = сч + 1;
КонецЕсли;
КонецЦикла;
ТаблицаПоОтгрузке.Колонки.Добавить("ЧекККМ");
ТаблицаПоОтгрузке.ЗаполнитьЗначения(ЧекККМ, "ЧекККМ");
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоОтгрузке, ТаблицаДвижений);
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
НаборДвижений.ВыполнитьРасход();
КонецПроцедуры
ПоказатьЕсли закоментировать
НаборДвижений.ВыполнитьРасход();
то никаких вопросов о сохранении не выскакивает... подскажите куда рыть?
По теме из базы знаний
- Проведение/снятие с проведения документов/очистки движений не проведенных, перезаписи ссылочных объектов с отборами для баз 1С 8.1-8.3 УТ 10.3/11, БП 2/3, КА 1.1/2, УНФ 1.6, ЗУП 3
- [8.3] Журнал документов по контрагенту для БП 3.0 + Восстановление последовательности проведения документов контрагента
- Расчет себестоимости товаров в 1С УТ 11 и КА 2 при проведении документа
- Бухгалтерия 3.0. Открытие проведенных документов только на чтение
- Открытие проведенных документов только на чтение
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Grave_For_Spam,
1. Окно с предложением оперативного - не оперативного проведения выводится потому, что в свойстве документа "Оперативное проведение" установлено "Разрешить".
2. Я думаю, что строка "НаборДвижений.ВыполнитьРасход();" в обработке проведения совсем не нужна. Так-как в данной обработке выполняется транзакция проведения, дополнительная запись движений не имеет смысла.
1. Окно с предложением оперативного - не оперативного проведения выводится потому, что в свойстве документа "Оперативное проведение" установлено "Разрешить".
2. Я думаю, что строка "НаборДвижений.ВыполнитьРасход();" в обработке проведения совсем не нужна. Так-как в данной обработке выполняется транзакция проведения, дополнительная запись движений не имеет смысла.
НаборДвижений.ВыполнитьРасход(); - убрать однозначно!
Так без этого вообще никаких движени нет..
Процедура ВыполнитьРасход() Экспорт
ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект, ВидДвиженияНакопления.Расход);
КонецПроцедуры
(5) reazek,
Жму ОК, открываю регистры, там ничего нет.
Делаю аналогично ЧекуККМ
Вроде так же
Жму ОК, открываю регистры, там ничего нет.
Делаю аналогично ЧекуККМ
// ТОВАРЫ ПО РЕГИСТРУ ТоварыНаСкладах или ТоварыВРознице.
Если Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
НаборДвижений = Движения.ТоварыНаСкладах;
Иначе
НаборДвижений = Движения.ТоварыВРознице;
КонецЕсли;
// Получим таблицу значений, совпадающую со структурой набора записей регистра.
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
...
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоКомплектам, ТаблицаДвижений);
...
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
...
Если Не Отказ Тогда
НаборДвижений.ВыполнитьРасход();
КонецЕсли;
ПоказатьВроде так же
(7) fomaOp,
Только ПередЗаписью
Только ПередЗаписью
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
// Вставить содержимое обработчика.
Если Товары.Количество() = 0 Тогда
Предупреждение("Нельзя сохранить пустой документ.");
Отказ = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(Ответственный) Тогда
Ответственный = ПараметрыСеанса.ТекущийПользователь;
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот