как найти по коду во всей группе иерхии

1. kolbaska228 10.10.17 09:45 Сейчас в теме
Здравствуйте как найти во всей группе. До этого не было в справочниках разделение на под группы.

То есть было (наша розница), а стало (наша розница/оптовики и наша розница/розница. см.скрин )
. и сейчас не отображается в отчете контрагенты которые были в этой группе . как сделать чтобы конраагенты брались со всей группы наша розщница.

Запрос.УстановитьПараметр("НашаРозница", Справочники.Контрагенты.НайтиПоКоду ("F00000023"));
Прикрепленные файлы:
Найденные решения
6. Xershi 1484 10.10.17 10:04 Сейчас в теме
Ну вот заменить:
Контрагент.Родитель = &НашаРозница

На
Контрагент.Родитель В ИЕРАРХИИ(&НашаРозница)
kolbaska228; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 10.10.17 09:47 Сейчас в теме
Запросом с условием В ИЕРАРХИИ(&ГруппаРозницаНаша)
3. kolbaska228 10.10.17 09:53 Сейчас в теме
(2) извините конечно, но можно чуть по подробнее. я просто не очень силен в программировании в 1с
4. Xershi 1484 10.10.17 09:55 Сейчас в теме
(3) ну так запрос выдай! Откуда нам знать куда ты вставил параметр!
5. kolbaska228 10.10.17 09:57 Сейчас в теме
(4)
Процедура ПриОткрытии()
	Нач = НачалоНедели(НачалоНедели(ТекущаяДата())-1);
	Кон = НачалоНедели(ТекущаяДата())-1;
КонецПроцедуры

