Добавление новой записи в регистр сведений после изменений статуса
Привет! Подскажите, пожалуйста, как сделать так, чтобы когда я в заказе менял реквизит Статус и проводил документ, то регистр сведений ИсторияСтатуса не менял уже существую запись с изменением в ней статуса. А добавлял бы новую. Чтобы действительно можно было проследить весь путь Статуса.
Например, при смене статуса документа (реквизит "статус") с "поступил в производство" на "произведен" должна добавиться запись в регистр сведений со статусом "произведен" и датой. Старая запись не должна удалиться при перепроведении.
В итоге должны быть 2 записи в регистре. Например,
Дата: 12.10.2020 | Статус: Поступил в производство
Дата: 15.10.2020 | Статус: Произведен
Например, при смене статуса документа (реквизит "статус") с "поступил в производство" на "произведен" должна добавиться запись в регистр сведений со статусом "произведен" и датой. Старая запись не должна удалиться при перепроведении.
В итоге должны быть 2 записи в регистре. Например,
Дата: 12.10.2020 | Статус: Поступил в производство
Дата: 15.10.2020 | Статус: Произведен
По теме из базы знаний
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Защита объектов от изменения обменом
- Надежная регистрация изменений. Версионирование объектов. Аудит. Все средствами SQL Server
- Расширение для интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2)Ситуация следующая - у меня уже есть документ Заказ с реквизитом Статус. И мне нужен регистр сведений, чтобы можно было отслеживать историю изменения статуса заказа. Но у меня получалось лишь, чтобы при изменении статуса документа и его проведении, в регистре ИсторияЗаказа менялась лишь строчка, а не добавлялась новая. Я поставил непериодический и независимый, не знаю, правильно ли это. Могу поменять) В измерениях я дату и статус указал, в остальных - ничего. Как-то так)
На одном документе неправильно делать такие движения, ИМХО.
Нужен второй документ и периодический регистр. При создании Заказа создавать первую запись, а второй документ (Изменение статуса) - добавлять вторую.
Но надо будет отслеживать последовательности.
Ну, либо изменять документ "Заказ" и добавлять в него реквизиты даты для всех статусов, чтобы правильнее фиксировать изменение статуса.
В любом случае, нужен периодический зависимый регистр
Нужен второй документ и периодический регистр. При создании Заказа создавать первую запись, а второй документ (Изменение статуса) - добавлять вторую.
Но надо будет отслеживать последовательности.
Ну, либо изменять документ "Заказ" и добавлять в него реквизиты даты для всех статусов, чтобы правильнее фиксировать изменение статуса.
В любом случае, нужен периодический зависимый регистр
(4)
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
//Для начала создадим набор записей
//Для начала создадим набор записей
ВашРег = РегистрыСведений.ИсторияЗаказов.СоздатьНаборЗаписей();
//Поищем совпадения, но из за "текущей даты" у вас их скорее всего не будет
ВашРег.Отбор.ДатаЗаписи.Установить(ТекущаяДата());
ВашРег.Отбор.Дата.Установить(Метаданные.Документы.Заказ.СтандартныеРеквизиты.Дата);
ВашРег.Отбор.Статус.Установить(Метаданные.Документы.Заказ.Реквизиты.Статус);
ВашРег.Прочитать();
//Добавляем новую запись
НоваяЗапись = ВашРег.Добавить();
НоваяЗапись.ДатаЗаписи=ТекущаяДата();
НоваяЗапись.Дата=Метаданные.Документы.Заказ.СтандартныеРеквизиты.Дата;
НоваяЗапись.Статус=Метаданные.Документы.Заказ.Реквизиты.Статус;
Попытка
ВашРег.Записать(ЛОЖЬ);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)