Имя: Пароль:
1C
 
Запись и изменение в регистре сведений.
, , ,
0 zhukovia
 
08.06.17
18:56
Каким методом правильней будет делать запись в регистр сведений создатьменеджерзаписи или создатьнаборзаписей? Регистр независимый и непериодический. Регистратора сделать как я понял нельзя, т.к. надо записи потом исправлять из другого документа (а регистратор у записи может быть только один). У него одно измерение (штрихкод) и 8 ресурсов. Запись в регистр осуществляются документом1 в табличной части которого 5-6 тыс строк, а изменение (дополнение некоторых ресурсов по штрихкоду). Причем два реквизита это ссылки на Док1 и Док2 (для контроля кто создал и кто изменил). Запись сделал так, но при этом если док уже проведен то перепровести его не получается. Чтобы это поправить нужно что ли сначала отменять проведение?
НаборБаркодов = РегистрыСведений.РегистрБаркодов.СоздатьКлючЗаписи(СоздатьНаборЗаписей();
НаборБаркодов.Отбор.
ТаблицаБаркодов = Баркоды.Выгрузить();
ТаблицаБаркодов.Колонки.Добавить("Поставщик");
ТаблицаБаркодов.Колонки.Добавить("ДокПрисвоение");
ТаблицаБаркодов.ЗаполнитьЗначения(Поставщик,"Поставщик");
ТаблицаБаркодов.ЗаполнитьЗначения(Ссылка,"ДокПрисвоение");
НаборБаркодов.Загрузить(ТаблицаБаркодов);
НаборБаркодов.Записать();
1 Fram
 
08.06.17
19:00
(0) >  т.к. надо записи потом исправлять из другого документа (а регистратор у записи может быть только один)

поэтому  регистр делают периодиченским и работают потом со срезом последних.
2 мобильный бухгалтер
 
08.06.17
19:14
если у тебя независимый регистр, то ни перепроведение ни отмена проведения не удаляет записи и тебе надо самому удалять записи
3 zhukovia
 
08.06.17
19:16
(1) А зачем здесь периодичность? У меня делается одна запись, а потом она только меняется и дополняется. В периодическом как я понимаю на каждое изменение будет новая запись.
4 zhukovia
 
08.06.17
19:18
(2) Т.е. при перепроведении находить все записи сделанные этим документом и самому их удалять, в процедуре ОбработкаПроведения например. Правильно я понял?
5 мобильный бухгалтер
 
08.06.17
19:19
покажи как ты устанавливаешь отбор
6 zhukovia
 
08.06.17
19:21
(5) Пока никак. Об этом я и хотел спросить. Как это сделать? Вообще возможен отбор по Реквизитам регистра?
7 мобильный бухгалтер
 
08.06.17
19:22
тогда читай СП
8 zhukovia
 
08.06.17
19:23
(7) Справку что ли?
9 мобильный бухгалтер
 
08.06.17
19:24
синтакс-помощник...могу продать занидорага
10 zhukovia
 
08.06.17
19:24
Вообще возможен отбор по Реквизитам регистра?
11 zhukovia
 
08.06.17
19:25
(9) Спасибо у меня свой есть.
12 zhukovia
 
08.06.17
19:25
(10) при создании Набора записей.
13 мобильный бухгалтер
 
08.06.17
19:27
вообще для задачи "Кто создал и Кто изменял" ты выбрал плохое решение с документом, потому что у тебя независимый регистр и его можно отредактировать вручную.
14 zhukovia
 
08.06.17
19:30
(13) Если не сложно подскажите тогда в каком направлении копать, какая структура лучше будет? Вручную никто редактировать реестр не будет. Может из реквизитов ссылки на Док1 и Док2 поместить в измерения? Тогда отбор можно будет делать.
15 PiotrLoginov
 
08.06.17
19:40
"Вручную никто редактировать реестр не будет."

ну-ну...
16 Fram
 
08.06.17
19:41
(3) да, будет новая запись. и тебе не придется мудохаться с прописыванием всей логики при перепроведении и отмене проведения.

скажи ка мне, когда надо будет удалить скажем последний документ, который внес изменения в запись, как ты будешь восстанавливать предыдущее состояние записи?
17 мобильный бухгалтер
 
08.06.17
19:41
Лучше это делать обработкой, в которой в интерфейсе предусмотреть 2 режима работы - загрузка и редактирование.
В режиме загрузки только пишешь новые записи, заполняешь Реквизит1 в наборе записей, в режиме редактирования - заполняешь Реквизит2.
18 мобильный бухгалтер
 
08.06.17
19:43
короче тебе нужно чисто интерфейсное решение для редактирования регистра сведений, и создание документа тут лишнее
19 zhukovia
 
08.06.17
19:43
(15) Ну не так сложно просто скрыть регистр в подсистемах.
20 Fram
 
08.06.17
19:43
(16)+ предыдущее состояние записи = предыдущие значения ресурсов
21 zhukovia
 
08.06.17
19:46
(16) А как потом воедино собрать все реквизиты относящиеся к штрихкоду, если они будут сделаны разными записями? А штрихкодов сотни тысяч будет. Не раздуется ли база до безобразия?
22 Fram
 
08.06.17
19:47
(21) срез последних, по твоему, для чего придумали?
23 zhukovia
 
08.06.17
19:47
(16) Каждый документ меняет только свои ресурсы. То что уже внесено не меняется.
24 zhukovia
 
08.06.17
19:48
(18) У меня пользователи вносят все эти штрихкоды документами, т.к. потом надо смотреть когда его внесли и когда отгрузили и продали.
25 Fram
 
08.06.17
19:49
(23) тогда напрашиваются разные регистры
26 zhukovia
 
08.06.17
19:50
(22) Если я правильно понял, то для того чтобы выбрать последние внесенные записи. Если так, то как это мне может помочь?
27 zhukovia
 
08.06.17
19:54
(25) Вообще это по сути справочник, у меня сейчас так и сделано, просто я пытаюсь перетащить все это в регистр сведений т.к. все медленно работает очень. Каждый штрихкод это уникальная единица товара с разными свойствами, но эти свойства заполняются разными документами и в разное время. А городить разные регистры, а потом при выборке все вместе склеевать, мне кажется, будет вряд ли лучше справочника.
28 Fram
 
08.06.17
20:06
(27) нет такого критерия лучше/хуже. использование (разных) регистров это будет правильно и позволит сохранить "целостность данных".
29 youalex
 
08.06.17
20:07
>два реквизита это ссылки на Док1 и Док2
Как я понял, основная цель этих реков - логирование изменений.

Как вариант, создавай таблицу логов (еще один РС), тоже непериодический, и независимый, у тебя будет два измерения - ШК и Дата, а в ресурсы/реквизиты - пользователя и  реквизиты основного РС, которые нужно отслеживать.