Вход | Регистрация
    1  2   
1С:Предприятие :: 1С:Предприятие 8 общая

Распределённая информационная база и порядок загрузки объектов

Распределённая информационная база и порядок загрузки объектов
Я
   AlexSTAL
 
14.01.21 - 16:17
Платформа 8.3.17.1549, полностью самописная конфигурация с применением БСП 3.1.3.331 в режиме совместимости 8.3.16.
План обмена с опцией "распределённая информационная база".
Периодически сталкиваемся с ситуацией, что из периферийных баз регистры сведений выгружаются не в хронологической последовательности (не в той последовательности, в которой они были зарегистрированы).
Т.е. сначала распровели документ 1, а потом провели документ 2.
А в файл обмена выгружается сначала создание регистра сведений, а потом удаление регистра сведений.
И соответственно при загрузке обмен встаёт, потому что он не может сначала записать новые движения из-за существования ключевых записей по измерениям...

Нигде ни в каких опциях/методах и т.д. я не нашёл никаких настроек...
Что и где не так?
   Ёпрст
 
1 - 15.01.21 - 00:35
(0) гы.. в файл обмена летит последнее состояние РС, при проведении/распроведении в табличке изменения регистра просто помечаются записи по набору измерений + узел.. усё.
При выгрузке у вас будут тока новые записи и всё.
   AlexSTAL
 
2 - 15.01.21 - 08:08
(1) Не-не, при выгрузке в обязательном порядке есть записи удаления старых записей (как нулевая запись по набору измерений)
Я на абсолютно чистой базе воспроизвёл данную проблему, отправил в 1С, посмотрим, что они скажут
   Фрэнки
 
3 - 15.01.21 - 08:49
(2) ничего они не скажут. Этой хрени уже лет 10 и ее видели все и на всех платформах, где вообще работа в РИБ стала доступна на уровне платформы
   AlexSTAL
 
4 - 15.01.21 - 08:57
(3) Я поиском попробовал найти хоть какую-либо информацию на эту тему - почему то не получилось...
А что они советовали по этому поводу, какие костыли применять? Или не пользоваться РИБ в принципе?
   Ёпрст
 
5 - 15.01.21 - 08:58
(2) у тебя независимый рег.сведений? В который пишутся записи с одинаковым набором измерений разными документами, так?
   AlexSTAL
 
6 - 15.01.21 - 09:01
(5) Непериодический, подчинён регистратору
   Ёпрст
 
7 - 15.01.21 - 09:06
(6) тогда одна из черепашек врет. Подчинен регистратору - не могут быть одинаковые наборы изиерений у разных документов по-определению. Ибо одно из измерений, сам регистратор.
   Ёпрст
 
8 - 15.01.21 - 09:07
И при записи набора, там всегда отбор по регистратору идет
   Фрэнки
 
9 - 15.01.21 - 09:10
(4) определенных советов я не видел, может там в партнерке чего-то и было, но я туда не допущен.

По состоянию, как это выглядит из базы : неактуальные наборы сведений обменами не удаляются никак, но сами конфигурации пишут таким образом, чтоб читались только актуальные состояния наборов записей РС. Если подчинено регистратору, то по факту этот РС привязан к отбору по регистратору.

Получение нового набора записей с установленным набором по регистратору должно убивать существующие в базе при записи набора.

Скорей всего, что не хватает самого кода процедуры в модуле набора записей в РС.
   AlexSTAL
 
10 - 15.01.21 - 09:20
(7) При чём тут регистратор?
Возьмём новый регистр с одним измерением, скажем Основание - ссылка на документ.
Создадим документ № 1, сошлёмся на Основание № 333.
Создадим документ № 2, сошлёмся на то же Основание № 333 - не получится, платформа будет ругаться, что запись с такими ключевыми полями уже существует
   Фрэнки
 
11 - 15.01.21 - 09:22
(10) ну вот и выяснилось разночтение в показаниях "черепашки" : подчинен регистратору и наличие в измерениях поля документ - это два разных случая
   AlexSTAL
 
12 - 15.01.21 - 09:23
(11) Почему? Можно вместо поля документ мне кажется и Булево использовать...
   Ёпрст
 
13 - 15.01.21 - 09:23
(10) сам же написал - подчиненный регистратору.
   ДенисЧ
 
14 - 15.01.21 - 09:25
Вечная дилемма крестика и трусиков...
   Фрэнки
 
