#0
by suvolod
Бух 2.0, док "Перемещение товаров", хочу дописать некоторые движения по забалансовому счету при проведении этого документа. Пытался сделать так: В итоге при первом проведении - мой набор всегда пуст, при перепроведении документа - набор содержит "старые" записи по бух.регистру (т.е. существовавшие до перепроведения документа) Вопрос. Каким образом можно (и можно ли вообще) получить новые движения документа через подписку на событие по этому документу?
#1
by sanja26
если хочешь дописать, то и дописывай Движение = Источник.Движения.Хозрасчетный.Добавить
#4
by suvolod
для формирования проводки по забалансовому счету мне нужны данные, которые были сформированны основным кодом. В частности, субконто Партии
#5
by ОбычныйЧеловек
Делай через набор записей НаборЗаписей=РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей; НаборЗаписей.Отбор.Регистратор.Установить(Регистратор); НаборЗаписей.Прочитать;
#11
by suvolod
нет, тоже не прокатывает.. первая же строчка возвращает пустую ТЗ. Но движения определенно есть! После проведения документа вижу целых 4 проводки
#12
by suvolod
видимо, придется через подписку ПриЗаписи наборазаписей регистра делать.. хотя лично мне кажется более удобным (да и логичным) засунуть это в подписку ОбработкаПроведения самого документа.
#13
by ОбычныйЧеловек
&suvolod хочешь нас уверить, что у тебя в подписке на событии приведенный выше код не видит движений?
#16
by ОбычныйЧеловек
Движение по регистру бух. выполняется в модуле проведения или в еще одной подписке?
#17
by Naumov
1С считает, что алгоритм подписки не должен зависеть/влиять от алгоритма проведения документа.
#21
by ОбычныйЧеловек
В подписке уже есть все движения т.е. она выполняется после модуля проведения (у меня на этом конфа вся построена а автор уверяет, что движений там нету).
#22
by suvolod
как это проверить? Я использую абсолютно типовую БП 2.0, в которой добавил единственную подписку - Источник: ДокументОбъект.ПеремещениеТоваров, Событие - ОбработкаПроведения. Код: НаборЗаписей пуст, хотя после проведения проводки по доку есть
#23
by ОбычныйЧеловек
Не знаю как работает типовая, но с удовольствием бы посмотрел как может этот код не возвращать записи..
#24
by hhhh
если движения не записаны, тогда Источник.Движения их видит, а НаборЗаписей.Прочитать не видит. или случай 2. Движения пишутся через НаборЗаписей. ТОгда надо всегда делать Прочитать;
#25
by unregistered
Такой код вроде как должен вернуть пустой набор, т.к. данные еще не записаны в базу. Код из более правильный - получать набор через свойство Источник.Движения.
#26
by ОбычныйЧеловек
Так как они могут быть не записаны, если в "подписку на событие" попадаем только когда выполнится "модуль проведения"
#28
by sanja26
в модуль подписки вообще попадает? все должно быть, если есть движения у документа Галки сервер стоят, вызов сервера?
#29
by unregistered
Молча. Если в коде обработки проведения ни где не было принудительной записи Движения.Записать или Движения.Хозрасчетный.Записать, то наборы записеи будут записаны в базу по окончании транзакции.
#31
by Alex S D
в общем случае они могут быть записаны в модуле набора записей регистра, кстати там идет обращение к движениям, там что показывает в наборе?
#32
by unregistered
В обработке проведения твой код вернет либо пустой набор (при первом проведении), либо старый набор (при перепроведении).
#37
by unregistered
Бинго! Так что прочитать записи наборов ты сможешь только по окончании транзакции (если не делается принудительная их запись в коде Движения.Записать)
#40
by unregistered
Совершенно верно. Через свойства Источник.Движения ты их увидишь. А из базы прочитать не сможешь - их в базе еще нет.
#44
by unregistered
Дятел? Тебе русским языком говорят, что надо читать набор через свойства документа Движения. В подписке это будет выглядеть так:
#46
by unregistered
я читал . И сильно сомневаюсь, что там написана правда. Либо обработчик вообще не отрабатывает, либо подписка сделана на другое событие, а не на обработку проведения.
#48
by sanja26
Сам дятел Как ты запросом будешь получать движения с учетом движений, уже сделанных этим документом. скройся под стол
#51
by unregistered
Солнышко. И откуда у нас вдруг вылез запрос? Что-то в про запрос ни какой речи нет.
#53
by sanja26
у меня в подписке на проведение запрос, использующий движеня из обработки проведения...
#54
by ОбычныйЧеловек
не вижу смысла спорить - если автору будет интересно - он проверит (будетнебудет)
#55
by unregistered
А чтож ты родной раньше молчал? Если тебе в обработке проведения нужно получать данные из регстров уже С УЧЕТОМ проведения, то единственный способ это делать принудительную запись - Движения.Записать или Движения.Хозрасчетный.Записать и только после этого писать свои запросы к регистрам.
#56
by sanja26
ну у меня получение остатков идет, конечно, вид границы исключая, но движения, насколько помню, попадали, если без границы
#57
by unregistered
Короче только что проверил. БП 2.0.37.14 Документ ПеремещениеТоваров Подписка на событие ОбработкаПроведения Код обработчика подписки: При любых раскладах (первое проведение/перепроведение ранее проведенного) выдает правильный результат. То есть набор записей есть и с правильным количеством записей. Можете спорить дальше сколько хотите.
#59
by unregistered
Такого быть не может. Как может что-то попасть в результат запроса, если этого еще нет в базе данных? Либо этот запрос делался уже после записи (которая идет в одной транзакции с проведением). Либо внутри обработки проведения была выполнена принудительная запись движений.
#60
by unregistered
Ааааааа..... Перечитай все мои посты и найди, где я говорил, что движений нет! Ты хоть понимаешь разницу между и
#61
by unregistered
Движения (свойство документа, содержащее наборы записей по всем регистрам) есть. Но эти наборы записей еще не записаны в базу данных. Поэтому посмотреть наборы записей через свойство документа "Движения" ты можешь, а вот прочитать их из базы запросом или объектной моделью методом СоздатьНаборЗаписей - нет.
#62
by Lama12
Всю ветку не читал... но мнение имею :) 1. Проверяем как делает движения документ. Если документ делает движения стандартным способом то это одно, если делает записи в наборы регистров, то подписку нужно делать на запись в регистр, иначе не перехватишь. 2. По поводу пустого набора записей. Скорее всего документ действительно делает запись движений "кривым" - правильным способом. В подписке ты перехватываешь только затирание движений, а сами движения записываются в другом месте петум прямой записи в набор записи регистра. 3. При простой - "не правильной" записи движений, в подписке перехватываются движения которые документ будет делать если ты их не изменишь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как прочитать старые движения в регистр при перепроведении документа?
- Почему у меня в документе на закладке Движения не появляется регистр свед.
- Как получить движения документа используя свойство Движения?
- Получить движения документа в подписке
- Движения по регистрам в подписке на проведение документа
- Чем чревато Движения.Записать() в подписке на ОбработкаПроведения?
- Пропадают движения в подписке проведения
В этой группе 1С
- Передача данных из 1с на стронний веб-сервис
- Как в СКД штатно получить динамику показателя?
- ЗуП 2.5 Расчет районного коэффициента + учет разовых премий
- УТ 11 Запрет редактирования вариантов отчетов всем, кроме авторов
- Как установить действие на стандартную кнопку "Кнопка открытия"?
- КД. Не загружать в базу-родитель.
- внешняя обработка - загрузка xml-файла
- ТСД cipherlab 8000 нет связи
- сделать субконто оборотным (только обороты) из обычного
- v7: Ограничение 1с 77 по памяти 2гб
- Как в универсальном отчете сгруппировать вместе два реквизита через запятую
- УФ РежимВыбораИзСписка- как в поле вводе отображать только кнопку выб. из списка
- ЗУП. Дополнительный отпуск. Расчет остатка с 01/09/2012
- Ошибка SDBL: Ожидается выражение (pos=310)
- Как из УТ ред.10.3 выгрузить номеклатуру в ТСД?
- native API на C++. Функция со строковым параметром и строковым результатом.
- Ошибка: Изменение свойств команд недоступно на клиенте
- Нажать программмно на кнопку "ОК" на форму 1с 8.2
- 1С: Документооборот. Автоматическая рассылка отчетов
- УПП, КА Возврат спецодежды из эксплуатации (НУ)