|
Есть ли минусы у такой проверки? | ☑ | ||
---|---|---|---|---|
0
Beduin
04.07.19
✎
16:59
|
В цикле много документов.
Для к = 1 по 1000 Цикл ДокСсылка = Док[к].Ссылка; ДокОбъект = Док[к].ПолучитьОбъект(); //Тут заполнение какое-то ДокОбъект .......Алгоритмы заполнения // И после всего этого Проверяю по все метаданным ДокСсылка <> ДокОбъект Если не равны то записываю, если равны то не записываю. конецЦикла Мне кажется колхоз. Есть альтернативные варианты и как это на базу влияет, есть получать объект, обрабатывать его но не записывать? Только оперативка грузится или в бд тоже, что-то. |
|||
1
Nuobu
04.07.19
✎
17:01
|
Делать через выборку.
|
|||
2
Жан Пердежон
04.07.19
✎
17:01
|
(0) они всегда не равны, у них даже типы разные
|
|||
3
H A D G E H O G s
04.07.19
✎
17:02
|
Глупости.
Передать в запрос таблицу предполагаемо новых значений и вернуть в результат запроса доки, в которых поменялись значения с уже новыми значениями |
|||
4
Beduin
04.07.19
✎
17:02
|
(2) По метаданным по всем реквизитам, включая таб.части.
|
|||
5
Nuobu
04.07.19
✎
17:02
|
(2) Он имеет ввиду ДокСсылка.Реквизит1 <> ДокОбъект.Реквизит1
|
|||
6
Beduin
04.07.19
✎
17:03
|
(3) Проблема в том, что код на получение значений это полотно на десятки страниц и я плюнул и решил просто в конце проверять.
|
|||
7
Beduin
04.07.19
✎
17:04
|
(6) В конце, когда уже записывается все.
|
|||
8
H A D G E H O G s
04.07.19
✎
17:04
|
(6) Этот кусок будет работать вечность
|
|||
9
H A D G E H O G s
04.07.19
✎
17:05
|
(6) Значения можно собрать в ТЗ
|
|||
10
Fragster
гуру
04.07.19
✎
17:05
|
сериализуй докобъект в xml до изменений, потом перед записью и сравнивай строки
|
|||
11
H A D G E H O G s
04.07.19
✎
17:05
|
И потом выйдя из лапши, даже используя на крайняк, ВременноеХранилище() - сделать все красиво
|
|||
12
H A D G E H O G s
04.07.19
✎
17:06
|
Ну и решить - если эти десятки страниц писал - ты - то либо переписать, либо оторвать себе руки. Если же твой предок - найти его адрес.
|
|||
13
Beduin
04.07.19
✎
17:08
|
(12) Там стандартное письмо из Простоквашино. Каждые полгода кто-то дописывает. Новый.
|
|||
14
Garykom
гуру
04.07.19
✎
17:08
|
(0) Задача изменить документы но если старые данные = новым данным то нет смысла перезаписывать так?
|
|||
15
Garykom
гуру
04.07.19
✎
17:08
|
(14)+ Сорри *обновить документы
|
|||
16
Beduin
04.07.19
✎
17:08
|
(8)(9) Мне тогда в табличках придется хранить все поля документа. Вообще все.
|
|||
17
ptiz
04.07.19
✎
17:08
|
(0) "Тут заполнение какое-то ДокОбъект " - так и проверяй модифицированность.
А если там присваивается то же самое значение реквизита, что и было - не присваивай в таких случаях, чтобы модифицированность не вставала. |
|||
18
H A D G E H O G s
04.07.19
✎
17:09
|
(16) Все новые поля. Чебынет?
|
|||
19
Beduin
04.07.19
✎
17:09
|
(14) Да, верно.
|
|||
20
Garykom
гуру
04.07.19
✎
17:09
|
(19) Для этого используют хеши, недавно одна девочка тут мучалась.
|
|||
21
ptiz
04.07.19
✎
17:10
|
(0) А вообще - ничего смертельного в проверке циклом реквизитов нет, если это не в транзакции и время работы не напрягает.
|
|||
22
Beduin
04.07.19
✎
17:11
|
(17) А присваивание идет в полотне бесконечного кода, мне тогда надо будет туда лезть. И там это фиксить.
Я в конце просто перед записью проверяю. |
|||
23
Beduin
04.07.19
✎
17:14
|
(10)(19) Вот хорошие мысли) Хэш и Сериализация.
|
|||
24
H A D G E H O G s
04.07.19
✎
17:14
|
(23) Потом расскажешь.
|
|||
25
ptiz
04.07.19
✎
17:19
|
Лучше бы, в самом деле, 1С реализовала функцию сравнения объектов вместо каких-то GROUPING SETS.
|
|||
26
Garykom
гуру
04.07.19
✎
17:25
|
(25) Чем тебе не нравится ЗначениеВСтрокуВнутр ?
|
|||
27
рикардо милос
04.07.19
✎
18:16
|
(26) Примечание:
Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется. |
|||
28
Вафель
04.07.19
✎
18:19
|
вместо присваивания делай процедуру ПрисвоетьЕслиНеравно.
Тогда по флагу модифицированности можно отсеивать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |