Имя: Пароль:
1C
1С v8
Как запустить обработку через секунду после записи документа?
0 Мимохожий Однако
 
04.02.15
08:01
Требуется провести изменение номера документа не при записи, а чуть позже. Это пока эксперимент, но возможно кто-то уже делал подобное.
1 Рэйв
 
04.02.15
08:02
А чем при записи не устраивает если все равно номер меняться будет?
2 Happy Bear
 
04.02.15
08:02
Подписка на событие + фоновое задание
3 Рэйв
 
04.02.15
08:03
(0)я делал повторную запись при проведении. Бухи захотели видеть доки с ошибочным проведением.
Изврат еще тот.
4 Мимохожий Однако
 
04.02.15
08:16
(1)При записи не удаётся установить номер нужного формата.
У документа Реализации включена нумерация в пределах дня.
Нужен номер формата 5 символов префикса + 4 символа (месяц, день)+ 3 символа. В течения дня не бывает более 100 документов.
(2)В фоновое задание есть возможность передать ссылку на измененный документ, т.е. источник события? Был бы рад примеру.
5 Happy Bear
 
04.02.15
08:24
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(Документ);

ФоновыеЗадания.Выполнить("ИмяФоновогоЗадания", МассивПараметров, Ключ);
6 AlexITGround
 
04.02.15
08:27
То, что через подписку - понятно, как именно через секунду?
7 Fedor-1971
 
04.02.15
09:01
(6) Подписка на событие ПриУстановкеНовогоНомера - в ней реализуй свой алгоритм, в зависимости от префикса.
В ПослеЗаписиНаСервере (для УФ), или просто в ПослеЗаписи, просто проверяешь условие необходимости изменения номера, если нужно менять ТекущийОбъект.УстановитьНовыйНомер(Префикс), и ТекущийОбъект.Записать().

  !!! Чётко предусмотри условие что-бы не зациклить 1С !!!
Иначе сбойный документ будет получать новый номер пока не вылетит 1С.

  Поосторожнее с запуском по времени, что будет если за эту секунду начнёт проводиться ещё один документ?
8 Мимохожий Однако
 
04.02.15
09:05
(7)Процедура ПослеЗаписи в каком месте можно найти? Я не нашел. Это в форме документа?
9 yavasya
 
04.02.15
09:08
Обработчик ожидания ?
10 Мимохожий Однако
 
04.02.15
09:09
(6)Секунда это условность. Надо после записи документа убедиться, что номер соответствует нужному формату и изменить при необходимости.
11 Мимохожий Однако
 
04.02.15
09:12
(5)Хочу уточнить... Предложенный код я вставляю в процедуру обработчика события при записи. А фоновое задание запускаю однократно.
12 yavasya
 
04.02.15
09:23
(11) УФ?
13 Fedor-1971
 
04.02.15
09:25
(8) да, в форме документа. При программном создании документа можешь сам позаботиться о его правильности.
14 AlexITGround
 
04.02.15
09:34
(7) Ребят, я знаю как юзать подписки, что значит через 1 секунду? :) в сабже
(10) в итоге просто условность, зря забежал
15 Fedor-1971
 
04.02.15
09:54
(14) Имелся в виду такой алгоритм: Записываем документ, даем время гарантированно закончиться записи в БД (по сабжу 1 секунда), проверяем номер у записанного документа.
  ТС пытается применить идею тайминга в 1С, только средств гарантированного контроля времени в 1С кроме ТекущаяДата() нет.
16 hhhh
 
04.02.15
10:05
(11) всё-таки делать 5 символов префикса + 4 символа (месяц, день) всё вместе как префикс. В процедуре ПриУстановкеНовогоНомера. Отлично работает. Зачем заморачиваться на эти ПриЗаписи и ПослеЗаписи?
17 Fedor-1971
 
04.02.15
10:22
(16) по ходу ТС поставили задачу: гнутые документы имеют префикс отличный от нормальных, а определение гнутости возможно только после записи или проведения документа.
18 IШаман
 
04.02.15
10:23
(0) Главное при этом не свалиться в бесконечный цикл:)
19 Fedor-1971
 
04.02.15
10:24
17+ Или логика работы: подготовленный документ имеет префикс "черновик", а проведённый префикс "накладная"
20 Мимохожий Однако
 
04.02.15
12:22
Извините, был в отъезде. Продолжим ))
(16) Согласен. Надо попробовать
(17) Возможно, не всё правильно объяснил. Есть реализации и счета-фактуры, которые могут быть оформлены задним числом и их надо воткнуть в прошлую дату, чтобы нумерация в целом была по порядку. Пробелы в нумерации между датами не важны, а в целом должны быть.
Спасибо за дискуссию. Если есть еще идеи - буду рад услышать.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.