2

ОбработкаПроведения() и фактическое движение

#1С 8.2

В обработке проведения у документа пишу в регистр нужные мне значения. В конце обработки стоит процедура, которая делает запрос к базе и смотрит, что записано в регистр по данному документу. Запрос при первичном проведении всегда возвращается пустой. При повторном проведении - с данными первого проведения. Получается, что даже если в обработке проведения есть код

Движения.ТЕ_РеквизитыДоговоров.Записывать = Истина; Для Каждого ТекСтрокаРеквизитыДоговора Из РеквизитыДоговора Цикл Движение = Движения.ТЕ_РеквизитыДоговоров.Добавить(); Движение.Период = Дата; Движение.ОсновнойДоговор = ОсновнойДоговор; Движение.Реквизит = ТекСтрокаРеквизитыДоговора.Реквизит; Движение.Значение = ТекСтрокаРеквизитыДоговора.Значение; КонецЦикла;

То движение, по факту, все равно происходит ПОСЛЕ ОбработкиПроведения()? Куда в таком случае лучше пихать процедуру с запросом, которая будет получать только что записанные данные проведения?

 2487 1
ДобавленоГригорий767 дней назад
Отредактировано761 день назад


Добавить комментарий

Кирилл написал:766 дней назад0

Привет!

Тут всё достаточно просто. Есть два пути записи при проведения:

  1. Просто заполнить наборы движений, а документ сам их запишет
  2. Записывать наборы записей прямо в обработке проведения в явном виде

В первом случае:

Движения.Товары.Записывать = Истина;
Движения.Товары.Очистить();
Для Каждого ТекСтрокаТовары Из Товары Цикл
......
КонецЦикла;

Во втором случае это выглядит к коду добавляется еще строка:

Движения.ТоварыНаСкладах.Записать();

Получается в твоём случае что бы получить результат запроса нужно пойти по второму сценарию - в этом случае ты можешь сразу получить эти записи результатом запроса.

Если записываться на будет посмотри на свойство “Записывать” у регистра (Движения.Товары.Записывать = Истина) и на свойство документа “Записывать выбранные” (правой кнопкой по документу - свойства).

Но я советую пользоваться записью регистров “после обработки проведения”. Записывая регистры в разных документах в разной последовательности можно словить “deadlock” или взаимоблокировку. Штука неприятная и найти её потом очень сложно.

Ответить

Задать вопрос!

Наш канал на Youtube

Изучаете 1С? Скачайте 200 видео по 1С бесплатно:

Похожее

Как создать регистр накопления оборотов?

Привет, как правильно создать регистр накопления оборотов? Я добавил новый отчёт...

1С 8.2: Ошибка при вызове метода контекста (Выполнить) Ожидается выражение "ВЫБРАТЬ"

Всем привет. Помогите пожалуйста!!!!!!!!!!!!!!! Выдает ошибку. Была пропущена т...

Создать Движение по регистру

Здравствуйте! Подскажите, пожалуйста. В новом документе я делаю движение по реги...

Вопрос по регистрации наработок оборудования в ERP. Проблема проведения

Добрый день! Пытаюсь разобраться с работой в этой конфигурации, и возникает очен...

Изменение реквизитов элементов справочника при проведении документа

Доброго времени суток! Прошу помочь, нужно изменить реквизиты элементов справочн...

Новое

не могу обновить 1с 8.2

Здравствуйте! подскажите как можно решить проблему с обновлением 1 с 8.2 базовая...

Отражение зарплаты в регламентирован ним учете

Использую Зуп 2.5 Потребовался отчёт для выборки данных по сотрудникам из докуме...

Справочник

Здравствуйте, подскажите пожалуйста, хочу сделать, чтобы при выборе в справочник...

Большой видеоархив по платформам 1С 8.2 и 8.3. Пользователям и разработчикам

Всем привет! Добротный канал для обучения с регулярным добавлением видеокурсов: ...

Перенос остатков по складам из БП 3.0 в УТ 11.3

Добрый день. Есть заявка о том, что нужно один раз перенести из БП в пустую УТ д...