|   |   | 
| 
 | Корректировка значений документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        REDANGER 04.06.17✎ 21:31 | 
        Всем добрый вечер. Делаю небольшую конфигурацию, есть Документы: "Ввод в эксплуатацию", при проведении которого то или иное оборудование вводится в эксплуатацию 
 и "Акты выверки технических характеристик", который необходим для того, чтобы в случае ошибок (неправильно указали кол-во какой-то составляющей итд) в документе "Ввод в эксплуатацию" можно было бы их исправить(например добавить составляющую оборудования или исправить какое-то значение) и занести изменения. Нужно это для того, чтобы в отчете было видно какие корректировки были осуществлены за опред. период Подскажите, пожалуйста, как это лучше реализовать? Спасибо! | |||
| 1
    
        cw014 05.06.17✎ 08:04 | 
        Документ + Регистр сведений с данными об изменениях. Документ первоначальный не трогай, лучше подтягивай в форму данные по срезу регистра     | |||
| 2
    
        REDANGER 05.06.17✎ 09:34 | 
        Это для формирования отчета или для формирования документа Акты выверки?     | |||
| 3
    
        REDANGER 05.06.17✎ 09:51 | 
        Если можно немножко подробнее объясните     | |||
| 4
    
        Мимохожий Однако 05.06.17✎ 09:56 | 
        (3) Создай регистр сведений периодический, в котором храни контролируемые  реквизиты документа.
 Посмотри в синтаксис помощнике .СоздатьМенеджерЗаписи() | |||
| 5
    
        REDANGER 05.06.17✎ 12:10 | 
        Спасибо за совет. Пробую делать через НаборЗаписей след. образом:
 В ОбработкеПроведения документа ВВод в эксп.: НаборЗаписей = РегистрыСведений.ИзменениеСоставаГазопровода.СоздатьНаборЗаписей(); Для Каждого ТекСтрокаСоставГазопровода Из СоставГазопровода Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Газопроводы = Наименование; НоваяЗапись.НаименованиеСоставляющей = ТекСтрокаСоставГазопровода.Наименование; НоваяЗапись.Материал = ТекСтрокаСоставГазопровода.Материал; НоваяЗапись.Исполнение = ТекСтрокаСоставГазопровода.Исполнение; НоваяЗапись.Диаметр = ТекСтрокаСоставГазопровода.Диаметр; НоваяЗапись.Количество = ТекСтрокаСоставГазопровода.Количество; НоваяЗапись.Период = Дата; КонецЦикла; НаборЗаписей.Записать(Истина); А в ОбработкеДокумента АктВыверки код в принципе тот же: НаборЗаписей = РегистрыСведений.ИзменениеСоставаГазопровода.СоздатьНаборЗаписей(); Для Каждого ТекСтрокаСоставГазопровода Из СоставГазопровода Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Газопроводы = Наименование; НоваяЗапись.НаименованиеСоставляющей = ТекСтрокаСоставГазопровода.Наименование; НоваяЗапись.Материал = ТекСтрокаСоставГазопровода.Материал; НоваяЗапись.Исполнение = ТекСтрокаСоставГазопровода.Исполнение; НоваяЗапись.Диаметр = ТекСтрокаСоставГазопровода.Диаметр; НоваяЗапись.Количество = ТекСтрокаСоставГазопровода.Количество; НоваяЗапись.Период = Дата; КонецЦикла; НаборЗаписей.Записать(Истина); В итоге при проведении документов в регистр записываются данные того документа, который проводился последним. Как сделать чтобы при проведении "Акта Выверки" записи которые совпадают оставались, а если не совпадают то заменялись? Это нужно сделать с помощью условия или как-то еще? | |||
| 6
    
        Альбатрос 05.06.17✎ 12:12 | 
        СоздатьМенеджерЗаписи()
 СоздатьНаборЗаписей() Найди 5 отличий. | |||
| 7
    
        REDANGER 05.06.17✎ 12:24 | 
        Ну да отличий много:) попробовал сделать через МенеджерЗаписи теперь в Регистр при проведении добавляется только одна запись     | |||
| 8
    
        Альбатрос 05.06.17✎ 12:26 | 
        (7) А тебе сколько записей надо?     | |||
| 9
    
        REDANGER 05.06.17✎ 12:26 | 
        Хотя в ТЧ документа строк больше     | |||
| 10
    
        Альбатрос 05.06.17✎ 12:26 | 
        (9) Показывай новый код     | |||
| 11
    
        dezss 05.06.17✎ 12:28 | 
        (5) с помощью условия.     | |||
