Получить первое движение регистра

1. Black Cat 32 09.08.16 18:27 Сейчас в теме
Добрый день !
Есть регистр "Покупатели". Несколько лет назад была свертка базы. Мне нужно получить контрагентов, по которым было движение только документом ввода остатков в данный регистр при свертке, а потом движений не было. Как правильно написать запрос ?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Noob001 09.08.16 20:48 Сейчас в теме
Как вариант:

СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
ДокументВводаОстатков = СоздатьОбъект("Документ.ВводОстатковПокупателя");
ДокументВводаОстатков.Выбрать(ДатаВводаОстатков,ДатаВводаОстатков);
ДокументВводаОстатков.Получить() Цикл
СписокКонтрагентов.ДобавитьЗначение() = ДокументВводаОстатков.Контрагент(); //Получаешь список контрагентов которые были во вводе остатков

ЗапросАктивные = СоздатьОбъект("Запрос");
	ТекстЗапроса = 
	"//{{ЗАПРОС(ЗапросАктивные)
	|Период с ДатаВводаОстатков+1 по ДатаКонца; // Получаешь всех контрагентов которые совершали действия после ввода остатков
	|Контрагент = Регистр.Покупатели.Договор.Владелец;
	|СуммаРуб = Регистр.Покупатели.СуммаРуб;
	|Функция СуммаРубПриход = Приход(СуммаРуб);
	|Условие(Контрагент в СписокКонтрагентов);
	|Группировка Контрагент без групп;
	|"//}}ЗАПРОС
	;
	
	// Если ошибка в запросе, то выход из процедуры
	Если ЗапросАктивные.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли;

    Пока ЗапросАктивные.Группировка(1) = 1 Цикл
		ПозицияВСписке = СписокКонтрагентов.НайтиЗначение(ЗапросАктивные.Контрагент);
        Если ПозицияВСписке <> 0 Тогда
			СписокКонтрагентов.УдалитьЗначение(ПозицияВСписке); //Удаляешь из списка активных после ввода остатков
		КонецЕсли;	
	КонецЦикла;
Показать

//Остававшийся список будет содержать контрагентов которые есть во вводе остатков, но по ним не было никаких движений после.
Black Cat; +1 Ответить
3. Sanario 26 01.09.16 12:27 Сейчас в теме
(2), вот ответь на вопрос (ничего, что на ты?). А нельзя было запрос по контрагентам тоже через запрос сделать - все быстрее было бы? :) Кстати тут на сайте лежит классная штука позволяющая строить запросы, да еще и генерирующая текст запроса, да плюс еще и вывод предварительного результата. Правда работает только по одному из: регистр, справочник или документ, но кто мешает объединить?
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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

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

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день