Как работает регистр сведений, подчиненный регистратору? #332650


#0 by Барабашка серверная
Не могу понять, правильно ли я делаю или нет. Задача такая. Нужно отслеживать изменения в документе. Т.е. ранее сохраненный документ открывается, в нем меняется реквизит, документ сохраняется и проводится. Потом еще раз, потом еще. Таких изменений может быть несколько. Каким образом заносить каждое такое изменение в регистр сведений, чтобы узнать последнее состояние изменяемого реквизита в конкретном документе? Заносить нужно именно кажде изменение, т.е. регистр должен помнить все проведенные изменения в документе, чтобы оператор не мог ввести в документ то, что уже было. У меня не получается. В регистре создается запись, все нормально. Но при изменении документа в регистре не создается новой записи, а просто изменяется текущая.
#1 by IronDemon
Ну так правильно. Новый документ надо делать.
#2 by b_ru
для данной задачи этот регистр логично сделать неподчиненным регистратору.
#3 by Барабашка серверная
Нельзя делать новый документ. Надо отмечать в "старом" (текущем). Кстати, да. Я уже думал над этим. Но как организовать программно вывод в независимый регистр? Он перестает быть доступным в объекте "Движения".
#4 by IronDemon
#5 by Барабашка серверная
Круто. А что это такое? :-) В смысле, в чем отличие от кода, который выдает конструктор?
#6 by IronDemon
А что такое конструктор?
#7 by Барабашка серверная
Ну конструктор движений. Документ -> закладка "Движения" -> кнопка "Конструктор движений".
#8 by Барабашка серверная
Кстати, еще вопрос по регистру сведений. Какая-то ерунда у меня творится. Видимо, я все-таки плохо его осознал. В общем, переодический (день) регистр сведений (другой, не тот, что из вопроса выше), подчинен регистратору (документ). В регистр записываются соотв. данные из документа: одно измерение и несколько параметров. Дык опять та же проблема: ввожу сегодня новый документ, а регистр не создает новую запись, а меняет вчерашнюю, просто записав поверх новые данные. Что я не так делаю?
#9 by b_ru
в том, что в код для записи в неподчиненный регистр, вестимо галочка "отображать историю" или что-то вроде этого стоит в форме регистра?
#10 by NewNick
на самом деле РС или РН тут не причем. метод формирования записей одинаковый в данном случае. разница между ними только в разных виртуальных таблицах которые при вопросе формирования правильных проводок не актуальны ибо отданы на откуп платформе. если есть такое желание сделать через РС подчиненный регистратору то нет ничего проще, достаточно что бы документ не удалял движения автоматически и очищать движения по всем регистрам кроме этого.
#11 by Барабашка серверная
Галочки не нашел, но почему-то теперь стало показывать два движения, как и должно (вчерашнее и сегодняшнее). Почему - х.з. Меня интересует первый вопрос. Т.е. получается, что в подчиненном регистратору регистре может быть только одна запись соотв. документу? Т.е. один документ - одна запись в регистре?
#12 by IronDemon
Да, один документ - один набор записей.
#13 by NewNick
между одна запись и один набор записей есть все же некая разница.
#14 by IronDemon
Один документ - один набор записей подчиненных регистратору :)
#15 by Барабашка серверная
Э-э-э... Набор записей? Или таки одну запись? Мне надо что сделать (абстрактная задача): Оператор создает документ "ДвижениеСолнца". В этом документе есть реквизит с типом перечисление. В течение дня оператор несколько раз открывает документ, смотрит в окно на светило и меняет этот реквизит на: "Солнце взошло", "Солнце в зените", "Солнце клонится к закату", "Закат Солнца". Так вот мне надо, чтобы каждое такое изменение документа отражалось уникальной записью в РегистреСведений. Т.е. если оператор уже изменил сегодня два раза документ и ввел "Солнце взошло" и "Солнце в зените", он не мог бы ввести эти два значения - регистр должен ему дать отлуп по уникальности.
#16 by b_ru
мда, виноват. Галочка эта не входит в стандартную панель и отдельно добавлена в некоторых формах в типовых. А у тебя мог еще отбор какой-нибудь стоять, например по дате
#17 by NewNick
я вроде все описал в 10. открой пустую конфу(не обязательно можешь испортить первую попавшуюся). сделай побырому док с одним реквизитом. РС подчиненный с одним ресурсом и переодичностью по регистратору. жмякни конструктор движений. на закладке движения сними автоматическое очищение движений и получишь что хотел.
#18 by b_ru
такие вещи делаются разными документами
#19 by IronDemon
Регистр сведений не подчиненный регистратору: ДвиженияСолнца Периодичность: в пределах дня Измерения: документ "ДвижениеСолнца" Ресурс: перечисление "ВидыРасположенияСолнца" Понятно?
#20 by Defender aka LINN
Вообще говоря - задача криво стоит. Документ должен проводиться 1 раз. Но если уж кровь из носа надо сделать криво - в все написано правильно.
#21 by Барабашка серверная
Сделал только что. Все равно затирает поверх. Но интересная хреновина: если документ сначала сохранить, а потом нажать Ок, то в регистре появляется вторая запись, дублирующая первую. Отличается только поле Период. И вообще, если жать "Записать" и подтверждать Оперативное проведение, то этих записей возникает куча.
#22 by Барабашка серверная
У меня так и сделано было изначально. А потом код из ?
#23 by IronDemon
Как было изначально - мы не знаем. Да.
#24 by IronDemon
Не 20 а
#25 by IronDemon
Млин, заработался :)
#26 by Барабашка серверная
Не , а . Хе-хе.
#27 by Барабашка серверная
Сделал. Отредактировал в соотв. с , потом переделал код . Да, стало записывать и в неподчиненный регистратору регистр. Но все равно пишет поверх, сволочь.
#28 by IronDemon
Перенеси перечисление "ВидыРасположенияСолнца" в измерения.
#29 by Барабашка серверная
Блин, поменял у регистра периодичность на секунды, стало создавать отдельную строчку, но ессно потерялась уникальность.
#30 by NewNick
да предыдущий набор движений не читается а запись идет в режиме замещения. шас не могу понять это нормально или не очень ;)
#31 by Барабашка серверная
Перенес. Работает, создает записи на каждую проводку. Но нет уникальности. Можно открыть документ и два раза устроить "Закат Солнца", в регистре появится две записи соответственно.
#32 by IronDemon
Осталось добавить проверку уникальности.
#33 by Барабашка серверная
Т.е. в про .
#34 by Барабашка серверная
Дык регистр сам должен проверять. Ведь по идее уникальным считается сочетание измерений, разве нет?
#35 by NewNick
в дату на текущуюдату надо бы поменять.
#36 by Барабашка серверная
Блин, кажется заработало как надо. Буду думать, в чем дело. Дело в твоем коде, кажется. Он почему-то добавляет новые записи, а код конструктора хрен.
#37 by NewNick
при создании документ объекта не читаются автоматом его предидущии движения. таким образом старый набор движений перетирается. однако набор движений объекта естественно не перетирается во время существования объекта(если его не перетирают) поэтому пока форму не закрыли (документ объект живет) записи плодятся. а как только объект закрыли открыли заново предыдущий набор записей пропадет если его не прочитать специально.
#38 by Барабашка серверная
Понял, но как-то смутно. Пересказать не смогу. :)
#39 by Барабашка серверная
Я тут еще поэкспериментировал, получается, что даже с кодом , если установлен режим "удалять движения автоматически", то все равно пишется поверх, а не добавляется новая запись. Вот такие пироги.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С