Проведение документа по регистру сведений #155707


#0 by Вопрос123
Доброго утра. Есть регистр сведений ЦеныНоменклатурыПоставщиков, непериодический, подчиненный регистратору УстановитьЦеныНоменклатурыПоставщиков, с измерениями ТипЦенКонтрагента, Номенклатура, ХарактеристикаНоменклатуры, и ресурсами ЕдиницаИзмерения, Валюта, Цена. Вот ОбработкаПроведения регистратора: Предполагается, что новый документ будет создаваться раз в день, и обновлять информацию в регистре. Но при проведении второго документа машина ругается, что запись с такими значениями измерений в регистре уже есть. Я знаю, что она там есть. Но разве Записать(Истина) не должно ее перезаписать?
#1 by vde69
99% что регистр переодический (период 1 день), или у документа УстановитьЦеныНоменклатурыПоставщиков не стоит авто удаление движений
#2 by Вопрос123
И то, и другое - нет. Регистр непериодический, автоудаление движений стоит.
#3 by Atma
Грам.ошибка в последней строке?
#4 by vde69
попробуй
#5 by Вопрос123
К сожалению, тоже не то. Это здесь очепятка, а код был сгенерирован конструктором, и там Движения.ЦеныНоменклатурыПоставщиков.Записать(Истина);
#6 by vde69
Семен Семеныч ..... сделай его периодическим (или день, или регистратор)
#7 by Вопрос123
Такое решение проблемы я знаю. Но не хочу, чтобы этот регистр был периодическим. История изменения цен поставщиков, во-первых, и так хранится в документах, а во-вторых, вообще не нужна. Мне нужно изменить существующую запись, а не сделать новую на другую дату.
#8 by vde69
в такам случае тебе нужно еще одно измерение "Поставщик"
#9 by Вопрос123
Да вроде бы незачем. Измерение "ТипЦен" имеет тип "СправочникСсылка.ТипыЦенКонтрагентов", который подчинен справочнику "Контрагенты", и таким образом однозначно определяет поставщика по ТипЦен.Владелец. Но самое главное, не понятно, как это решит проблему
#10 by vde69
Попробуй на пустом регистре с 1 документом и 1 строкой номенклатуры,
#11 by Вопрос123
Попробовал. Первый документ проводится нормально, нужную запись в регистре делает. Второй такой же документ при проведении говорит: "Ошибка при выполнении обработчика... Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует."
#12 by vde69
ИХМО у регистра должен стоять режим записи = независимый тогда регистратор не учитываеться в изменениях
#13 by vde69
+ опечатка изменениях=ИЗМЕРЕНИЯХ
#14 by Вопрос123
Это работает, если в обработке проведения документа использовать РегистрСведений.МенеджерЗаписи, а не Документ.Движения, и никак не связывает регистр с документом. Я прихожу к выводу, что записи непериодического регистра, подчиненного регистратору, могут изменяться только тем документом, который их сделал. Тогда такой вариант настройки для моих целей не подходит, и придется все-таки делать регистр периодическим по позиции регистратора.
#15 by vde69
Я прихожу к выводу, что записи непериодического регистра, подчиненного регистратору, могут изменяться только тем документом, который их сделал !!!!!!!!!!!!!!!!!!!!!!ОДНОЗНАЧНО!!!!!!!!!!!!!!!!!
#16 by КПСС
перед записью движений текущего дока удаляй предыдущие записи, ну те на которые ругается док-т
#17 by vde69
а как удалить???
#18 by КПСС
в двух словах, установить отбор и записать пустую(незаполненую) строку, а так поиск рулит + подумать о гл. перепроводке
#19 by vde69
так если есть подчинение регистратору, то не сработает!!!! (из другого документа), или ксть какой-то хитрый способ
#20 by КПСС
хз, я не пробовал, перед началом транзакции 100% взлетит, а вот в транзакции - не знаю
#21 by vde69
все равно это только через РегистрСведений.МенеджерЗаписи а как через Документ.Движения помоему удалить движения чужого регистраторо не возможно (так-же как их изменить)
#22 by КПСС
ИМХО Документ.Движения для этих целей не подходит
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С