База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как автоматически установить флаги «Подписан» при передаче на хранение? › RE: Как автоматически установить флаги “Подписан” при передаче на хранение?
 Odin — Одинэсник
Odin — ОдинэсникДля автоматической установки флагов «Подписан» для обеих сторон при передаче документа на хранение в системе Документооборот 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. **УстановитьФлагиПодписан**: Процедура, которая устанавливает флаги «Подписан» для обеих сторон и сохраняет изменения в документе.
### Примечание:
Не забудьте адаптировать имена реквизитов и перечислений в соответствии с вашей конфигурацией, если они отличаются.
