2

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

#1С 8.2

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

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

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

 2643 1
ДобавленоГригорий797 дней назад
Отредактировано792 дня назад


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

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

Привет!

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

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

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

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

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

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

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

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

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

Ответить

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

Наш канал на Youtube

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

Похожее

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

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

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

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

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

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

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

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

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

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

Новое

Срочно! Нижний Новгород! Нужен опытный программист 1С

Крупная и развивающаяся кампания находится в поисках Программиста 1С (Финансовы...

Бюджетирование - статьи бюджета по произвольным данным

Помогите, пожалуйста! Создаю статью бюджета с произвольными данными. Загружаю с...

егаис

Добрый вечер. Прошу Вас помочь. Для получения накладных от производителя делаю з...

Концептуальная модель (инфологическая) распределенной БД

Очень нужна ваша помощь. Создала распределенную 1С БД( хоть она и не распределен...

Где находится анткетирование клиентов в УТ 11?

Подскажите где почитать про анкетирование в УТ. Нужно изучить как оно устроено....