Процедура Запрос(Элемент)
	ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
	ТабДок.АвтоМасштаб = Истина;
	ТабДок.Очистить();
	Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
	Макет.Защита = Истина;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	|	ПродажиОбороты.Контрагент КАК Контрагент,
	|	ПродажиОбороты.Регистратор КАК Регистратор,
	|	ПродажиОбороты.Номенклатура КАК Номенклатура,
	|	ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
	|	ПродажиОбороты.Номенклатура.ВидНоменклатуры КАК НоменклатураВидНоменклатуры,
	|	ЕдиницыИзмерения.Коэффициент КАК Коэффициент,
	|	ВЫБОР
	|		КОГДА ПродажиОбороты.КоличествоОборот > 0
	|			ТОГДА ВЫРАЗИТЬ(ПродажиОбороты.КоличествоОборот / ЕдиницыИзмерения.Коэффициент - 0.5 КАК ЧИСЛО(15, 0))
	|		ИНАЧЕ ВЫРАЗИТЬ(ПродажиОбороты.КоличествоОборот / ЕдиницыИзмерения.Коэффициент + 0.5 КАК ЧИСЛО(15, 0))
	|	КОНЕЦ КАК Мешки,
	|	ВЫБОР
	|		КОГДА ПродажиОбороты.КоличествоОборот > 0
	|			ТОГДА (ВЫРАЗИТЬ(ПродажиОбороты.КоличествоОборот / ЕдиницыИзмерения.Коэффициент - 0.5 КАК ЧИСЛО(15, 0))) * ПродажиОбороты.Номенклатура.ВидНоменклатуры.Цена
	|		ИНАЧЕ (ВЫРАЗИТЬ(ПродажиОбороты.КоличествоОборот / ЕдиницыИзмерения.Коэффициент + 0.5 КАК ЧИСЛО(15, 0))) * ПродажиОбороты.Номенклатура.ВидНоменклатуры.Цена
	|	КОНЕЦ КАК СуммаМешков
	|ИЗ
	|	РегистрНакопления.Продажи.Обороты(
	|			&Нач,
	|			&Кон,
	|			Регистратор,
	|			Номенклатура.ВидНоменклатуры <> &Товар
	|				И Контрагент.Родитель = &НашаРозница) КАК ПродажиОбороты
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
	|		ПО ПродажиОбороты.Номенклатура = ЕдиницыИзмерения.Владелец
	|			И (ЕдиницыИзмерения.ЕдиницаПоКлассификатору = &Упаковки) ";
	
	Если НЕ Пустые Тогда
		Запрос.Текст = Запрос.Текст + " ГДЕ (ПродажиОбороты.КоличествоОборот >= ЕдиницыИзмерения.Коэффициент ИЛИ -ПродажиОбороты.КоличествоОборот >= ЕдиницыИзмерения.Коэффициент) ";
	КонецЕсли;
	
	
	Запрос.Текст = Запрос.Текст + " ИТОГИ
	|	СУММА(КоличествоОборот),
	|	МАКСИМУМ(Коэффициент),
	|	СУММА(Мешки),
	|	СУММА(СуммаМешков)
	|ПО
	|	Контрагент,
	|	НоменклатураВидНоменклатуры,
	|	Номенклатура";

	Запрос.УстановитьПараметр("Нач", НачалоДня(Нач));	
	Запрос.УстановитьПараметр("Кон", КонецДня(Кон));
	Запрос.УстановитьПараметр("Товар", Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001"));
	Запрос.УстановитьПараметр("НашаРозница", Справочники.КонтрагентыНайтиПоКоду ("F00000023"));  ;
	
	Запрос.УстановитьПараметр("Упаковки", Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("20"));
	    	
	Результат = Запрос.Выполнить();
	Голова = Макет.ПолучитьОбласть("Голова");
	Магазин = Макет.ПолучитьОбласть("Магазин");
	Тип = Макет.ПолучитьОбласть("Тип");
	Номенклатура = Макет.ПолучитьОбласть("Номенклатура");
	Регистратор = Макет.ПолучитьОбласть("Регистратор");
    Всего = Макет.ПолучитьОбласть("Всего");
	
	Голова.Параметры.Дата = ТекущаяДата();
	Голова.Параметры.Нач = Формат(Нач, "ДЛФ=Д");
	Голова.Параметры.Кон = Формат(Кон, "ДЛФ=Д");
    ТабДок.Вывести(Голова);
	
	ТабДок.НачатьАвтогруппировкуСтрок();
	ВыборкаМагазин = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	ВсегоЧисло = 0;
	Списание.Очистить();
	ЭлементыФормы.Списать.Доступность = Истина;
	Пока ВыборкаМагазин.Следующий() Цикл
	  	Магазин.Параметры.Заполнить(ВыборкаМагазин);
	  	ТабДок.Вывести(Магазин, ВыборкаМагазин.Уровень());
		Строка = Списание.Добавить();
		Строка.Контрагент = ВыборкаМагазин.Контрагент;
		Строка.Сумма = ВыборкаМагазин.СуммаМешков;
	  	ВыборкаТип = ВыборкаМагазин.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		
	  	Пока ВыборкаТип.Следующий() Цикл
	   		Тип.Параметры.Заполнить(ВыборкаТип);
	   		ТабДок.Вывести(Тип, ВыборкаТип.Уровень());
	   		ВыборкаНоменклатура = ВыборкаТип.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			
	   		Пока ВыборкаНоменклатура.Следующий() Цикл
				Номенклатура.Параметры.Заполнить(ВыборкаНоменклатура);
				ТабДок.Вывести(Номенклатура, ВыборкаНоменклатура.Уровень());
				ВыборкаРегистратор = ВыборкаНоменклатура.Выбрать();
				
				Пока ВыборкаРегистратор.Следующий() Цикл
					Регистратор.Параметры.Заполнить(ВыборкаРегистратор);
					ТабДок.Вывести(Регистратор, ВыборкаРегистратор.Уровень());
					ВсегоЧисло = ВсегоЧисло + ВыборкаРегистратор.СуммаМешков;
				КонецЦикла;
			КонецЦикла;
	  	КонецЦикла;
	КонецЦикла;
	ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.ПоказатьУровеньГруппировокСтрок(ТабДок.КоличествоУровнейГруппировокСтрок()-4);
	
	Всего.Параметры.Всего = ВсегоЧисло;
	ТабДок.Вывести(Всего);
КонецПроцедуры

Процедура ВыборПериодаНажатие(Элемент)	
	НастройкаПериода = Новый НастройкаПериода;
	НастройкаПериода.УстановитьПериод(Нач, ?(Кон='0001-01-01', Кон, КонецДня(Кон)));
	НастройкаПериода.РедактироватьКакИнтервал = Истина;
	НастройкаПериода.РедактироватьКакПериод = Истина;
	НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
	НастройкаПериода.Редактировать();
	Нач = НастройкаПериода.ПолучитьДатуНачала();
	Кон = НастройкаПериода.ПолучитьДатуОкончания();
КонецПроцедуры

Процедура СписатьНажатие(Элемент)
	Если Списание.Количество() > 0 Тогда
		Запрос = Новый Запрос;
		Запрос.Текст =  "ВЫБРАТЬ
		|	РасчетыСКонтрагентамиОбороты.Регистратор.Ссылка КАК Ссылка,
		|	РасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент
		|ИЗ
		|	РегистрНакопления.РасчетыСКонтрагентами.Обороты(&Дата, &Дата, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты";
		Запрос.УстановитьПараметр("Дата", НачалоДня(НачалоДня(Кон)-1));
		Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоКоду("000000497"));
		Результат = Запрос.Выполнить().Выбрать();
		Если Результат.Количество() <> 0 Тогда
			Режим = РежимДиалогаВопрос.ДаНет;
			Ответ = Вопрос("Утром предпоследнего дня периода уже имеются документы списания мешков, удалить их?",Режим, 0);	
			Если Ответ = КодВозвратаДиалога.Да Тогда
				Пока Результат.Следующий() Цикл
					Докец = Результат.Ссылка;
					Докум = Докец.ПолучитьОбъект();
					Докум.Удалить();
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
		Для Каждого Строка Из Списание Цикл
			Док = Документы.КорректировкаДолга.СоздатьДокумент();
			Док.сам_ГруппыКомментарий = Справочники.сам_ГруппыКомментарийКорректировок.НайтиПоКоду("6");
			Док.Комментарий = "мешкотара в рознице";
			Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("000");
			Док.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.ПереносЗадолженности;
			Док.Дата = НачалоДня(НачалоДня(Кон)-1);
			Док.КонтрагентДебитор = Справочники.Контрагенты.НайтиПоКоду("000000497");
			Док.КонтрагентКредитор = Строка.Контрагент;
			Док.Организация = Справочники.Организации.НайтиПоКоду("000000000");
			Строк = Док.СуммыДолга.Добавить();
			Строк.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская;
			Строк.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00900");
			Строк.КратностьВзаиморасчетов = 1;
			Строк.КурсВзаиморасчетов = 1;
			Строк.Сумма = Строка.Сумма;
			Строк.СуммаРегл = Строка.Сумма;
			Док.ДоговорКонтрагента = Строка.Контрагент.ОсновнойДоговорКонтрагента;
			Док.ОтражатьВУправленческомУчете = Истина;
			Док.Ответственный = Справочники.Пользователи.НайтиПоКоду(СокрЛП(ПользователиИнформационнойБазы.ТекущийПользователь().Имя));
			Док.Записать(РежимЗаписиДокумента.Проведение);
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры
Показать
6. Xershi 1484 10.10.17 10:04 Сейчас в теме
Ну вот заменить:
Контрагент.Родитель = &НашаРозница

На
Контрагент.Родитель В ИЕРАРХИИ(&НашаРозница)
kolbaska228; +1 Ответить
8. kolbaska228 10.10.17 10:29 Сейчас в теме
7. user698184_bunegin 10.10.17 10:25 Сейчас в теме
Вот тут: Запрос.УстановитьПараметр("НашаРозница", Справочники.КонтрагентыНайтиПоКоду ("F00000023")); разве не так должно быть
Запрос.УстановитьПараметр("НашаРозница", Справочники.Контрагенты.НайтиПоКоду ("F00000023")); ?
9. kolbaska228 10.10.17 10:30 Сейчас в теме
10. user698184_bunegin 10.10.17 10:33 Сейчас в теме
У Вас КонтрагентыНайтиПоКоду написано , а я спрашиваю Контрагенты.НайтиПоКоду (после Контрагенты точка)
11. kolbaska228 10.10.17 10:34 Сейчас в теме
(10) Да, это знаю просто менял когда, забыл сразу поставить . а копирнул не исправленную
12. user698184_bunegin 10.10.17 10:35 Сейчас в теме
13. user698184_bunegin 10.10.17 10:36 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот