Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Удаление документа ПоступлениеТоваровИУслуг , Программно удаляет очень долго          
vet07 Подменю пользователя
сообщение 26.06.14, 10:13
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Платформа 8.3, Конфигурация УТП_Demo.
Программно удаляет очень долго. Удалял двумя вариантами:
1. Вариант
Выборка = Документы.ПоступлениеТоваровУслуг.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        Если Не Выборка.Проведен Тогда
            Выборка.ПолучитьОбъект().Удалить();
        КонецЕсли;
    КонецЦикла;

2. Вариант
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ПоступлениеТоваровУслуг.Ссылка
    |ИЗ
    | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    | (НЕ ПоступлениеТоваровУслуг.Проведен)
    |
    |УПОРЯДОЧИТЬ ПО
    | ПоступлениеТоваровУслуг.Дата";
    
    ТаблицаСсылок = Запрос.Выполнить().Выгрузить();
    
    Для Каждого СтрокаТаблицыСсылок Из ТаблицаСсылок Цикл
        Объект = СтрокаТаблицыСсылок.Ссылка.ПолучитьОбъект();
        Попытка
            Объект.Удалить();
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;


Почему долго удаляет обеими способами и в чем принципиальная разница между вариантами кода?

pablo Подменю пользователя
сообщение 26.06.14, 10:18
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
Почему долго удаляет обеими способами
Потому что Вы для удаления используете одну и ту же процедуру
Цитата
в чем принципиальная разница между вариантами кода?
В первом случае вы с сервера БД получаете все 100500 документов, а во втором - только 10050 непроведенных.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

vet07 Подменю пользователя
сообщение 26.06.14, 10:30
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(pablo @ 26.06.14, 11:18) *
Потому что Вы для удаления используете одну и ту же процедуру

Можно по-подробней - что Вы имеете в виду под одной и той же процедурой?

Цитата(pablo @ 26.06.14, 11:18) *
В первом случае вы с сервера БД получаете все 100500 документов, а во втором - только 10050 непроведенных.

Ясно. Спасибо. А в каких случаях используется Вариант1?

Сообщение отредактировал Vofka - 26.06.14, 12:01

pablo Подменю пользователя
сообщение 26.06.14, 10:38
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
Можно по-подробней - что Вы имеете в виду под одной и той же процедурой?

Удалить()

Цитата
А в каких случаях используется Вариант1

В старых и не переписанных до сих пор.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: vet07,

Petre Подменю пользователя
сообщение 26.06.14, 12:11
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Цитата(vet07 @ 26.06.14, 11:13) *
Почему долго удаляет обеими способами

Попробуйте в транзакции.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

DartRomanius Подменю пользователя
сообщение 26.06.14, 14:03
Сообщение #6

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(Petre @ 26.06.14, 13:11) *
Попробуйте в транзакции.


Шоб еще медленнее? why.gif


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

sava1 Подменю пользователя
сообщение 26.06.14, 14:35
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Цитата(DartRomanius @ 26.06.14, 15:03) *
Шоб еще медленнее?

Не факт. Только транзакции делать небольшими - 20-50 документов

DartRomanius Подменю пользователя
сообщение 26.06.14, 14:38
Сообщение #8

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(sava1 @ 26.06.14, 15:35) *
Не факт. Только транзакции делать небольшими - 20-50 документов


Если гоню, то поправьте.
Документ проводится/удаляется(пометка удаления) в собственной транзакции.


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

sava1 Подменю пользователя
сообщение 26.06.14, 14:43
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

1.Документ удаляется, правятся все регистры / таблицы БД, собственный лог в журнале, физическая запись таблиц

при транз.
физическая запись происходит один раз для транзакции

DartRomanius Подменю пользователя
сообщение 26.06.14, 14:48
Сообщение #10

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(sava1 @ 26.06.14, 15:43) *
1.Документ удаляется, правятся все регистры / таблицы БД, собственный лог в журнале, физическая запись таблиц

при транз.
физическая запись происходит один раз для транзакции


ммм.... эээ....
может я не так понимаю...

ИМХО:
документ работает со своей транзакцией
а если их пачками то это еще транзакция так сказать верхнего уровня?


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

sava1 Подменю пользователя
сообщение 26.06.14, 14:54
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Документ удаляется в своей транзакции (и это делает платформа), но никто не запрещает объявить транзакцию верхнего уровня:
НачатьТранзакцию.....Зафиксировать...Откатить

За счет более крупных транзакций обращений к физической таблице будет меньше (соответсвенно и блокировок тоже).
Не делать слишком больших транзакций - это вариант скорее из практики - чтобы не рос журнал транзакций

ну типа так...

DartRomanius Подменю пользователя
сообщение 26.06.14, 15:03
Сообщение #12

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(sava1 @ 26.06.14, 15:54) *
Документ удаляется в своей транзакции (и это делает платформа), но никто не запрещает объявить транзакцию верхнего уровня:
НачатьТранзакцию.....Зафиксировать...Откатить

За счет более крупных транзакций обращений к физической таблице будет меньше (соответсвенно и блокировок тоже).
Не делать слишком больших транзакций - это вариант скорее из практики - чтобы не рос журнал транзакций

ну типа так...


Ну то есть получается как-то так:
1. Начинаем транзакцию. Это делает как бы личное пространство в таблицах.
2. Проводим где-то 50-100 доков, ну или удаляем, не важно. За счет того что в транзакции верхнего уровня мы как бы одни.
... как бы мы пока в транзакции мы не пишем в физическую таблицу, пока во временную?
3. если все норм, фиксируем транзакцию, собственно записываем уже агрегированно, плюс ко всему запись в 50-100 раз реже происходит.... smile.gif
4....
5. PROFIT



Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.04.24, 15:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!