Добавление записи в регистр сведений
Привет! Подскажите, пожалуйста, как сделать так, чтобы когда я в заказе менял реквизит Статус и проводил документ, то регистр сведений ИсторияСтатуса не менял уже существую запись с изменением в ней статуса. А добавлял бы новую. Чтобы действительно можно было проследить весь путь Статуса.
Например, при смене статуса документа (реквизит "статус") с "поступил в производство" на "произведен" должна добавиться запись в регистр сведений со статусом "произведен" и датой. Старая запись не должна удалиться при перепроведении.
В итоге должны быть 2 записи в регистре. Например,
Дата: 12.10.2020 | Статус: Поступил в производство
Дата: 15.10.2020 | Статус: Произведен
Например, при смене статуса документа (реквизит "статус") с "поступил в производство" на "произведен" должна добавиться запись в регистр сведений со статусом "произведен" и датой. Старая запись не должна удалиться при перепроведении.
В итоге должны быть 2 записи в регистре. Например,
Дата: 12.10.2020 | Статус: Поступил в производство
Дата: 15.10.2020 | Статус: Произведен
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Измерения: ДатаЗаписи / Дата / Статус
Пример:
(13)
Пример:
//Для начала создадим набор записей
ВашРег = РегистрыСведений.ВашРегистрСведений.СоздатьНаборЗаписей();
//Поищем совпадения, но из за "текущей даты" у вас их скорее всего не будет
ВашРег.Отбор.ДатаЗаписи.Установить(ТекущаяДата());
ВашРег.Отбор.Дата.Установить(ВашДокумент.Дата);
ВашРег.Отбор.Статус.Установить(ВашДокумент.Статус);
ВашРег.Прочитать();
//Добавляем новую запись
НоваяЗапись = ВашРег.Добавить();
НоваяЗапись.ДатаЗаписи=ТекущаяДата();
НоваяЗапись.Дата=ВашДокумент.Дата;
НоваяЗапись.Статус=ВашДокумент.Статус;
Попытка
ВашРег.Записать(ЛОЖЬ);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показать(13)
(19) Просто у меня уже есть документ Заказ с реквизитом Статус. И мне нужен регистр сведений, чтобы можно было отслеживать историю изменения статуса заказа. Но у меня получалось лишь, чтобы при изменении статуса документа и его проведении, в регистре ИсторияЗаказа менялась лишь строчка, а не добавлялась новая. Вот так
(30)ой, исходя из последних тенденций в типовых, как раз таки СрезПоследних - это контрпродуктивно :)
Сама 1С "вручную" делает срез последних по данным реальной таблицы РС, либо городит рядом еще один регистр, в который записывает параллельно данные в нужной структуре для дальнейшего использования
Сама 1С "вручную" делает срез последних по данным реальной таблицы РС, либо городит рядом еще один регистр, в который записывает параллельно данные в нужной структуре для дальнейшего использования
(31) Я кстати, делал что-то похожее. Статусы актуальных заказов оставлял в периодическом регистре, а статусы закрытых заказов выкидывал в отдельных архивный непериодический регистр (через 5 дней после закрытия, или с любым другим интервалом). И в актуальном регистре всегда было небольшое количество записей, что позволяло срезу последних работать ровно так, как и должно.
(34) это зависит от требуемой логики. Может и табличную часть. Но по моему опыту подобных статусов больше двух бывает очень редко.
В 1С вообще не хватает деления проведения на два, что-то вроде предварительно проведен и окончательно проведен. Очень много в каких случаях нужно.
В 1С вообще не хватает деления проведения на два, что-то вроде предварительно проведен и окончательно проведен. Очень много в каких случаях нужно.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)