Всем доброго времени суток !! Сегодня наткнулся к такому вопросу :
Хочу создать условие в общем модуле в Обработке Проведения, т.е условно записывать движения документов.
Мой не рабочий код :
или все таки что то я не понимаю ?
Хочу создать условие в общем модуле в Обработке Проведения, т.е условно записывать движения документов.
Мой не рабочий код :
Процедура ОбработкаПроведения(Отказ, Режим)
// регистр ВзаиморасчетыСПоставщиками Расход
Если Не Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) тогда
Движения.ВзаиморасчетыСПоставщиками.Записывать = Истина;
Движение = Движения.ВзаиморасчетыСПоставщиками.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Поставщик = Поставщик;
Движение.ГруппаПоставщика = ГруппаПоставщика;
Движение.Сумма = ОплатаПоставщику;
Иначе
Отказ = Истина;
КонецЕсли;
// регистр Деньги Приход
Движения.Деньги.Записывать = Истина;
Движение = Движения.Деньги.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Кошелек = Кошелек;
Движение.Сумма = Выручка;
// регистр Управленческий
Движения.Управленческий.Записывать = Истина;
Движение = Движения.Управленческий.Добавить();
Движение.Период = Дата;
Движение.СчетДт = СчетДт;
Движение.СчетКт = СчетКт;
Движение.Сумма = Выручка;
// регистр Управленческий
Движения.Управленческий.Записывать = Истина;
Движение = Движения.Управленческий.Добавить();
Движение.Период = Дата;
Движение.СчетДт = СчетДтОплатаПоставщикам;
Движение.СчетКт = СчетКтОплатаПоставщикам;
Движение.Сумма = ОплатаПоставщику;
КонецПроцедуры
Показатьили все таки что то я не понимаю ?
По теме из базы знаний
Найденные решения
Давайте уже учиться говорить правильно, а? Ну что за "отказ в общем модуле"? Что за "обработка проведения в общем модуле"?
Трудно написать "Использование флага Отказ в обработке проведения"? Трудно написать "обработка проведения в модуле объекта" (хотя больше её и находиться негде)?
По теме:
1. В случае, если необходимо, чтобы документ был проведен, но не формировались движения - тогда надо его проверять в начале и делать возврат, без всяких отказов.
2. В случае, если надо чтобы документ был записан, но не проведен - тогда такие вещи надо контролировать перед записью
3. В случае, если надо просто запретить запись такого документа, то только тогда включаем флаг Отказа от транзакции:
Трудно написать "Использование флага Отказ в обработке проведения"? Трудно написать "обработка проведения в модуле объекта" (хотя больше её и находиться негде)?
По теме:
1. В случае, если необходимо, чтобы документ был проведен, но не формировались движения - тогда надо его проверять в начале и делать возврат, без всяких отказов.
Процедура ОбработкаПроведения(Отказ, Режим)
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
2. В случае, если надо чтобы документ был записан, но не проведен - тогда такие вещи надо контролировать перед записью
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РежимЗаписи = РежимЗаписиДокумента.Проведение И Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
КонецЕсли;
КонецПроцедуры
3. В случае, если надо просто запретить запись такого документа, то только тогда включаем флаг Отказа от транзакции:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Сообщить("Алярм!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Давайте уже учиться говорить правильно, а? Ну что за "отказ в общем модуле"? Что за "обработка проведения в общем модуле"?
Трудно написать "Использование флага Отказ в обработке проведения"? Трудно написать "обработка проведения в модуле объекта" (хотя больше её и находиться негде)?
По теме:
1. В случае, если необходимо, чтобы документ был проведен, но не формировались движения - тогда надо его проверять в начале и делать возврат, без всяких отказов.
2. В случае, если надо чтобы документ был записан, но не проведен - тогда такие вещи надо контролировать перед записью
3. В случае, если надо просто запретить запись такого документа, то только тогда включаем флаг Отказа от транзакции:
Трудно написать "Использование флага Отказ в обработке проведения"? Трудно написать "обработка проведения в модуле объекта" (хотя больше её и находиться негде)?
По теме:
1. В случае, если необходимо, чтобы документ был проведен, но не формировались движения - тогда надо его проверять в начале и делать возврат, без всяких отказов.
Процедура ОбработкаПроведения(Отказ, Режим)
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
2. В случае, если надо чтобы документ был записан, но не проведен - тогда такие вещи надо контролировать перед записью
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РежимЗаписи = РежимЗаписиДокумента.Проведение И Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
КонецЕсли;
КонецПроцедуры
3. В случае, если надо просто запретить запись такого документа, то только тогда включаем флаг Отказа от транзакции:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Сообщить("Алярм!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
(11) ОК. Тогда вот так
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ВзаиморасчетыСПоставщиками.Записывать = Истина;
Движения.Деньги.Записывать = Истина;
Движения.Управленческий.Записывать = Истина;
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
(12)
так вообще перестал записывать
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ВзаиморасчетыСПоставщиками.Записывать = Истина;
Движения.Деньги.Записывать = Истина;
Движения.Управленческий.Записывать = Истина;
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Движения.ВзаиморасчетыСПоставщиками.Записывать = Истина;
Движения.Деньги.Записывать = Истина;
Движения.Управленческий.Записывать = Истина;
Если Поставщик = Справочники.Поставщики.НайтиПоНаименованию("Наша фирма",1) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
так вообще перестал записывать
(13) Что перестал записывать? Движения? Так и не должен. Я же написал - у документа должен стоять признак проведен, но движения формироваться не должны.
Именно так и твой код работает.
Можно как-то подробнее расшифровывать свои ответы? У меня столько пива нет, чтобы пытаться фантазировать...
Именно так и твой код работает.
Можно как-то подробнее расшифровывать свои ответы? У меня столько пива нет, чтобы пытаться фантазировать...
(14)значит так. У меня документ оказания услуг в котором есть реквизиты: "Номенклатура", "Поставщик", "СуммаПоставщика". Этот документ сейчас формирует Движения по "РегистрНакопления.ВзаиморасчетыСПоставщиками" Измерения: "Поставщик", Ресурс: "СуммаПоставщика".
Теперь вопрос:
Я хочу условно записывать эти движения. Допустим если в документе реквизит"Поставщик" = "Наша фирма" тогда не записывать движения (здесь имеется ввиду движения по регистру накопления). А все остальное как обычно, ничего не должно меняться. Еще раз повторяю: - Нужно пропускать только записи движения по Регистру Накопления при выполнении условии !
Теперь вопрос:
Я хочу условно записывать эти движения. Допустим если в документе реквизит"Поставщик" = "Наша фирма" тогда не записывать движения (здесь имеется ввиду движения по регистру накопления). А все остальное как обычно, ничего не должно меняться. Еще раз повторяю: - Нужно пропускать только записи движения по Регистру Накопления при выполнении условии !
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот