в конфигурацию Бухгалтерия предприятия, редакция 2.0 (2.0.29.10) был добавлен документ - заказ-наряд, который формирует движения по списанию со счета 10.05 на 44.01 и НДС на 19.03 с восстановлением НДС, если издержки признаны гарантийным случаем, то списание необхдимо произвести на 76.02 и НДС не восстанавливать. Документ сам загружается из управленческой программы, а в ней никакие изменения не производятся - период закрыт. В документ добавлен реквизит РучнаяКорректировка, в модуль проведения добавлен вызов функции ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) - отладка показывает, что при корректировке данные по бухгалтерскому регистру и регистру сведений изменяются при закрытии формы обработки корректировки, но на деле остаются прежними и повторное открытие проводок мы видим галку ручная корректировка и старые неоткорректированные движения. Подскажите пожалуйста, в какую сторону копать?
PS понимаю что ручная корректировка проводок зло, и даже сделал в документе возможность по замене результирующего счета, но каждый раз при возникновении такой ситуации править алгоритм проведения, тоже считаю не правильно.
PS понимаю что ручная корректировка проводок зло, и даже сделал в документе возможность по замене результирующего счета, но каждый раз при возникновении такой ситуации править алгоритм проведения, тоже считаю не правильно.
По теме из базы знаний
- Поиск документов с "ручными корректировками"
- Изменение проводок в документе Отражение зарплаты в бухучете. Резервы по оплате труда. Ручная корректировка движений документа. Замена вида операции с договором ГПХ
- Проведение документа "Отражение зарплаты в бухучете" по счету 71.01 (Расчеты с подотчетными лицами) и "Ручная корректировка" проводок для БП 3.0
- Добавление галочки "Ручная корректировка" в документе "Отражение зарплаты в бухучете"
- Ручные корректировки в конфигурации 1С: Бухгалтерия 3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ручная корректировка движений происходит с помощью обработки "КорректировкаДвижений".
У этой обработки есть реквизит "ДокументОбъект" составного типа данных.
Попробуйте в состав типов данных этого реквизита добавить Ваш заказ-наряд.
У этой обработки есть реквизит "ДокументОбъект" составного типа данных.
Попробуйте в состав типов данных этого реквизита добавить Ваш заказ-наряд.
и еще раз скажу модуль обработки корректировки отрабатывает нормально, перед закрытием формы я вижу что движения ДокументОбъект - те что нужно, но обработка закрылась - движения остались. Пробовал в кусок:
ДокументОбъект.РучнаяКорректировка = РучнаяКорректировка;
Попытка
ДокументОбъект.Записать();
добавлять строчку
ДокументОбъект.Движения.Записать();
но не помогло. Пробовал различные режимы удаления движений "Удалять автоматически", "Не удалять автоматически" и "Удалять автоматически при отмене проведения"
ДокументОбъект.РучнаяКорректировка = РучнаяКорректировка;
Попытка
ДокументОбъект.Записать();
добавлять строчку
ДокументОбъект.Движения.Записать();
но не помогло. Пробовал различные режимы удаления движений "Удалять автоматически", "Не удалять автоматически" и "Удалять автоматически при отмене проведения"
ну вобщем не мудрствуя лукаво, решил просто добавить кусок кода:
ИначеЕсли ДокументОбъект.Метаданные() = Метаданные.Документы.ЗаказНаряд и РучнаяКорректировка И (РольДоступна("ПравоГлавногоБухгалтера") ИЛИ РольДоступна("ПолныеПрава")) Тогда
рег = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
рег.Отбор.Регистратор.установить(ДокументОбъект.Ссылка);
рег.Прочитать();
рег.Загрузить(ЭлементыФормы.Хозрасчетный.Значение.Выгрузить());
рег.Записать(Истина);
Если ЭлементыФормы.Найти("НДСПредъявленный") <> Неопределено Тогда
рег = РегистрыНакопления.НДСПредъявленный.СоздатьНаборЗаписей();
рег.Отбор.Регистратор.установить(ДокументОбъект.Ссылка);
рег.Прочитать();
рег.Загрузить(ЭлементыФормы["НДСПредъявленный"].Значение.Выгрузить());
рег.Записать(Истина);
КонецЕсли;
ДокументОбъект.РучнаяКорректировка = РучнаяКорректировка;
Попытка
ДокументОбъект.Записать();
Исключение
Сообщить("При попытке записи документа возникла ошибка:" + ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
теперь все работает.
ИначеЕсли ДокументОбъект.Метаданные() = Метаданные.Документы.ЗаказНаряд и РучнаяКорректировка И (РольДоступна("ПравоГлавногоБухгалтера") ИЛИ РольДоступна("ПолныеПрава")) Тогда
рег = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
рег.Отбор.Регистратор.установить(ДокументОбъект.Ссылка);
рег.Прочитать();
рег.Загрузить(ЭлементыФормы.Хозрасчетный.Значение.Выгрузить());
рег.Записать(Истина);
Если ЭлементыФормы.Найти("НДСПредъявленный") <> Неопределено Тогда
рег = РегистрыНакопления.НДСПредъявленный.СоздатьНаборЗаписей();
рег.Отбор.Регистратор.установить(ДокументОбъект.Ссылка);
рег.Прочитать();
рег.Загрузить(ЭлементыФормы["НДСПредъявленный"].Значение.Выгрузить());
рег.Записать(Истина);
КонецЕсли;
ДокументОбъект.РучнаяКорректировка = РучнаяКорректировка;
Попытка
ДокументОбъект.Записать();
Исключение
Сообщить("При попытке записи документа возникла ошибка:" + ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
теперь все работает.
Разобрался. Нужно в свойствах документа поставить Запись движений при проведении поставить значение "Записывать модифицированные", более ничего не требуется никаких подписок на события. Единственное что нужно указать в обработке проведения и удаления движения проверку на использования реквизита Ручная корректировка
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот