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