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