Книга продаж, Комплексная 7.7

Новая тема
"Вот как вы считаете, это нормальное построение алгоритма?

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
  Регистр.КакойТоРегистр.Товар=Товар;
  Регистр.КакойТоРегистр.Количество=Количество;
  Регистр.КакойТоРегистр.ДвижениеПриходВыполнить();
  Регистр.КакойТоРегистр.Сумма=Сумма;
КонецЦикла;

Обратите внимание на взаимное расположение ДвижениеПриходВыполнить и КакойТоРегистр.Сумма=Сумма.
А теперь смотрим в комплексную конфигурацию (7.70.484) в модуль проведения документа КнигаПокупок, процедура ПроведениеПоПоступлению():

Пока Запрос.Группировка("ДокументОплаты")=1 Цикл
...
  Регистр.КнигаПокупок.ДвижениеПриходВыполнить();

  Если (Регистр.КнигаПокупок.СуммаРуб<0) И (ДатаДок>=НачМесяца(глДатаПостановления283)) Тогда
     Регистр.КнигаПокупок.ЗаписьДополнительногоЛиста=1;
     Регистр.КнигаПокупок.КорректируемыйПериод=Запрос.КредДокумент.ДатаДок;  
  Иначе
     Регистр.КнигаПокупок.ЗаписьДополнительногоЛиста=0;
     Регистр.КнигаПокупок.КорректируемыйПериод=Дата(0);  
  КонецЕсли;
КонецЦикла;

То есть, знчения пары реквизитов устанавливаются уже после того как прошла команда на запись движения в регистр. с учтетом того, что работа идет в цикле, установленные значения попадают в следующее движение, которое фиксируется в базе при следующем проходе. Короче, в книге покупок в старые периоды в виде доп.листов улетели записи, которые должны быть в текущем в нормальном порядке! Каша получилась, причем несъедобная. Посмотрел на алгоритм древних конфигураций... и в 7.70.479 было тоже самое. Я не пойму!? Может я что то не понимаю? Как такие грабли могли просуществовать в конфигурации минимум 5 релизов?"
Что самое интересное, когда им указываешь на ошибку в ответ на это они просяит прислать демо базу где будет видна эта ошибка.
Читают тему
(гостей: 1)

Быстрый переход