|
Распределённая информационная база и порядок загрузки объектов | ☑ | ||
---|---|---|---|---|
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
|
||||
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
|
Прогресс... "Ваше обращение зарегистрировано для расследования в отделе разработки, номер ..."
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |