Имя: Пароль:
1C
1С v8
Проведение документа
0 dimon1210
 
30.03.15
09:51
В одной процедуре проведения два раза вношу изменения регистр. Могу ли я сразу за первым движением получить обновленную информацию по остаткам.
1 smitru
 
30.03.15
09:53
(0) Да
2 shuhard
 
30.03.15
09:53
(0) смотря как вносишь
3 dimon1210
 
30.03.15
10:00
Сначала одним запросом вношу изменения, потом мне нужны уже обновленные данные по остаткам, но следующий запрос изменений не видит.
4 GROOVY
 
30.03.15
10:01
Запиши движения.

Но, ИМХО, что-то ты не то делаешь...
5 vde69
 
30.03.15
10:03
если ты пишешь в регистр - то в запросе все получишь,

если пишешь движения - то надо будет из записать... но это плохо, по тому как 1с оптимизирует запись движений в одном порядке (что-бы дедлоков не было)

самое оптимально - это анализ коллекции дижений....
6 shuhard
 
30.03.15
10:05
(3)[одним запросом вношу изменения]
с этого места поподробнее
7 vde69
 
30.03.15
10:05
Процедура СформироватьПолныеДвиженияДокумента (Заголовок, Отказ) Экспорт
    // определяем по каким регистрам движения у нас будут
    
    ТаблицаПроведения = ПроведениеДокументов.СоздатьТаблицуПроведения();
    Документы.Рентабельность.ЗаполнитьТаблицуПроведения(ТаблицаПроведения, ПометкаУдаления, Проведен, Отказ);
    // подготовим пакет запроса в соответствие с тем какие регистры мы определили,
    // после подготовки пакета его можно чуть допилить
    Запрос = ПроведениеДокументов.ПодготовитьЗапросДляПроведения(ЭтотОбъект, ТаблицаПроведения,  Заголовок, Отказ);
    
    // выполнение пакета и заполнения таблиц проведения
    // после можно что-то подкоректировать руками
    Параметры = Новый Структура("УдалитьВсеДвижения");
    ПроведениеДокументов.ПодготовитьТаблицуПроведения (ЭтотОбъект, Запрос, ТаблицаПроведения, Параметры, Заголовок, Отказ);
    
    // выполняем движения по регистрам
    ПроведениеДокументов.ПроведениеПоРегистрам(ЭтотОбъект, ТаблицаПроведения, Заголовок, Отказ, Истина);
КонецПроцедуры