Подписка на события РегистрСведений ТекущиеСостоянияДокументов
Помогите разобраться с <Подпиской на события> ...
Документооборот 1.4
Есть РегистрСведений "ТекущиеСостоянияДокументов" с измерениями:
Проблема в том, что Источник не имеет свойств .Сосотояние и .Документ
Что же тогда такое Источник и как надо исправить мой Код ?
Документооборот 1.4
Есть РегистрСведений "ТекущиеСостоянияДокументов" с измерениями:
- Документ
- Состояние
- УдалитьСостояние
- Установил
- ДатаУстановки
Процедура ВЧ_ДоговорСогласованПриЗаписи(Источник, Отказ, Замещение) Экспорт
// Вставить содержимое обработчика.
Если Источник.Сосотояние = Перечисления.СостоянияДокументов.Согласован Тогда
// Проверим наш ли это "ВнутреннийДокумент"
Если ТипЗнч(Источник.Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
// Формируем пакет для УПП
Сообщить("Формируем пакет для УПП");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьПроблема в том, что Источник не имеет свойств .Сосотояние и .Документ
Что же тогда такое Источник и как надо исправить мой Код ?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Vitaly1C8, Источник - это набор записей этого регистра (коллекция строк-записей)
Нужно сделать перебор в цикле
вот один из вариантов, если у Вас весь набор записей будет формировать пакет для УПП
а вот другой вариант, если для каждой строки свой пакет для УПП
Нужно сделать перебор в цикле
вот один из вариантов, если у Вас весь набор записей будет формировать пакет для УПП
Процедура ВЧ_ДоговорСогласованПриЗаписи(Источник, Отказ, Замещение) Экспорт
ФормироватьПакетДляУПП = Ложь;
Для Каждого Запись Из Источник Цикл
Если Запись.Состояние = Перечисления.СостоянияДокументов.Согласован Тогда
// Проверим наш ли это "ВнутреннийДокумент"
Если ТипЗнч(Запись.Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
// Формируем пакет для УПП
ФормироватьПакетДляУПП = Истина;
Прервать; // прерываем цикл, т.к. поняли, что надо сформировать пакет для УПП
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ФормироватьПакетДляУПП Тогда
Сообщить("Формируем пакет для УПП");
// формируем пакет начало
//...
// формируем пакет конец
КонецЕсли;
КонецПроцедуры
Показатьа вот другой вариант, если для каждой строки свой пакет для УПП
Процедура ВЧ_ДоговорСогласованПриЗаписи(Источник, Отказ, Замещение) Экспорт
ТаблицаПакетаУПП = Источник.ВыгрузитьКолонки();
Для Каждого Запись Из Источник Цикл
Если Запись.Состояние = Перечисления.СостоянияДокументов.Согласован Тогда
// Проверим наш ли это "ВнутреннийДокумент"
Если ТипЗнч(Запись.Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
// Формируем пакет для УПП (добавим запись в таблицу)
НоваяСтрока = ТаблицаПакетаУПП.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Запись);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТаблицаПакетаУПП.Количество() > 0 Тогда
Сообщить("Формируем пакет для УПП");
// формируем пакет начало
// СформироватьПакетДляУПП(ТаблицаПакетаУПП);
// формируем пакет конец
КонецЕсли;
КонецПроцедуры
Процедура СформироватьПакетДляУПП(ТаблицаПакетаУПП)
...
КонецПроцедуры
Показать
(1) Vitaly1C8, обрати еще внимание что записи в рс.ТекущиеСостоянияДокументов добавляются,удаляются , перезаписываются , и не только в процессе обычного документооборота, но и обновления иб, и редактирования записи регистра и формы записи.
Что там в УПП прилетит в какой-нибудь момент.
Что там в УПП прилетит в какой-нибудь момент.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот