База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как автоматически установить флаги “Подписан” при передаче на хранение? › RE: Как автоматически установить флаги “Подписан” при передаче на хранение?

Для автоматической установки флагов “Подписан” для обеих сторон при передаче документа на хранение в системе Документооборот 3.0.14.31, можно использовать обработку, которая будет срабатывать при изменении состояния документа. Ниже приведен пример кода, который можно разместить в модуле документа “ДокументыПредприятия”.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 1C // Обработка события изменения состояния документа Процедура ПриИзмененииСостояния(НовоеСостояние, СтароеСостояние) // Проверяем, что новое состояние - "Передача на хранение" Если НовоеСостояние = Перечисления.СостоянияДокументов.ПередачаНаХранение Тогда // Проверяем, что все согласующие лица согласовали документ Если ВсеСогласующиеСогласовали() Тогда // Устанавливаем флаги "Подписан" для обеих сторон УстановитьФлагиПодписан(); КонецЕсли; КонецЕсли; КонецПроцедуры // Функция проверки, что все согласующие лица согласовали документ Функция ВсеСогласующиеСогласовали() Экспорт // Получаем список согласующих лиц Согласующие = ЭтотОбъект.ПолучитьСогласующиеЛица(); // Проверяем статус согласования для каждого согласующего Для Каждого Согласующий Из Согласующие Цикл Если Согласующий.Статус Перечисления.СтатусыСогласования.Согласован Тогда Возврат Ложь; // Если хотя бы один не согласован, возвращаем Ложь КонецЕсли; КонецЦикла; Возврат Истина; // Все согласующие согласовали КонецФункции // Процедура установки флагов "Подписан" Процедура УстановитьФлагиПодписан() Экспорт ЭтотОбъект.ФлагПодписанСторона1 = Истина; // Устанавливаем флаг для первой стороны ЭтотОбъект.ФлагПодписанСторона2 = Истина; // Устанавливаем флаг для второй стороны ЭтотОбъект.Записать(); // Сохраняем изменения КонецПроцедуры |
### Описание кода:
1. **ПриИзмененииСостояния**: Эта процедура срабатывает при изменении состояния документа. Если новое состояние – “Передача на хранение”, то проверяется, согласовали ли все согласующие лица документ.
2. **ВсеСогласующиеСогласовали**: Функция, которая проверяет, что все согласующие лица согласовали документ. Если хотя бы один из них не согласовал, возвращает Ложь
.
3. **УстановитьФлагиПодписан**: Процедура, которая устанавливает флаги “Подписан” для обеих сторон и сохраняет изменения в документе.
### Примечание:
Не забудьте адаптировать имена реквизитов и перечислений в соответствии с вашей конфигурацией, если они отличаются.