2

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

#1С 8.2

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

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

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

 2231 1
ДобавленоГригорий708 дней назад
Отредактировано703 дня назад


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

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

Привет!

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

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

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

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

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

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

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

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

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

Ответить

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

Наш канал на Youtube

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

Похожее

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

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

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

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

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

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

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

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

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

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

Новое

2 НДФЛ и 6 НДФЛ

Добрый день! Получили процентный займ от учредителя, который не является работни...

Слияние двух баз 1 С8.3

Уважаемые партнеры, коллеги. У меня возникла необходимость в слиянии двух баз, в...

Ищем разработчика 1С на ЗУП 3.0 (Москва)

За подробностями Вы можете писать на почту alina.stogina@hays.ru!...

Перенос БГУ 1.0->БГУ 2.0 Счет 303 учет по ИФО

Всем привет! После переноса данных из 1.0 в 2.0 формирую общие оборотки и вижу, ...

Помогите сделать внешнюю печатную форму ТОРГ-13

Пытаюсь программировать в 1с недавно, опыта нет. По полученным из интернета инс...