Версия для печати темы (https://pro1c.org.ua/index.php?s=20a2f9fd285ce142a3823636ffd5457f&showtopic=18830)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.1 (8.0) _ Движения по регистру накопления.
Автор: Powerman 17.07.14, 9:14
В конце процедуры «ОбработкаПроведения» вызываю из общего модуля экспортную функцию, в которой пытаюсь получить движения по регистру, которые точно есть т.к. в консоли запросов данные получаю. При выполнении запроса в экспортной функции данных нет… Пытался получать их через запрос и СоздатьНаборЗаписей с отбором по регистратору.
Код ниже…
Подскажите, почему нет данных…
Спасибо.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПартииТоваровНаСкладах.Регистратор,
| ПартииТоваровНаСкладах.Количество КАК Количество,
| ПартииТоваровНаСкладах.Склад
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
|ГДЕ
| ПартииТоваровНаСкладах.Регистратор = &Док";
Запрос.УстановитьПараметр("Док", Докум.Ссылка);
Результат = Запрос.Выполнить().Выгрузить();
Автор: alex040269 17.07.14, 9:55
потому что они еще не записаны в базу.
Автор: Powerman 17.07.14, 10:01
Цитата(alex040269 @ 17.07.14, 10:55)
потому что они еще не записаны в базу.
вызов функции в последней строке процедуры проведения, после процедур самих движений.
Автор: Rayne 17.07.14, 10:08
Была тут где-то тема, где обсуждалось, почему нельзя движения по партиям достать запросом в обработке проведения самого документа
http://pro1c.org.ua/index.php?showtopic=18298
А консолью проверять бесполезно - момент уже не тот, движения уже есть в базе.
Автор: alex040269 17.07.14, 10:08
Перед запросом вставтье код:
Движения.ПартииТоваровНаСкладах.Записать(Истина);
и убедитесь, что в "Движения.ПартииТоваровНаСкладах" есть записи.
какой будет результат запроса?
Автор: Powerman 17.07.14, 13:46
Цитата(alex040269 @ 17.07.14, 11:08) http://pro1c.org.ua/index.php?act=findpost&pid=88934
Была тут где-то тема, где обсуждалось, почему нельзя движения по партиям достать запросом в обработке проведения самого документа
http://pro1c.org.ua/index.php?showtopic=18298
А консолью проверять бесполезно - момент уже не тот, движения уже есть в базе.
Так конечно получается…
Для каждого Движение из Движения.Продажи Цикл
//...
КонецЦикла;
Мне подошло проще…
ИтогДвижение = Источник.Движения.ПартииТоваровНаСкладах.Итог("Количество");
Но опять же… движения не записаны и не факт что на сто процентов запишутся в том виде, каком есть в процедуре проведения.
Автор: Rayne 17.07.14, 14:38
1. Запишутся, если у вас нет дополнительных обработок в подписках на события.
2. Если есть сомнения в том, что "не факт, что они в таком виде запишутся", то зачем тогда вообще к ним запрос делать? Цель-то конечная есть какая-то?
Автор: Powerman 17.07.14, 14:47
Цитата(Rayne @ 17.07.14, 15:38)
1. Запишутся, если у вас нет дополнительных обработок в подписках на события.
2. Если есть сомнения в том, что "не факт, что они в таком виде запишутся", то зачем тогда вообще к ним запрос делать? Цель-то конечная есть какая-то?
Конечная цель проверить ошибки при проведении по партиям. Т.е. количество по табличной части документа сравнить с количеством в движении по регистру.
По-хорошему, я так думаю, надо бы проверять в какой ни будь обработке.
Автор: Rayne 17.07.14, 14:58
А если по одной строке документа будет списываться несколько партий? Это самописный документ? В стандартных движения делаются глобальными процедурами.
Автор: Vofka 17.07.14, 15:00
Powerman, зачем?
Автор: Rayne 17.07.14, 15:06
Цитата(Vofka @ 17.07.14, 16:00)
Powerman, зачем?
Тоже отличный вопрос
Автор: alex040269 18.07.14, 14:42
Цитата(Vofka @ 17.07.14, 16:00)
Powerman, зачем?
что бы убедиться в правильности кода
я полагаю.
Автор: Powerman 19.07.14, 10:47
Цитата(alex040269 @ 18.07.14, 15:42)
что бы убедиться в правильности кода
я полагаю.
Угадали...
Спасибо всем кто участвовал в обсуждении.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua