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 20 01.09.16 12:27 Сейчас в теме
(2), вот ответь на вопрос (ничего, что на ты?). А нельзя было запрос по контрагентам тоже через запрос сделать - все быстрее было бы? :) Кстати тут на сайте лежит классная штука позволяющая строить запросы, да еще и генерирующая текст запроса, да плюс еще и вывод предварительного результата. Правда работает только по одному из: регистр, справочник или документ, но кто мешает объединить?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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

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

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

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