новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Лопарева Мария Яковлевна
Приватное сообщение

Переписать обработку с ут 10.3 на ут 11. По групповой замене подразделений.

42 |  8
1 марта 2022 в 14:45:47 (2 года 7 недель 19 часов назад)
28033
Текст задания
Есть обработка по замене подразделений, которая проверяет совпадает ли подразделение в документе реализация, поступление и др. со складом для УТ 10.3
Необходимо сделать точно такую же, только на ут 11.
Обработку для ут 10.3 отправлю.

Вот код обработки:

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

Запрос.Параметры.Вставить("ДатаНачала", ДатаНачала);

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();


Сообщить("Начало: " + ТекущаяДата());

Номер = 0;

НачатьТранзакцию();

Пока Выборка.Следующий() Цикл

ОбработкаПрерыванияПользователя();

Номер = Номер + 1;


ТекДокумент = Выборка.Документ;


ДокОбъект = Выборка.Документ.ПолучитьОбъект();

ДокОбъект.Подразделение = Выборка.ПодразделениеСклада;

ДокОбъект.ОбменДанными.Загрузка = Истина;

ДокОбъект.Записать();


ЗаписатьНабор = Ложь;


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

Для каждого Запись Из Набор Цикл

Если Не ЗаписатьНабор Тогда

ЗаписатьНабор = Истина;

КонецЕсли;

Запись.Подразделение = Выборка.ПодразделениеСклада;

КонецЦикла;

Если ЗаписатьНабор Тогда

Набор.Записать();

КонецЕсли;


Если Номер % 400 = 0 Тогда

Состояние("" + Номер + "/" + Выборка.Количество());

ЗафиксироватьТранзакцию();

НачатьТранзакцию();

КонецЕсли;

КонецЦикла;

ЗафиксироватьТранзакцию();


Сообщить("Окончание: " + ТекущаяДата());
0
Выбранные исполнители
Отклики