|
Запись в регистр сведений подчинённый регистратору | ☑ | ||
---|---|---|---|---|
0
Filkkore
02.12.21
✎
14:16
|
Обычные Формы
Казалось бы, обыкновеннейшая задача, программно создать запись в Регистр Сведений, свой, но вот не записывает и всё. То ли лыжи не едут, то ли я дурачок... Вот код: Если Товары.Количество() > 0 Тогда НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыПоследниеЗакупочные.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Ссылка); Для Каждого Стр Из Товары Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Период = Дата; НоваяЗапись.Валюта = ВалютаДокумента; НоваяЗапись.Цена = Стр.Цена; НоваяЗапись.Номенклатура = Стр.Номенклатура; НоваяЗапись.Регистратор = Ссылка; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; Отладкой проверил, все необходимые данные в НаборЗаписей присутствуют. Регистр подчиненный регистратору, периодичность по позиции регистратора. |
|||
1
Галахад
гуру
02.12.21
✎
14:20
|
Ссылка случайно не объект?
|
|||
2
Filkkore
02.12.21
✎
14:22
|
(1) Нет, ДокументСсылка
|
|||
3
Гипервизор
02.12.21
✎
14:25
|
НаборЗаписей.Записать(Ложь);
|
|||
4
Filkkore
02.12.21
✎
14:27
|
(3) Тоже пробовал, не хочет
|
|||
5
Filkkore
02.12.21
✎
14:29
|
На всякий ещё прикладываю что в отладке https://a.radikal.ru/a42/2112/be/fbea2fb24e63.png
|
|||
6
youalex
02.12.21
✎
14:30
|
(0) в какой момент, в каком событии этот код ?
|
|||
7
ДенисЧ
02.12.21
✎
14:30
|
А регистратор явно установить?
|
|||
8
youalex
02.12.21
✎
14:31
|
Пиши как Движения.ЦеныНоменклатурыПоследниеЗакупочные + признак Записывать = Истина
|
|||
9
DrShad
02.12.21
✎
14:33
|
так может у тебя это в какой-то транзакции выполняется, которая сбрасывается?
|
|||
10
Filkkore
02.12.21
✎
14:34
|
(6) ОбработкаПроведения, под типовыми записями в регистр
|
|||
11
Filkkore
02.12.21
✎
14:35
|
(7) Что значит "Явно"? Я в отбор закинул и в реквизит Регистра
|
|||
12
Filkkore
02.12.21
✎
14:38
|
(8) Тоже попробовал, и в наборе записей ставить на Записывать = Истина, и вне.
|
|||
13
Галахад
гуру
02.12.21
✎
14:41
|
(10) Ну если в обработке проведения, то (8) + 1.
|
|||
14
Filkkore
02.12.21
✎
14:47
|
Ну вот допустим так сделал:
Движения.ЦеныНоменклатурыПоследниеЗакупочные.Записывать = Истина; Если Товары.Количество() > 0 Тогда НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыПоследниеЗакупочные.СоздатьНаборЗаписей(); НаборЗаписей.Записывать = Истина; НаборЗаписей.Отбор.Регистратор.Установить(Ссылка); Для Каждого Стр Из Товары Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Период = Дата; НоваяЗапись.Валюта = ВалютаДокумента; НоваяЗапись.Цена = Стр.Цена; НоваяЗапись.Номенклатура = Стр.Номенклатура; НоваяЗапись.Регистратор = Ссылка; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; Всё равно не работает) У меня по моему уже крыша течёт, ибо уверен что дело в чём-то простом и тупом |
|||
15
Гипервизор
02.12.21
✎
14:49
|
(14) Ну так-то если есть Записывать = Истина, то Записать() не надо.
|
|||
16
Галахад
гуру
02.12.21
✎
14:50
|
Э-э-э.
НоваяЗапись = Движения.ЦеныНоменклатурыПоследниеЗакупочные.Добавить(); |
|||
17
1Сергей
02.12.21
✎
14:52
|
(14) Перечитай (8)
|
|||
18
hhhh
02.12.21
✎
14:54
|
(14) Движения.ЦеныНоменклатурыПоследниеЗакупочные.Записывать = Истина; тогда не надо.
оно же чистит в конце набор. Записывает пустой. |
|||
19
Filkkore
02.12.21
✎
14:56
|
(18) (17) (15) (16) Всё, понял, спасибо большое всем кто помог. В общем в ОбработкеПроведения лучше так записывать, а то я везде один и тот же способ с набором юзаю.
|
|||
20
Гипервизор
02.12.21
✎
14:59
|
(19) Конструктор движений пробовали?
|
|||
21
Filkkore
02.12.21
✎
15:04
|
(20) База переписанная, конструктором не вариант
|
|||
22
mistеr
02.12.21
✎
15:22
|
(10) Тогда почему не НаборЗаписей = Движения.ЦеныНоменклатурыПоследниеЗакупочные?
|
|||
23
1Сергей
02.12.21
✎
15:23
|
||||
24
Filkkore
02.12.21
✎
15:26
|
(23) Написал уже, что база сильно переписана.
|
|||
25
Filkkore
02.12.21
✎
15:26
|
(22) Подсказали уже, так и делаю.
|
|||
26
mistеr
02.12.21
✎
15:32
|
(19) > я везде один и тот же способ с набором юзаю
Просто интересно, откуда это? Из какого-то "учебника"? |
|||
27
ptiz
02.12.21
✎
15:34
|
(0) В модуле проведения уже есть объект НаборЗаписей - это Движения.ИмяРегистра. А ты создаешь отдельный объект через СоздатьНаборЗаписей(). Игра одновременно с двумя объектами ни к чему хорошему не приведет.
|
|||
28
Filkkore
02.12.21
✎
15:36
|
(26) Да отовсюду, в инете куча сатей где рассматривается именно этот способ, вот подхватил и юзал, причём всегда работало...
|
|||
29
mistеr
02.12.21
✎
15:39
|
(28) То есть до первоисточников так и не добрался. Понятно.
|
|||
30
Малыш Джон
02.12.21
✎
15:40
|
Странно. Способ с отдельным набором записей - рабочий. Другое дело, что лучше через движения документа данные вносить. Но способ из (0) рабочий.
|
|||
31
Гипервизор
02.12.21
✎
15:40
|
(24) Я не понимаю, как переписанная база мешает использовать конструктор и допилить выданную им "рыбу"? Конструктор сотрёт код в обработке проведения? Ну так предварительно скопируйте его куда-нибудь.
|
|||
32
ptiz
02.12.21
✎
15:42
|
(28) Покажи пример такой статьи
|
|||
33
Filkkore
02.12.21
✎
15:46
|
(32) https://helpf.pro/faq/view/884.html
https://forum.infostart.ru/forum9/topic127497/ Первые две в выдаче поисковика |
|||
34
Filkkore
02.12.21
✎
15:47
|
(30) Вот и я о том же, он везде и всегда работал, тут же не хотел...
|
|||
35
Filkkore
02.12.21
✎
15:49
|
Ну я всегда делал способом из (0), привычка, а тут что-то навернулось и у меня даже мысли не возникло конструктором воспользоваться.
|
|||
36
runoff_runoff
02.12.21
✎
15:49
|
(35) нужно делать не как всегда, а как в типовых..
|
|||
37
Малыш Джон
02.12.21
✎
16:16
|
(36) "Нужно делать так как нужно. А как ненужно делать ненужно."
|
|||
38
Гипервизор
02.12.21
✎
16:21
|
(36) Ну совсем всё и всегда как в типовых не стоит делать. Далеко не эталон.
|
|||
39
youalex
02.12.21
✎
16:22
|
(30) рабочий, но тогда запись "движения." надо отключать.
|
|||
40
Dmitrii
гуру
02.12.21
✎
16:44
|
(30) >> способ из (0) рабочий.
Не обязательно. Он же всю обработку проведения не показал нам. Стопудово у него там где-нибудь есть что-нибудь типа Движения.Записать(). И эта строчка обнуляет все его действия. В транзакции проведения что-то где-то записали в какой-то там регистр. Это вовсе не значит, что в объекте Движения.ЦеныНоменклатурыПоследниеЗакупочные само по себе каким-то чудом должно что-то появиться. Чтобы там что-то появилось, надо это набор записей прочитать после того как он сделал НаборЗаписей.Записать(). А т.к. он этого не делает (не читает Движения.ЦеныНоменклатурыПоследниеЗакупочные), то если он где-то выполняет метод Движения.Записать(), в базу записывается девственно чистый набор записей из коллекции движений Движения.ЦеныНоменклатурыПоследниеЗакупочные. Поэтому принудительная запись движений зло. А у документа лучше использовать Запись движений при проведении "Записывать выбранные". |
|||
41
1Сергей
03.12.21
✎
11:03
|
(24) это никак не связано
|
|||
42
ptiz
03.12.21
✎
11:11
|
(33) Ёлы-палы. Ты отличаешь статью "Как добавить записи в регистр сведений, подчиненный регистратору?" от статьи, где разбирается обработка проведения? Эти статьи - для кода, который выполняется НЕ в модуле документа, формирующего движения по этим регистрам.
|
|||
43
Dmitrii
гуру
03.12.21
✎
11:14
|
(42) У автора нет представления о базовых понятиях. Он пытается программировать по чужим примерам, не имея понятия о том когда и почему эти примеры применять.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |