2

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

#1С 8.2

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

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

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

 2358 1
ДобавленоГригорий740 дней назад
Отредактировано735 дней назад


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

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

Привет!

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

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

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

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

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

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

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

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

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

Ответить

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

Наш канал на Youtube

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

Похожее

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

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

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

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

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

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

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

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

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

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

Новое

Справочник

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

Заполнение значений свойств по выбранному свойству.

Как сделать автозаполнение значений свойств по выбранному свойству номенклатуры....

счет-фактура на возврат денег поставщиком

по оплате от поставщика мы приняли к зачету ндс по сч-фактуре. теперь деньги нам...

Расчет районного коэффициента в больничном листе

Добрый день! Очень нужна помощь! При расчете б/л не верно считает положительную ...

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

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