15 - 15.01.21 - 09:26
(12) измерение использовать можно. Но набор записей с отбором на регистратор обрабатывается в предустановленных процедурах из модуля набора записей. Если даже сам текст модуля будет пустой, то выполнится предустановленная процедура средствами платформы.
   AlexSTAL
 
16 - 15.01.21 - 09:32
Коллеги, я ничего не понял, если честно.

Создаём новый регистр: непериодический, подчинён регистратору. Одно единственное измерение "Статус" - тип булево
Создадим документ № 1, создадим запись регистра, где Статус = ложь
Создадим документ № 2, создадим запись регистра, где Статус так же = ложь - не получится, платформа будет ругаться, что запись с такими ключевыми полями уже существует

Где ошибка?
   ДенисЧ
 
17 - 15.01.21 - 09:34
"Где ошибка?"
В ДНК. Ибо не будет платформа ругаться, если у тебя документы №1 и №2 - разные.
   Ёпрст
 
18 - 15.01.21 - 09:35
(17) чорт, прям с языка снял)
   Ёпрст
 
19 - 15.01.21 - 09:35
Подчинен регистратору - есть всегда отбор по регистратору, он ключевое измерение.
   Фрэнки
 
20 - 15.01.21 - 09:38
Там и периодика просто не нужна потому, что она тупо подавлена уникальными значениями регистратора.
   AlexSTAL
 
21 - 15.01.21 - 09:42
Что на картинке не так?

https://yadi.sk/i/ZqSh4uWatKeIKQ
   Фрэнки
 
22 - 15.01.21 - 09:49
(21) Там же две строчки в наборе. Ругается на вторую. Тут два вида уникальности записей.
Уникальность записей внутри набора и уникальность набора целиком, зависящая от значения регистратор.

Точно значение измерения у разных строк в наборе разное?
   Ёпрст
 
23 - 15.01.21 - 09:51
(21) в подробно, что ?
   AlexSTAL
 
24 - 15.01.21 - 09:51
(22) Значение измерения в обоих документах Ложь, т.е. одинаковое
   AlexSTAL
 
25 - 15.01.21 - 09:52
(23) в Подробно тот же текст
   Ёпрст
 
26 - 15.01.21 - 09:53
+ покажи код записи набора рс, если через набор пихаешь, а не менеджер записи
   AlexSTAL
 
27 - 15.01.21 - 09:55
(26) автоматически создано конструктором движений:

Процедура ОбработкаПроведения(Отказ, Режим)
                Движения.РегистрСведенийТест.Записывать = Истина;
                Движение = Движения.РегистрСведенийТест.Добавить();
                Движение.Проба = Проба;
КонецПроцедуры
   Ёпрст
 
28 - 15.01.21 - 09:56
+ да..ты пишешь 2 строки в регистр при проведении второго дока с одинаковым измерением Проба
   Ёпрст
 
29 - 15.01.21 - 09:56
Вот у тя и неуникальность записи.
   AlexSTAL
 
30 - 15.01.21 - 09:59
(28) Можно для людей с повреждённой ДНК написать, как правильно?
При проведении второго документа 1 же запись делается или нужно отбор сначала какой-то установить?
 
 
   Фрэнки
 
31 - 15.01.21 - 10:07
Ну это надо готовый текст кода... У меня сейчас базы не включены, негде его посмотреть. На рабочий комп надо идти.

Вообще, у тебя на скрине в (21) уже выдало ругань по второй строке, значит оно реально пишет именно вторую строку в том же наборе.

Перед записью набора в РС подчиненном регистратору и измерениям действительно сразу ставится отбор, затем считываются записи, затем они в наборе как-то меняются или добавляются или удаляются и затем уже записываются с указанием параметра истина или ложь. Если параметр не угадаешь по дефолту, то новые записи в наборе наступают на уже существующую в базе и идет ошибка как на твоем скрине, даже если запись должна быть всего одна.
   Фрэнки
 
32 - 15.01.21 - 10:09
Записывать Истина уже стоит, а вот удаления уже существующей записи не сделано. При перезаписи создается еще одна с ошибкой.

Это полезная фича :-)
Когда надо историю изменений документа писать в РС, например.
   AlexSTAL
 
33 - 15.01.21 - 10:11
Да не товарищи, Вы не правы... Где написано, что Регистратор является дополнительным измерением для независимого регистра сведений?
   AlexSTAL
 
