Много запросов для пересчета колонки временной таблицы

Мне нужно было изменить значения в колонке во временной таблице. В принципе, можно было выгрузить в таблицу значений, обработать и загрузить обратно.

Но я выбрал путь обработки на языке запросов.

Получилось немного длинно но верно:

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

Обратите внимание на использование звездочек для выбора всех полей. Остается одно лишнее поле Склад1, но в целом работает верно. Почему то в первом случае нельзя использовать Т.*, только *.

Жаль, что в языке 1С мало операций для манипуляций с временными таблицами.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

1 комментарий

  1. 17.12.2025

    […] задачу я пытался решить в статьях: «Много запросов для пересчета колонки временной таблиц…» и «Мертвые ветки логики в логике […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *