#0
by Пип Пибип
Есть документ. Пользователь выполняет какое-либо интерактивное действие с документом - в форме документа нажимает определенную новую кнопку (не Ок и не Записать). Предварительно, документ может быть проведен/проведен и снят с проведения/не проведен, только записан/даже не записан (что угодно, короче). После этого, пользоваетель может форму документа закрыть, открыть, в документе нажать Записать, 1С закрыть, 1C открыть, etc. Стоит задача: при первом проведении (первом после того интерактивного действия пользователя, на форме), в обработчике ОбработкаПроведения точно узнать, что это собственно, первое проведение, после того действия пользователя Как это узнать лучше всего? Через новый дополнительный реквизит документа? На тему нашел только это: Формы неуправляемые, 1С 8.2.хх
#3
by Пип Пибип
, - необходимо отправить присьмо после этого действия пользователя. Письмо необходимо отправить только один раз, при первом после того действия пользовователя проведении документа. Действие пользователя (нажатие на кнопку) необратимое (для пользователя). Т.е., кнопку эту он не нажмет ни разу, либо нажмет только один раз
#5
by Пип Пибип
Задача так стоит Какие есть варианты технически это реализовать? Не хочется делать что-либо вроде регистра, в котором хранить - "Отправлять письмо по такому документу, или нет"
#6
by Byasha
Там где нашел - там же и ответ. Используй дополнительные свойства объекта. При первом проведении в структуру добавь ключ "ЭТО_Первое_Проведение". При проведении анализируй значение этого ключа. Структура существует пока существует объект. Правда в свете "Действие пользователя (нажатие на кнопку) необратимое (для пользователя). Т.е., кнопку эту он не нажмет ни разу, либо нажмет только один раз" не понятно зачем тебе знать какое по счету проведение выполняется, если пользователь его может только 1 раз запустить?
#7
by GANR
>При первом проведении в структуру добавь ключ "ЭТО_Первое_Проведение" как убедиться, что оно именно первое (ЭтоНовый не вариант, так как документ мог быть сначала записан)
#8
by GANR
Наверное, либо регистр ПроведенныеДокументы (без регситратора) с подпиской на событие, либо реквизит. Хотя... может как-то можно почтовый ящик проверять - было письмо отправлено или нет? Кидаешь в письмо GUID документа и, если письмо с таким GUIDом находится - не шлешь.
#9
by Byasha
Тебе нужно вообще самое первое в истории документа проведение отловить? Или в только первое после интерактивного изменения в форме?
#10
by skunk
в модуле документа ... процедура при записи ... проверяешь новый или нет и устанавливаешь флаг в глобальной переменной модуля документа ... в обработке проведения смотришь ... ну это сработает ... только если документ был действительно новый ... то есть пользователь создал и сразу-же провел ... а так только через реквизит ... но и все равно лажа ... создал оператор документ ... отправил письмо контрагенту ... потом оператор понял, что выбрал не того контрагента ... открыл документ выбрал правильного контрагента и провел ... а письмо уже ушло ... и ушло совсем не туда
#11
by GANR
Нужно отправить письмо при первом проведении. И больше, даже если проведение отменится и опять встанет - не отправлять.
#12
by Пип Пибип
думал на этим. Письма хранятся в документе ЭлектронноеПисьмо. В HTML-теле письма номер и дата документа есть "только первое после интерактивного изменения в форме" - в точку
#13
by Byasha
Когда открывается форма документа - структура содержит только предопределенные системные значения. Когда документ проводится - анализируем структуру - ключ есть - проведение повторное, нет - проведение первое, добавляем ключ в структуру. Но это сработает только если проведение идет из формы, и если не нужно ловить самое первое, в истории документа, проведение. Если нужно отловить самое первое - то тут только дополнительный реквизит документа, или отдельный регистр сведений.
#14
by Пип Пибип
при чем, сделать интерактивное действие может один пользователь а провести/перепровести документ после этого (и вызвать отправку письма, при первом после интерактивного действия проведении/перепроведении) - другой, в другом сеансе 1С
#20
by ScreamSaw
А может сделать проверку, есть ли по этому документу информация в html-теле письма? Хотя, пожалуй, слишком бессмысленно и беспощадно. Я бы сделал через доп. реквизит.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как в 1С 7.7 определить количество рабочих дней между заданными датами?
- Как определить что за НАСП ключ?
- Как програмно определить Роль и Интерфейс пользователя?
- Возможно ли определить количество пользователей работающих с ИБ в настоя...
- Как определить программно определить в какой точке завершился бизнес процесс?
- Как после проведение документа блокировать документ от изменение?
- Есть Событие При Проведение или После Проведение документа?
В этой группе 1С
- Как из 1С определить разрешение экрана монитора?
- Обмен УТ 10.3 -> БП 2.0 (перенос справочников из БП в УТ)
- Конфликт блокировок
- v7: Проблема с bmp_1c.ocx
- не отображается регистр сведений
- Как отследить активность по порту
- Бухгалтерия, снятие запрета редактирования с регламентированной отчетности
- ЗУП: отчет по плановым начислениям
- Перенос ЗКР из ББУ в БГУ
- Счет-фактура печатается на двух листах всегда.
- УПП как узнать фактически отработанное сотрудником время за период?
- Проверка отбора на группу тонкий клиент
- Справка к документу "Начисление амортизации ОС и НМА"
- v7: Нужны библиотеки AddIn.dll и EITSJPU.dll
- КД2. Подстановка в приемник значения.
- ЗУП: Сотрудник в одном месяце работал в двух подразделениях, по одному не сч. ЗП
- Настройка Proton IMS-3190 для ТиС
- Не пишется серия затраты в регистр "Затраты на выпуск продукции"
- Свертка периферийного узла РИБ. 1С Розница, Магазин одежды и обуви.
- winscp копирование конкретного файла