34 - 15.01.21 - 10:11
(32) Удалять нечего, документ новый
   Ёпрст
 
35 - 15.01.21 - 10:12
(33) ))))))))))))))))))))))))))))))))))
   Ёпрст
 
36 - 15.01.21 - 10:17
(33) он не независимый, он подчинен регистратору.
   lodger
 
37 - 15.01.21 - 10:19
(33) там либо есть регистратор, либо он независимый.
   AlexSTAL
 
38 - 15.01.21 - 10:22
Убрал из проведения записи регистров, написал обработку:

Процедура Команда1НаСервере()
                НаборЗаписей = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();

                Док1 = Документы.ДокументТест.НайтиПоНомеру("000000001", ТекущаяДата());
                НаборЗаписей.Отбор.Регистратор.Установить(Док1);
                НоваяЗапись = НаборЗаписей.Добавить();
                НаборЗаписей.Записать();

                Док1 = Документы.ДокументТест.НайтиПоНомеру("000000002", ТекущаяДата());
                НаборЗаписей.Отбор.Регистратор.Установить(Док1);
                НоваяЗапись = НаборЗаписей.Добавить();
                НаборЗаписей.Записать();
КонецПроцедуры

Всё то же самое
   AlexSTAL
 
39 - 15.01.21 - 10:23
(36) так, и что? ну подчинён он, просто поле отбора для идентификации. При чём тут измерение то?
   Azverin
 
40 - 15.01.21 - 10:23
я после этой строки в (0) сразу предположил, что коряво написан код:
"полностью ю самописная конфигурация..."
а вы тут холивар развели.
   AlexSTAL
 
41 - 15.01.21 - 10:27
(40) Я привёл простейшую конфигурацию с 2 объектами, привёл скрины, ещё никто не сказал по существу, где проблема (про ДНК я понял)
Воспроизвести её - ровно 30 секунд в конфигураторе
   ДенисЧ
 
42 - 15.01.21 - 10:31
"ну подчинён он, просто поле отбора для идентификации. При чём тут измерение то?"

Да.. Не совсем ни при чём... Ну просто абсолютно...
   Фрэнки
 
43 - 15.01.21 - 10:32
(41) ты что не видишь по своему коду в 38, что он обрабатывает один и тот же набор записей? Отладчиком пройди построчно.
   Ёпрст
 
44 - 15.01.21 - 10:34
(38) точно, в днк
Кто будет для нового набора регистратор писать, печкин?
   Фрэнки
 
45 - 15.01.21 - 10:36
между первой строчкой записать и второй строчкой записать в наборе становится две строчки и значение в регистратор устанавливается новое и тоже одно. Вот и ошибка уникальности записей.

Регистратор в одном наборе записей всегда один. В приведенном коде Набор записей один и тот же.
   Ёпрст
 
46 - 15.01.21 - 10:36
Узри чудо:



 НаборЗаписей = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();

                Док1 = Документы.ДокументТест.НайтиПоНомеру("000000001", ТекущаяДата());
                НаборЗаписей.Отбор.Регистратор.Установить(Док1);
                НоваяЗапись = НаборЗаписей.Добавить();
НаборЗаписей.Регистратор = Док1;
                НаборЗаписей.Записать();
   Фрэнки
 
47 - 15.01.21 - 10:37
мдя... не хочется глумиться, на самом деле, но ветка идет в дополнение к уже созданной "пятничной" Заговор против программистов
   AlexSTAL
 
48 - 15.01.21 - 10:40
(43)
(44)
(46)

Да как не напиши код:

Процедура Команда1НаСервере()
                НаборЗаписей1 = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();
                Док1 = Документы.ДокументТест.НайтиПоНомеру("000000001", ТекущаяДата());
                НаборЗаписей1.Отбор.Регистратор.Установить(Док1);
                НоваяЗапись1 = НаборЗаписей1.Добавить();
                НоваяЗапись1.Регистратор = Док1;
                НаборЗаписей1.Записать();

               
                НаборЗаписей2 = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();
                Док2 = Документы.ДокументТест.НайтиПоНомеру("000000002", ТекущаяДата());
                НаборЗаписей2.Отбор.Регистратор.Установить(Док2);
                НоваяЗапись2 = НаборЗаписей2.Добавить();
                НоваяЗапись2.Регистратор = Док1;
                НаборЗаписей2.Записать();
КонецПроцедуры


Результат один и то же... Регистратор сама 1С пишет, к сведению
   AlexSTAL
 
