#0
by Пчелкин
УПП 1.3.68.1 8.2.19.90 Отчет производства за смену. Задача: сделать так, чтобы при проведении документа продукция не отображалась на складе сразу. Реализация: делаю реквизит документа ПоказатьДвижения (булево), выношу на форму. Создаю подписку на обработку проведения. В процедуре проверка: Провожу документ. Движения в товарных регистрах есть, и они неактивны. Всё замечательно. Ставлю галочку ПоказатьДвижения, провожу документ: движений в товарных регистрах нет совсем (по другим регистрам проводится нормально). Провожу повторно - движения появляются. Провожу с ПоказатьДвижения = Ложь, закрываю форму документа, открываю снова и провожу с ПоказатьДвижения = Истина - все хорошо, движения есть. ЧЯДНТ?
#1
by Пчелкин
Добавил в начало процедуры следующий код: Провожу с ПоказатьДвижения = Истина. Смотрю в отладчике: записи в НЗ есть, активны. В движениях документа записи в ТоварыНаСкладах есть, а в других товарных регистрах - пусто. Т.е. вызов метода Прочитать как-то влияет на движения?
#2
by RomanYS
Если в процессе проведения идет явная запись (Движения.ИмяРегистра.Записать), то набор очищается (и тебе надо его снова читать). Иначе запись происходит по завершении проведения (включая подписки) при условии Движения.ИмяРегистра.Записывать = Истина (и ты видишь эти движения в своей подписке)
#4
by RomanYS
+ если во втором случае сделать "прочитать", то набор очистится (прочитаются движения из базы, которых нет).
#5
by Пчелкин
Движения...Записать нигде в подписке не используется. Как это движений нет? Разбираю ситуацию: провожу документ, штатный механизм делает движения. Я после этого делаю (в подписке) часть их (по некоторым регистрам) неактивными. Снова провожу документ (документ проведен ранее и часть его движений неактивна), тот же механизм формирует те же движения. Подписка запускается и тут же завершается (по условию ПоказатьДвижения). Только движений (тех самых, которые формирует родной УПП-шный код) почему-то нет.
#6
by Пчелкин
Т.е. 1. Пропадают только те движения, которые при прошлом проведении делались неактивными. 2. Пропадают они в том случае, если я никак не пытаюсь к ним обратиться. 3. Пропадают только если после установки движений неактивными (проведение с ПоказатьДвижения=Ложь) и перед проведением с ПоказатьДвижения=Истина форма документа не закрывалась.
#7
by RomanYS
"Записать нигде в подписке не используется" речь не о твоей подписке, а обо всем алгоритме проведения, включая все подписки. Если Записать там не используется (рекомендуется делать явную запись только явной при необходимости), то наборы уже содержат движения (сформированные алгоритмом проведения), а твое Прочитать замещает их пустым набором. Вывод: либо делай Прочитать только если набор пуст, либо [правильней] делай подписку не на проведение, а на запись наборов регистров
#9
by Пчелкин
В том-то и дело, что при втором проведении (ПоказатьДвижения=Истина) я ни Прочитать, ни Записать -вообще ничего не использую. Первый раз (ПоказатьДвижения=Ложь) подписка обрабатывает движения. Второй раз (ПоказатьДвижения=Ложь) - подписка не делает вообще ничего.
#11
by RomanYS
ХЗ что там в конкретном случае, по описанию действительно странно, тут только отладчик поможет Что в принципе "не так" - безусловное Прочитать
#15
by Пчелкин
Собственно задачу так и решил, поставив проверку Если Источник.ПоказатьДвижения Тогда Продолжить; после НаборЗаписей.Прочитать Но вопросы остались и такое решение считаю временным. Благо, строк в документе немного. А вообще лишнее чтение ни к чему. Почему так происходит - непонятно. Почему при закрытии-открытии формы всё проводится нормально? Попробую завтра еще поэкспериментировать.
#16
by Пчелкин
В подписке Движения[ИмяРегистра] - пустой набор записей, поэтому приходится вызывать Прочитать. И после завершения подписки в Движения[ИмяРегистра] записи остаются. При последующем проведении из модуля документа вызывается очистка коллекции движений, после чего Движения[ИмяРегистра].Модифицированность начинает возвращать Истина. Из-за этого, видимо, движения далее не записываются. Вопрос: как сделать так, чтобы после подписки в Движения[ИмяРегистра] записей не оставалось?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Пропадают проводки в документе "Ввод в эксплуатацию ОС"
- при перепроведении документа пропадают движения по регистру накопления
- Помогите!Как сохранить движения документа при отмене проведения?
- Движения по регистрам в подписке на проведение документа
- v7: Пропадают движения.
- v7: Пропадают движения в регистре при повтором проведении
- Запись движения документа при отмене проведения
- пропадают записи из т.ч.серий и движ.по регистру
В этой группе 1С
- Считывание штрихкодов в 1С
- Можно ли узнать сколько свичей на твоем пути?
- Открыть и заполнить веб страницу
- РольДоступна() Проблемы при установке ролей.
- Надежен ли программный рейд на серверной винде
- Долго сохраняется изменение Конфигурации
- БП ред. 3.0. Не работает поиск в подчиненной базе после обновления
- Ошибки в 1С-отчетности
- РИБ с нуля без создания образа
- Работа с датами в СКД
- Сканер не срабатывает по ВвестиСтроку() в ЧекККМ
- Себестоимость в подбор номенклатуры
- УПП 1.3 как сформировать в УПП проводку Д 50.02 К 90.
- 1C 8.3 Построение Диаграммы в СКД.
- Как переопределить последовательность использования программных лицензий 1С
- Заполнение регистра сведений из таблицы значений
- Как в уже созданном док определить что он создавался копированием?
- УТ. Проблемы с округлением сумм в реализации
- сменные Графики работы в 1С УПП
- ЗУП 3.0. Аванс процентом пропорционально отработанному времени