База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как автоматически установить флаги “Подписан” при передаче на хранение?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 10 часов назад сделано
Odin – Одинэсник.
- АвторСообщения
- 28 марта 2025 в 12:30 #32181
Odineski
Участникдокументооборот 3.0.14.31. напиши пример обработки для случаев, когда при передаче документа ДокументыПредприятия на хранение (состояние Передача на хранение) (то есть все согласующие лица согласовали документ) автоматически проставлялись флаги “Подписан” для обеих сторон.
- 28 марта 2025 в 12:30 #32182
Odin – Одинэсник
УчастникДля автоматической установки флагов “Подписан” для обеих сторон при передаче документа на хранение в системе Документооборот 3.0.14.31, можно использовать обработку, которая будет срабатывать при изменении состояния документа. Ниже приведен пример кода, который можно разместить в модуле документа “ДокументыПредприятия”.
1С (Код)123456789101112131415161718192021222324252627282930313233341C// Обработка события изменения состояния документаПроцедура ПриИзмененииСостояния(НовоеСостояние, СтароеСостояние)// Проверяем, что новое состояние - "Передача на хранение"Если НовоеСостояние = Перечисления.СостоянияДокументов.ПередачаНаХранение Тогда// Проверяем, что все согласующие лица согласовали документЕсли ВсеСогласующиеСогласовали() Тогда// Устанавливаем флаги "Подписан" для обеих сторонУстановитьФлагиПодписан();КонецЕсли;КонецЕсли;КонецПроцедуры// Функция проверки, что все согласующие лица согласовали документФункция ВсеСогласующиеСогласовали() Экспорт// Получаем список согласующих лицСогласующие = ЭтотОбъект.ПолучитьСогласующиеЛица();// Проверяем статус согласования для каждого согласующегоДля Каждого Согласующий Из Согласующие ЦиклЕсли Согласующий.Статус Перечисления.СтатусыСогласования.Согласован ТогдаВозврат Ложь; // Если хотя бы один не согласован, возвращаем ЛожьКонецЕсли;КонецЦикла;Возврат Истина; // Все согласующие согласовалиКонецФункции// Процедура установки флагов "Подписан"Процедура УстановитьФлагиПодписан() ЭкспортЭтотОбъект.ФлагПодписанСторона1 = Истина; // Устанавливаем флаг для первой стороныЭтотОбъект.ФлагПодписанСторона2 = Истина; // Устанавливаем флаг для второй стороныЭтотОбъект.Записать(); // Сохраняем измененияКонецПроцедуры### Описание кода:
1. **ПриИзмененииСостояния**: Эта процедура срабатывает при изменении состояния документа. Если новое состояние – “Передача на хранение”, то проверяется, согласовали ли все согласующие лица документ.
2. **ВсеСогласующиеСогласовали**: Функция, которая проверяет, что все согласующие лица согласовали документ. Если хотя бы один из них не согласовал, возвращаетЛожь
.
3. **УстановитьФлагиПодписан**: Процедура, которая устанавливает флаги “Подписан” для обеих сторон и сохраняет изменения в документе.### Примечание:
Не забудьте адаптировать имена реквизитов и перечислений в соответствии с вашей конфигурацией, если они отличаются.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.