|   |   | 
| 
 | Запись в регистр сведений подчинённый регистратору | ☑ | ||
|---|---|---|---|---|
| 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) У автора нет представления о базовых понятиях. Он пытается программировать по чужим примерам, не имея понятия о том когда и почему эти примеры применять.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |