#0
by PVS_Mtl
Есть независимый регистр сведений, периодический. Если делается запись через МенеджерЗаписи, то вначале происходит удаление, потом вставка. Если через набор записей, то удаления (т.е. срабатывания ПередЗаписью с нулевым количеством) нет. Когда используем менеджер, запись всегда одна, и в первое срабатывание ПередЗаписью она из таблицы удаляется. Когда используем набор, передЗаписью срабатывает один раз и старые записи в таблице есть. Задача - универсальный код для подписки (вызванной как посредством менеджера, так и набора), использующий "старые" записи в ПриЗаписи. Где-то на форуме мне попадалось решение с использованием временной таблицы для передачи удаляемых записей. Если не трудно, покажите ссылку.
#1
by PVS_Mtl
Для передачи удаленных записей между двумя ПередЗаписью собираюсь использовать временную таблицу, менеджер временных таблиц передавать через экспортную переменную модуля обычного приложения. Жаль, не могу найти пример с сайта...
#2
by Лефмихалыч
ЭтотОбъект.ДополнительныеСвойства.Вставить("СтарыйНабор", ДанныеКоторыеХочешьПередаватьМеждуСобытиямиИПодписками)
#3
by Лефмихалыч
ЭтотОбъект.ДополнительныеСвойства.СтарыйНабор или Если не ЭтотОбъект.ДополнительныеСвойства.Свойство("СтарыйНабор", СтарыйНабор) Тогда ВызватьИсключение "Сектор 'Б' на барабане, вы - банкрот, всё у вас сгорело к четовой матери!";
#4
by PVS_Mtl
Спасибо за ответ! Но в подписке нет переменной ЭтотОбъект, а есть Источник. И в случае первого прогона ПередЗаписью источник один, а при втором прогоне совершенно другой. Это было в первую очередь проверено, задолго до написания вопроса. Или же я чего-то в ответе не поняла.
#7
by PVS_Mtl
Если делается запись через МенеджерЗаписи, то вначале происходит удаление, потом вставка. Итого два прогона ПередЗаписью. Первый раз с нулевым количеством. Если делается запись через НаборЗаписей, прогон всегда один, второго нет.
#8
by hhhh
ну вы передаете данные через ДополнительныеСвойства внутри одного прогона. Между ПередЗаписью и ПриЗаписи. Зачем вы второй прогон сюда?
#9
by PVS_Mtl
В том-то и дело, что я их хочу передать во второй прогон, если он есть. Т.к. если прогонов было 2, старых данных на втором прогоне в таблице нет. А если один (всего один и второго не будет), старые данные есть. Транзакция заканчивается после второго прогона в общем случае. В приЗаписи мне нужно каким-то способом определить, какой по счету прогон - второй или первый. Если он второй, старые данные брать из временной таблицы. А то получается, что иначе работа алгоритма должна зависеть от того, при помощи какого объекта был создан набор записей.
#12
by Лефмихалыч
короче, автор, ты сруйню затеял. Зачем тебе это все? Людскими словами можешь объяснить - для чего ветка?
#13
by PVS_Mtl
Чтобы при окончании транзакции из двух прогонов в окончательном ПриЗаписи получить старые данные.
#14
by PVS_Mtl
Видела раньше ветку, где решалась аналогичная задача. Сейчас не могу найти. Хотелось бы посмотреть, может в ней решение удачней моего с экспортной переменной для менеджера временных таблиц.
#16
by Лефмихалыч
Даже если передЗАписью делать запрос к регистру по значениям отбора из Источника, пхать это в ДополнительныеСвойства, то при втором вызове ПередЗаписью источник будет уже другой и там ни чего в допсвойствах не будет. Если - во временное хранилище только разве, но открытым и нерешаемым остается вопрос, как во втором вызове обработчика угадать ИД записи во временном хранилище.
#17
by PVS_Mtl
Уже недели 2 работает вариант с помещением в ТЗ, а её в параметр сеанса. Есть намерение сделать через временную таблицу (см выше), а менеджер временных таблиц передавать через экспортную переменную модуля обычного приложения. Но помню, видела тут изящный вариант, но похоже никто больше на него не обратил внимания, а я как назло не могу найти.
#18
by ptiz
Ой, нехорошо через общую переменную - не будет работать на сервере. Либо параметр сеанса, либо где-то в БД хранить - еще один регистр "удаленных записей" или этот же с признаком "к удалению".
#19
by Элит
Я решала подобную задачу в Документообороте. Удалось "двойной" заход решить через проверку регистра сведений "история событий". Иначе никак не получалось.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Подписка на волшебство программирования . (Волшебнику)
- Проведение и отмена проведения (подписка на события)
- Подписка на события в 1С
- V8 подписка на событие запись регистра накопления
- Подписка на событие для РС
- Подписка на событие Перед записью регистра бухгалтерии
- Подписка на событие "ОбработкаПроведения"
- v7: 7.7 ИТС подписка обновление без диска
- Подписка на событие. Как отловить событие другому пользователю?
- Как может подписка на событие передЗаписью вызываться при создании документа?
- Подписка на событие при записи Регистра сведений
- Подписка на событие ПередПри Записью регистра накопления
В этой группе 1С
- 1с 8.3 внешние отчеты....
- ЗУП 2.5 Сотрудник не попадает в табель
- обмен УТ 11.2 - БП 3.0 статусы загруженных документов
- УТ 11.2 СКД как загрузить пользовательские настройки?
- Отключить контроль остатков Розница, редакция 2.2 (2.2.2.20)
- ЗуП 3.0 Не обнаружено ни одного начисления "компенсация отпуска" при увольнении
- ЗУП 3.0 Групповое перепроведение документов?
- Ошибка при записи ФабрикаXDTO.ЗаписатьXML (
- УПП Отражение зарплаты в регл. учете с разбивкой по сотрудникам
- v7: Получить реквизит формы
- Linux platform upgrade (8.3.7-2008) over (8.3.6-2390) bug
- v7: Склонение по падежам в 1С 7.7 - нужен работающий пример
- СКД. Период в быстрых отборах
- УТ 11.2 отключить окно поддержка пользователей
- ОСВ по счету 01 с отбором по МОЛ
- Как в процедуре на сервере прочитать файл, находящийся на компьютере клиента?
- Розница 2.2 -> УТ 11.2, Внесение денежных средств в кассу ККМ не переносится
- Динамический список.
- ЗУП 2.5 (8.2.19.83) блокировки при отмене проведения "Начисление зп"
- Как сделать упрощенное представление в ТЧ типа ссылка на док