49 - 15.01.21 - 10:41
Вы вот сюда пишите, пишите, пишите...
В конфигураторе не ужели нельзя проверить и закопипастить сюда "верный" код?
Наверное это не возможно
   Ёпрст
 
50 - 15.01.21 - 10:42
(48) п...ц
Какого хрена регистратор у тебя везде До1 ?
   Ёпрст
 
51 - 15.01.21 - 10:42
Процедура Команда1НаСервере()
                НаборЗаписей1 = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();
                Док1 = Документы.ДокументТест.НайтиПоНомеру("000000001", ТекущаяДата());
                НаборЗаписей1.Отбор.Регистратор.Установить(Док1);
                НоваяЗапись1 = НаборЗаписей1.Добавить();
                НоваяЗапись1.Регистратор = Док1;
                НаборЗаписей1.Записать();

               
                НаборЗаписей2 = РегистрыСведений.РегистрСведенийТест.СоздатьНаборЗаписей();
                Док2 = Документы.ДокументТест.НайтиПоНомеру("000000002", ТекущаяДата());
                НаборЗаписей2.Отбор.Регистратор.Установить(Док2);
                НоваяЗапись2 = НаборЗаписей2.Добавить();
                НоваяЗапись2.Регистратор = Док2;/// Два , а не один.. ты реально такой, или Светой Семененко прикидываешься ?!

                НаборЗаписей2.Записать();
КонецПроцедуры
   AlexSTAL
 
52 - 15.01.21 - 10:44
(50)
(51)
Да ошибся, но сути не меняет, не работает
   lodger
 
53 - 15.01.21 - 10:44
(49) к (48)  подходит идеально.
   AlexSTAL
 
54 - 15.01.21 - 10:45
   ДенисЧ
 
55 - 15.01.21 - 10:47
Сообщить(НаборЗаписей2.Количество()) ?
   AlexSTAL
 
56 - 15.01.21 - 10:48
(55) После строки с отбором = 0
   ДенисЧ
 
57 - 15.01.21 - 10:50
(56) Тогда откуда у тебя НомерСтроки: 2 в сообщении?
Сдаётся, тут уже не черепашка, а че-ре-па-щи-щеееее...
   lodger
 
58 - 15.01.21 - 10:51
(54) модули регистра сведений показывай. и подписки на события РС.
   Фрэнки
 
59 - 15.01.21 - 10:52
кмк, в момент записи набора в самом рс находит уже существующую запись.
   Фрэнки
 
60 - 15.01.21 - 10:52
(58) пустые они у него. Самописка!
 
 
   AlexSTAL
 
61 - 15.01.21 - 10:54
(57) При попытке записать наверное платформа меняет набор
(58) База чистая, новая, ничего вообще нет, ни строчки кода, кроме приведённых

Вот тут сказано https://v8.1c.ru/platforma/registr-svedeniy/
Внесение изменений в регистр сведений может выполняться как вручную, так и при помощи документов. В случае, когда изменения в регистр сведений вносятся с помощью документов, к каждой записи регистра добавляется специальное поле, в котором хранится информация о регистраторе — документе, с которым связана эта запись.
Использование режима записи Подчинение регистратору может потребоваться в случае, когда логика работы прикладного решения требует того, чтобы изменения, выполняемые в регистре сведений, были жестко связаны с документами, фиксирующими факты хозяйственной деятельности.

Что это специальное поле-идентификатор и никакого отношения к ещё одному Измерению не имеет
   lodger
 
62 - 15.01.21 - 10:54
(59) никакой магии.
Синтаксис:
Записать(<Замещать>)
Параметры:
<Замещать> (необязательный)
Тип: Булево.
Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям.
Значение по умолчанию: Истина.

у него новый набор записей. с 1 строкой.
записать делает без параметра, значит замещение имеющихся.
   Ёпрст
 
63 - 15.01.21 - 10:55
Еще и период.. Он еще и периодический у тебя что ле ?
:))
В модуле набора записей есть чего ?
   AlexSTAL
 
64 - 15.01.21 - 10:56
(62) И? Записей изначально не существует, замещать нечего
   AlexSTAL
 
65 - 15.01.21 - 10:56
(63) Я привёл херову тучу скриншотов. На них видно, что непериодический
   Ёпрст
 
66 - 15.01.21 - 10:57
Документ по номеру хоть найден ?
   AlexSTAL
 