| 12
    
        REDANGER 05.06.17✎ 12:29 | 
        ОбработкаПроведения ВводВЭксплуатацию
 МенеджерЗаписи = РегистрыСведений.ИзменениеСоставаГазопровода.СоздатьМенеджерЗаписи(); Для Каждого ТекСтрокаСоставГазопровода Из СоставГазопровода Цикл МенеджерЗаписи.Газопроводы = Наименование; МенеджерЗаписи.НаименованиеСоставляющей = ТекСтрокаСоставГазопровода.Наименование; МенеджерЗаписи.Материал = ТекСтрокаСоставГазопровода.Материал; МенеджерЗаписи.Исполнение = ТекСтрокаСоставГазопровода.Исполнение; МенеджерЗаписи.Диаметр = ТекСтрокаСоставГазопровода.Диаметр; МенеджерЗаписи.Количество = ТекСтрокаСоставГазопровода.Количество; МенеджерЗаписи.Период = Дата; КонецЦикла; МенеджерЗаписи.Записать(Истина); ОбработкаПроведения АктВыверки: МенеджерЗаписи = РегистрыСведений.ИзменениеСоставаГазопровода.СоздатьМенеджерЗаписи(); Для Каждого ТекСтрокаСоставГазопровода Из СоставГазопровода Цикл МенеджерЗаписи.Газопроводы = Наименование; МенеджерЗаписи.НаименованиеСоставляющей = ТекСтрокаСоставГазопровода.Наименование; МенеджерЗаписи.Материал = ТекСтрокаСоставГазопровода.Материал; МенеджерЗаписи.Исполнение = ТекСтрокаСоставГазопровода.Исполнение; МенеджерЗаписи.Диаметр = ТекСтрокаСоставГазопровода.Диаметр; МенеджерЗаписи.Количество = ТекСтрокаСоставГазопровода.Количество; МенеджерЗаписи.Период = Дата; КонецЦикла; МенеджерЗаписи.Записать(Истина); | |||
| 13
    
        Альбатрос 05.06.17✎ 12:31 | 
        МенеджерЗаписи.Записать(Истина); внутрь цикла     | |||
| 14
    
        REDANGER 05.06.17✎ 12:34 | 
        Нет, ничего не изменилось, также по одной записи     | |||
| 15
    
        Serg_1960 05.06.17✎ 12:35 | 
        (офф)
 Примеров, когда существуют "пары" документ-источник и на его основании документы-изменения, в типовых конфигурациях превеликое множество. Например, в ЗУПе практически все документы кадрового движения и первоначальные расчетные документы. Ещё раз: если нужно не только изменить данные, но и "зафиксировать" момент изменения - есть смысл делать это документом. Даже если этот документ изменяет записи только с одного регистра. Имхо. | |||
| 16
    
        REDANGER 05.06.17✎ 15:54 | 
        Да мне в принципе не особо важно каким образом реализовать, главное сделать..через МенеджерЗаписи так и не вышло..а если с помощью документа то каким образом?
 У меня в принципе документ АктВыверки создается на основании Ввода в экспл-цию. Нужно работать с обработчиком заполнения? или как-то иначе? | |||
| 17
    
        REDANGER 05.06.17✎ 18:51 | 
        Скажите, каким образом сделать через документ? Я искал решение, но чтото подобного не нашел
 Или может условие добавить нужно при применении МенеджераЗаписей? | |||
| 18
    
        REDANGER 05.06.17✎ 18:52 | 
        Мне уже хоть какоето решение бы найти...все никак не выходит     | |||
| 19
    
        REDANGER 05.06.17✎ 19:55 | 
        Вот такой код пишу..что не так?
 НаборЗаписей = РегистрыСведений.ИзменениеСоставаГазопровода.СоздатьНаборЗаписей(); Для Каждого ТекСтрокаСоставГазопровода Из СоставГазопровода Цикл НаборЗаписей.Отбор.Газопроводы.Установить(Наименование); НаборЗаписей.Отбор.НаименованиеСоставляющей.Установить(ТекСтрокаСоставГазопровода.Наименование); НаборЗаписей.Отбор.Материал.Установить(ТекСтрокаСоставГазопровода.Материал); НаборЗаписей.Отбор.Исполнение.Установить(ТекСтрокаСоставГазопровода.Исполнение); // НаборЗаписей.Отбор.Диаметр.Установить(ТекСтрокаСоставГазопровода.Диаметр); // НаборЗаписей.Отбор.Количество.Установить(ТекСтрокаСоставГазопровода.Количество); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Газопроводы = Наименование; НоваяЗапись.НаименованиеСоставляющей = ТекСтрокаСоставГазопровода.Наименование; НоваяЗапись.Материал = ТекСтрокаСоставГазопровода.Материал; НоваяЗапись.Исполнение = ТекСтрокаСоставГазопровода.Исполнение; НоваяЗапись.Диаметр = ТекСтрокаСоставГазопровода.Диаметр; НоваяЗапись.Количество = ТекСтрокаСоставГазопровода.Количество; НоваяЗапись.Период = Дата; НаборЗаписей.Записать(); КонецЦикла; Пишет: Запись не верна! Значение отбораа не соответствует установленному отбору | |||
| 20
    
        Мимохожий Однако 05.06.17✎ 20:10 | 
        Забыл НаборЗаписей.Прочитать()     | |||
| 21
    
        h-sp 05.06.17✎ 21:32 | 
        (18) сделай периодический регистр сведений. с периодичностью, например, секунда. И подчиненный регистратору укажи.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |