1. skela 2 14.03.19 16:31 Сейчас в теме

Удаление всех движений регистра накопления

Подскажите как удалить все записи регистра накопления. Т.е. без какого-нибудь отбора
Ответы
Избранное Подписка Сортировка: Древо
2. oleg-x 8 14.03.19 16:34 Сейчас в теме
Сделай отбор только по периоду и очисти набор
3. skela 2 14.03.19 16:54 Сейчас в теме
5. soft_wind 14.03.19 16:58 Сейчас в теме
(3) а удалить регистр из конфигуратора (сразу все данные пропадут) - не предлагать?
(а потом его можно заново создать)
4. soft_wind 14.03.19 16:56 Сейчас в теме
(2) ээээ, может я неправ, но для регистров накопления отбор только по Регистратору
6. d.batovskiy 14.03.19 17:04 Сейчас в теме
А если просто создать набор записей и потом очистить?
7. skela 2 14.03.19 17:04 Сейчас в теме
8. d.batovskiy 14.03.19 17:06 Сейчас в теме
Тогда запросом получать все документы и потом в цикле по этим документам, создавать набор записей с отбором по регистратору и очищать.
9. d.batovskiy 14.03.19 17:09 Сейчас в теме
Примерно так:

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВыпускПродукцииУслуг.Регистратор КАК Регистратор
		|ИЗ
		|	РегистрНакопления.ВыпускПродукцииУслуг КАК ВыпускПродукцииУслуг
		|
		|СГРУППИРОВАТЬ ПО
		|	ВыпускПродукцииУслуг.Регистратор";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Набор = РегистрыНакопления.ВыпускПродукцииУслуг.СоздатьНаборЗаписей();
		Набор.Отбор.Регистратор.Установить(ВыборкаДетальныеЗаписи.Регистратор);
		Набор.Очистить();
	КонецЦикла;
Показать
11. oleg-x 8 14.03.19 17:19 Сейчас в теме
(9) Немного подправил код
Запрос = Новый Запрос; 
Запрос.Текст = 
"ВЫБРАТЬ 
|	ВыпускПродукцииУслуг.Регистратор КАК Регистратор 
|ИЗ 
|	РегистрНакопления.ВыпускПродукцииУслуг КАК ВыпускПродукцииУслуг 
| 
|СГРУППИРОВАТЬ ПО 
|	ВыпускПродукцииУслуг.Регистратор"; 

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

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

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

Набор.Отбор.Регистратор.Установить(ВыборкаДетальныеЗаписи.Регистратор); 
Набор.Прочитать();//Иначе нельзя сделать изменения
Набор.Очистить(); 
Набор.Записать();//Иначе все изменения не запишутся.
КонецЦикла;
Показать
independ; +1 Ответить
10. oleg-x 8 14.03.19 17:17 Сейчас в теме
Да, доступен только регистратор для отбора, причем даже нельзя вид сравнения изменить в отборе.
Тогда только три варианта:
1) Получить все регистраторы и обойти в цикле.
2) Удалить регистр сведений, потом вернуть.
3) Очистить таблицу, непосредственно запросом в базе данных напрямую, но нужны знания SQL
12. skela 2 14.03.19 17:42 Сейчас в теме
13. meriferi 17.03.19 13:40 Сейчас в теме
попробуй обработкой CleanReg
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)