Имя: Пароль:
1C
1С v8
Занести в регистр сведений (подчинен регистратору) запись
0 Tashiro
 
29.03.13
09:48
При попытке внести в РС (подчинен регистратору) запись с регистратором который еще отсутствует в БД выводится ошибка что запись уже такая есть.
причем если РС пустой то первый раз такой фокус проходит, как только там есть хотя-бы одна запись платформа ругается что запись с такими полями уже есть!
РС не содержит измерений и реквизитов, только несколько ресурсов.
как бороться?
1 scanduta
 
29.03.13
09:50
Если нету измерений значит основной отбор по периоду идет , проверяй период
2 scanduta
 
29.03.13
09:52
хотя нет,...чет я не то говорю
3 Tashiro
 
29.03.13
09:53
он не периодический
платформа 8.2 (последняя)

код такой

Если ЭтоНовый() Тогда
       СсылкаНового = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку();
       ЭтотОбъект.УстановитьСсылкуНового(СсылкаНового);
       СсылкаИтог = СсылкаНового;
   Иначе
       СсылкаИтог = Ссылка;
   КонецЕсли;
   
   Набор = РегистрыСведений.ИзменениеСуммДокументов.СоздатьНаборЗаписей();
   Набор.Отбор.Регистратор.Установить(СсылкаИтог);
   Набор.Прочитать();
   Если Набор.Количество() > 0 Тогда
       Набор.Очистить();
   КонецЕсли;
   
   НоваяЗапись = Набор.Добавить();
   НоваяЗапись.Активность = Истина;
   НоваяЗапись.Регистратор = СсылкаИтог;
   НоваяЗапись.Ответственный = ПараметрыСеанса.ТекущийПользователь;
   НоваяЗапись.СуммаОжидаемая = ИтогПоТоварам;
   НоваяЗапись.СуммаИзменная = СуммаСчетФактуры;
   НоваяЗапись.Соотношение = (1 - СуммаСчетФактуры / ИтогПоТоварам) * 100 * -1;
   Набор.Записать(Истина);
4 scanduta
 
29.03.13
09:53
А как движения формируешь?
5 scanduta
 
29.03.13
09:54
ДУмаю должно помочь фомирование движений через обработку проведений
6 scanduta
 
29.03.13
09:54
обработку проведения
7 and2
 
29.03.13
09:54
"При попытке внести в РС (подчинен регистратору) запись с регистратором который еще отсутствует в БД "

это какое то новое извращение. мы что то пропустили :(
8 NWsFF
 
29.03.13
09:56
Извращение это делать проводки в странных местах
9 Tashiro
 
29.03.13
09:57
(6) Инфа должна попадать передзаписью
(7)(8) это свистелка-перделка на изменение суммы документа как реализовать по другому?
10 scanduta
 
29.03.13
09:59
(9) Неправильно поставленная задача
11 Tashiro
 
29.03.13
10:00
да и ладно, нигде не написано что регистратор должен быть объектом, это ссылка, причем при пустом РС код отрабатывает нормально. Ладно бы ошибка была типа  "Регистратор не определен или не существует" или что-то типо того, так ошибка что Запись с такими ключевыми полями уже существует!
12 Tashiro
 
29.03.13
10:02
(10) на документе поступления есть реквизит "Сумма документа поступления" который заполняется оператором, если этот реквизит меняется, разница между ним и итогом по сумме ТЧ Товары раскидывается в цену, надо логировать эти изменения
13 hhhh
 
29.03.13
10:03
(11) ну если нет измерений, то одна запись в регистре должна быть. Правильно оно тебе говорит, нельзя вторую запись создавать.
14 scanduta
 
29.03.13
10:03
А зачем нужно заносить эти данные в РС перед записью
15 Tashiro
 
29.03.13
10:05
(13) Стоп, а регистратор в этом плане не является измерением?
16 hhhh
 
29.03.13
10:05
(12) вы что-то бредовое сделали. Надо делать измерение Документ, и регистр независимый, без регистраторов.
17 hhhh
 
29.03.13
10:06
(15) с какого бодуна? Нельзя сделать одинаковую запись в двух документах регистраторах.
18 Tashiro
 
29.03.13
10:21
(16) Хм заработало,
(17) я почему-то был уверен что раз запись подчинена регистратору то две разных записи с разными регистраторами может быть.
по крайней мере с периодом такое работает.

в общем убрал зависимость от регистратора поставил период + документссылка и все пошло
19 hhhh
 
29.03.13
10:27
(18) ну регулярно ведь сталкиваемся. Два документа установки цен не могут одинаковую запись установить, например. Пишет, что уже есть запись с такими измерениями.
20 Tashiro
 
29.03.13
10:41
(19) в ут 11 уже можно, тут роль период играет
21 Tashiro
 
29.03.13
10:42
в 10.3 он был день, сейчас секунда
22 hhhh
 
29.03.13
10:48
(21) так у вас регистр непериодический, в (3) ведь написано.
23 Tashiro
 
29.03.13
10:52
(22) теперь сделал по периоду, чтобы лог вести, просто заработался видимо, спасибо за помощь =)