67 - 15.01.21 - 10:57
(63) Я создал чистую, кристальную, новую базу. Ни одной строчки кода в ней больше нет
   Ёпрст
 
68 - 15.01.21 - 10:57
ну скидывай демо конфу на поглядеть, тебе веры нет  :)
   Фрэнки
 
69 - 15.01.21 - 10:57
(62) ну так дай ему правильный код, раз у тебя конфигуратор открыт :-)

Я просто на память помню, что без дописанного кода с РС работать не получается. А тс пытается нащупать работающий код не подглядывая существующего где-либо.
   AlexSTAL
 
70 - 15.01.21 - 10:57
(66) Найден, это видно на скрине в отладчике
   Галахад
 
71 - 15.01.21 - 10:59
Да все правильно у ТС. Не пойму почему народ где-то видит ошибку.
   Ёпрст
 
72 - 15.01.21 - 11:01
(71) ага.. в отладчике номерстроки = 0 а в ошибке = 2
   Ёпрст
 
73 - 15.01.21 - 11:01
одна из черепашек, всё еще врёт

(70) выкладывай уже свою демо-базу
   AlexSTAL
 
74 - 15.01.21 - 11:02
(73) https://yadi.sk/d/mslq8_mS0DNNrA
создал заново с нуля
   Фрэнки
 
75 - 15.01.21 - 11:04
Вот пример кода, как он дается на сайтах

---

Добавить, изменить, удалить набор записей

Через набор записей регистра сведений можно добавить или изменить сразу несколько записей. Набор записей позволяет устанавливать отборы.

НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Валюта = Справочники.Валюты.НайтиПоНаименованию("EUR");
НаборЗаписей.Отбор.Валюта.Установить(Валюта);
НаборЗаписей.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество() = 0 Тогда
    
    //Добавление новой записи    

    НоваяЗапсиь = НаборЗаписей.Добавить();
    НоваяЗапсиь.Валюта = Валюта;
    НоваяЗапсиь.Период = ТекущаяДата();
    НоваяЗапсиь.Курс = 10.00;
    
Иначе    
    
    //Изменение существующей записи

    НаборЗаписей[0].Валюта = Валюта;
    НаборЗаписей[0].Период = ТекущаяДата();
    НаборЗаписей[0].Курс = 10.00;
    
КонецЕсли;

//Удалить существующую запись

НаборЗаписей.Удалить(НаборЗаписей[0]);

//После добавления, изменения, удаления записей 

//необходимо вызвать метод Записать
НаборЗаписей.Записать(); 

---

Важная строчка - Прочитать после установки нужного отбора или нужного регистратора
   AlexSTAL
 
76 - 15.01.21 - 11:08
(75) Прочитать - это если хочешь в текущий момент отобрать и посмотреть... Если тебе этого не нужно, то не нужно читать
   ДенисЧ
 
77 - 15.01.21 - 11:10
Хм... А это чудо, похоже, право...
Странно...
   ДенисЧ
 
78 - 15.01.21 - 11:11
   Фрэнки
 
79 - 15.01.21 - 11:13
(76) да лично мне без разницы, конечно, есть там записи или нет. Я не хочу их читать.

Просто код по другому не работает. Туда в код пишется Прочитать() не потому что так хочется узнать существующие записи или не хочется вовсе,
а потому что по другому в коде тупо не работает.

У тебя есть типовая какая-то ? Поищи там готовые примеры.
   AlexSTAL
 
80 - 15.01.21 - 11:15
(77) Что странного? Регистратор у непериодического регистра сведений не является Измерением...
   AlexSTAL
 
81 - 15.01.21 - 11:16
(79) Да для успокоения и этот "код" попробовал... мимо всё
   lodger
 
82 - 15.01.21 - 11:17
(79) ты что-то сочиняешь.
наборы отлично пишутся вслепую.
   Фрэнки
 
83 - 15.01.21 - 11:21
Ну это не мне нужно код писать. Как придумаете работающий - выкладывайте - интересно посмотреть, в чем же причина. Присоединяюсь к просьбам ТС написать работающий код для работы с РС.э
   Фрэнки
 
84 - 15.01.21 - 11:23
Просто в ближайшие 5-10 минут я в конфигуратор не полезу, чтоб попытаться этот код написать самому. Готовые примеры из инета дают тексты кодов, в которых Прочитать() есть.
   AlexSTAL
 
