Имя: Пароль:
1C
1С v8
Распределённая информационная база и порядок загрузки объектов
0 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) гы.. в файл обмена летит последнее состояние РС, при проведении/распроведении в табличке изменения регистра просто помечаются записи по набору измерений + узел.. усё.
При выгрузке у вас будут тока новые записи и всё.
2 AlexSTAL
 
15.01.21
08:08
(1) Не-не, при выгрузке в обязательном порядке есть записи удаления старых записей (как нулевая запись по набору измерений)
Я на абсолютно чистой базе воспроизвёл данную проблему, отправил в 1С, посмотрим, что они скажут
3 Фрэнки
 
15.01.21
08:49
(2) ничего они не скажут. Этой хрени уже лет 10 и ее видели все и на всех платформах, где вообще работа в РИБ стала доступна на уровне платформы
4 AlexSTAL
 
15.01.21
08:57
(3) Я поиском попробовал найти хоть какую-либо информацию на эту тему - почему то не получилось...
А что они советовали по этому поводу, какие костыли применять? Или не пользоваться РИБ в принципе?
5 Ёпрст
 
15.01.21
08:58
(2) у тебя независимый рег.сведений? В который пишутся записи с одинаковым набором измерений разными документами, так?
6 AlexSTAL
 
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) определенных советов я не видел, может там в партнерке чего-то и было, но я туда не допущен.

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

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

Скорей всего, что не хватает самого кода процедуры в модуле набора записей в РС.
10 AlexSTAL
 
15.01.21
09:20
(7) При чём тут регистратор?
Возьмём новый регистр с одним измерением, скажем Основание - ссылка на документ.
Создадим документ № 1, сошлёмся на Основание № 333.
Создадим документ № 2, сошлёмся на то же Основание № 333 - не получится, платформа будет ругаться, что запись с такими ключевыми полями уже существует
11 Фрэнки
 
15.01.21
09:22
(10) ну вот и выяснилось разночтение в показаниях "черепашки" : подчинен регистратору и наличие в измерениях поля документ - это два разных случая
12 AlexSTAL
 
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) измерение использовать можно. Но набор записей с отбором на регистратор обрабатывается в предустановленных процедурах из модуля набора записей. Если даже сам текст модуля будет пустой, то выполнится предустановленная процедура средствами платформы.
16 AlexSTAL
 
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
Там и периодика просто не нужна потому, что она тупо подавлена уникальными значениями регистратора.
21 AlexSTAL
 
15.01.21
09:42
Что на картинке не так?

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

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

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

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

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

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

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

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

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

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

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

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

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

Я просто на память помню, что без дописанного кода с РС работать не получается. А тс пытается нащупать работающий код не подглядывая существующего где-либо.
70 AlexSTAL
 
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) выкладывай уже свою демо-базу
74 AlexSTAL
 
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]);

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

---

Важная строчка - Прочитать после установки нужного отбора или нужного регистратора
76 AlexSTAL
 
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) да лично мне без разницы, конечно, есть там записи или нет. Я не хочу их читать.

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

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

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

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

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

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

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

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

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

На самом деле вы в большинстве сталкивались с подобным поведением в типовых.
Это РС ЦеныНоменклатуры.
Нельзя провести 2 разных документа Установка цен в один день, с одним и тем же типом цен и номенклатурой.
Я например на своей работе, сделал для РС ЦеныНоменклатуры периодичность не "В пределах дня", а в пределах секунды, по БП надо было.
105 ДенисЧ
 
19.01.21
10:57
(104) Аналогия хромает, РС ЦеныНоменклатуры - периодический с периодом в день
106 Повелитель
 
19.01.21
11:16
(105) Понятно, что есть один нюанс, но мне сразу это поведение регистра вспомнилось.
Так как регистраторы тоже могут быть разные, но проводить с одинаковыми изменениями не даёт.
107 AlexSTAL
 
19.01.21
13:00
(104) Да, любят на форумах ярлыки навешивать не проверяя...
108 AlexSTAL
 
19.01.21
15:53
Прогресс... "Ваше обращение зарегистрировано для расследования в отделе разработки, номер ..."
2 + 2 = 3.9999999999999999999999999999999...