Статус
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 256 раз
Рейтинг: 0
Платформа 8.2.17.153 Конф.: Управление торговлей 10.3.21.2 (Россия) Сочиняю самодельный документ. В обработке проведения читаю итоги из регистра накопления. Итоги читаются так, как будто движения текущего документа записаны в регистр. Кто-то видит ошибку в коде?
Процедура ОбработкаПроведения(Отказ, Режим) Движения.ТоварыНаСкладах.Очистить(); //ВОТ ТУТ ЖЕ Я ВРОДЕ БЫ ОЧИЩАЮ ДВИЖЕНИЯ Запрос =Новый Запрос; Запрос.УстановитьПараметр("Дата",Дата); Запрос.УстановитьПараметр("ВсеТовары",НЕ ЗначениеЗаполнено(Номенклатура)); Запрос.УстановитьПараметр("ВыбТовар" ,Номенклатура); Запрос.Текст= "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры, | ТоварыНаСкладахОстатки.Качество, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &Дата, | &ВсеТовары | ИЛИ Номенклатура В ИЕРАРХИИ (&ВыбТовар)) КАК ТоварыНаСкладахОстатки"; тзИт=Запрос.Выполнить().Выгрузить(); //ДАЛЬШЕ СОЗДАЮТСЯ ДВИЖЕНИЯ ТИПА ТАК Движение = Движения.ТоварыНаСкладах.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Товар; Движение.Склад = СтрИТ.Склад; Движение.ХарактеристикаНоменклатуры = СтрИТ.ХарактеристикаНоменклатуры; Движение.СерияНоменклатуры = СтрИТ.СерияНоменклатуры; Движение.Качество = СтрИТ.Качество; Движение.Количество = МожноСписать; КонецПроцедуры
сам нашел. В метаданных документа поставил "Удаление движений"=Удалять автоматически. И итоги стали читаться нормально.
Старейшина
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0
Я в подобной ситуации переписал запрос следующим образом:
"ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры, | ТоварыНаСкладахОстатки.Качество, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладахОстатки Где ТоварыНаСкладахОстатки.Период<&Дата и (&ВсеТовары ИЛИ ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ (&ВыбТовар)) И Регистратор<>&Регистратор "
И мой вариант, вероятно будет работать медленнее?
Правильно поставленный вопрос содержит до 90% ответа.
Статус
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 256 раз
Рейтинг: 0
Цитата
Движения.Записать();
Виноват. Это я в фрагмент кода не вставил.
В общем так понимаю, что оно там особо от платформы 7 и не отличается. В метаданных определяем , как будут очищаться движения. И в случае, если очистка не автоматическая, тогда очищаем в модуле проведения.
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(Vofka @ 23.05.13, 17:16)
Если сделать в обработке проведения запрос - то данные будут прежние
Да. Не обратил внимание на то, что данные надо получить в процедуре проведения. В УНФ и УТ3, например, движения записываются еще до окончания ОбработкиПроведения отдельной процедурой, поэтому данные регистров уже можно получить до окончания проведения (используется для контроля отрицательных остатков, например). Там это организовано через "Движения.ТоварыНаСкладах.Записать();"
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!