85 - 15.01.21 - 11:26
(84) Набор записей это я так, уже для альтернативного примера привёл... Нужно всё обработкой проведения делать
   Ёпрст
 
86 - 15.01.21 - 11:46
(74) какая то неведомая х..ня, поковыряюсь на досуге.странно жто все
   AlexSTAL
 
87 - 15.01.21 - 11:53
(86) Мне кажется нет смысла тратить своё время, это штатное поведение платформы, тут достаточно ясно об этом сказано: https://v8.1c.ru/platforma/registr-svedeniy/
   AlexSTAL
 
88 - 15.01.21 - 12:27
(83) 5-10 минут прошли, есть новости?
   lodger
 
89 - 15.01.21 - 13:24
(87) ну там и написано
В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений.
   Фрэнки
 
90 - 15.01.21 - 13:25
(88)
---
В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений. Таким образом, например, в непериодическом регистре сведений Цены товаров с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений Цены товаров, подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом Изменение цен товаров.
---

Т.е. или считать, что платформа содержит противоречие, что позволяет непериодический регистр с подчинением регистратору.
Либо надо просто признать, что поле регистратор само по себе на уникальный ключ не влияет, без признака "по позиции регистратора" на уникальный клю не влияет.

Вот код
//---

    // регистр РегистрСведений1

    Движения.РегистрСведений1.Записывать = Истина;
    Движение = Движения.РегистрСведений1.Добавить();
    Движение.Период =Дата('2001.01.01');
    Движение.Измерение1 = ИСТИНА;
    Движение.Ресурс1 = "текст";
//---


В регистре сведений указано, что это Периодичность "по позиции регистратора". Так записи пишутся. С одинаковым периодом!

Но если это "по позиции регистратора" убрать на другое или непериодический - одинаковый набор значений измерений будет выдавать ошибку.
   AlexSTAL
 
91 - 15.01.21 - 13:33
Резюмируем - для непериодического регистра сведений Регистратор является специальным полем, в котором хранится информация о регистраторе — документе, с которым связана эта запись.
И не более того. Это не дополнительное измерение.

Теперь вернёмся к РБД )))
   Фрэнки
 
92 - 15.01.21 - 13:58
Но вообще прикольно получается.

Включенная периодичность "по позиции регистратора" позволяет писать записи с любыми значениями периода, но при этом записи уникальны "по позиции регистратора"

Да, а что по РБД, надо будет еще смотреть отдельно и дальше.
   AlexSTAL
 
93 - 15.01.21 - 14:18
(92) По РБД нарушается хронология в файле выгрузке. Сначала пытается "провестись" документ (загрузка записей регистра), а потом отменится проведение (удаление записей регистра) другого документа.
Всё по нашему рассмотренному примеру...
   Ёпрст
 
94 - 15.01.21 - 16:05
(93) либо добавить периодичность тогда и писать пустуб дату в период, или забить на подчинение регистратору и самому, удалять и добавлять записи. При проведении/отмене/пометке на удаления
   Ёпрст
 
95 - 15.01.21 - 16:07
А так, явный баг. Надо на младших релизах посмотреть, как оно там раньше было.
   AlexSTAL
 
96 - 18.01.21 - 10:00
(94) Ну не... Проще добавить ещё одно измерение в регистр - сам регистратор и при проведении самому контролировать уникальность записей (а не платформой, как сейчас). Тогда проблем с загрузкой не будет.
   AlexSTAL
 
97 - 18.01.21 - 10:01
(95) Не думаю, что это баг. Просто никто об этом не подумал в 1С
В субботу ответили из 1С полную ахинею по моему запросу, написал, что я о них думаю.
Попросили базу прислать для воспроизведения, отправил только что, посмотрим, что скажут...
   Фрэнки
 
98 - 18.01.21 - 10:04
(96) вот я тебе об этом изначально и написал - всем все равно на эту баго-фичу, т.к. контроль в обменах идет практически всегда программно, а не средствами платформы.
   AlexSTAL
 
99 - 18.01.21 - 10:06
(98) Да нет... контроль не в обмене! Контроль уникальности записей в регистре, обмен тут вообще ни при чём
   Фрэнки
 
100 - 18.01.21 - 10:08
Допустим, я настолько привык указывать много лет, что при использовании записи РС с регистратором нужно выбирать "по позиции регистратора", что даже и не заморачиваюсь, есть там какой-то глюк или нет.
  1  2   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.