Лисенков Владимир | Руководитель отдела разработки | АО МФК "Городская Сберкасса"

«Имитационное моделирование в среде 1С:Предприятие»

- суть имитационного моделирования, как способа определения наиболее оптимального решения - алгоритмы получения случайных значений по заданному закону распределения - построение имитационной модели и проведение имитационных испытаний в среде 1С:Предприятие В основу доклада будет положена выпускная работа по теме "Имитационное моделирование". Теория и практическая часть на платформе 1С. В качестве примера - расчет оценки кредитного риска по методу VAR в финансовых организациях. Платформа 1С будет рассмотрена в качестве аналога такому пакету как Oracle Cristal Ball.

Не могу разобраться со связью

1. PhoenixAOD 54 21.11.16 08:49 Сейчас в теме
Доброго времени суток всем читающим! Друзья, была мне поставлена задачка, в отчет Валовая прибыль добавить расчет оной по своему виду себестоимости. Зачем? Не знаю, сказали добавить, добавил, сделал через два набора данных. вот первый запрос, он штатный не изменял никак:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	Сегменты.Партнер КАК Партнер,
	ИСТИНА КАК ИспользуетсяОтборПоСегментуПартнеров
ПОМЕСТИТЬ ОтборПоСегментуПартнеров
ИЗ
	РегистрСведений.ПартнерыСегмента КАК Сегменты
{ГДЕ
	Сегменты.Сегмент.* КАК СегментПартнеров,
	Сегменты.Партнер.* КАК Партнер}

ИНДЕКСИРОВАТЬ ПО
	Партнер,
	ИспользуетсяОтборПоСегментуПартнеров
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	Сегменты.Номенклатура КАК Номенклатура,
	Сегменты.Характеристика КАК Характеристика,
	ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
	РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
	Сегменты.Сегмент.* КАК СегментНоменклатуры,
	Сегменты.Номенклатура.* КАК Номенклатура,
	Сегменты.Характеристика.* КАК Характеристика}

ИНДЕКСИРОВАТЬ ПО
	Номенклатура,
	Характеристика,
	ИспользуетсяОтборПоСегментуНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Таблица.Регистратор,
	Таблица.ПериодСекунда,
	Таблица.ПериодДень,
	Таблица.ПериодНеделя,
	Таблица.ПериодДекада,
	Таблица.ПериодМесяц,
	Таблица.ПериодКвартал,
	Таблица.ПериодПолугодие,
	Таблица.ПериодГод,
	Таблица.Количество КАК Количество,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.Выручка)
		КОГДА &ДанныеОтчета = 3
			ТОГДА СУММА(Таблица.ВыручкаРегл)
		ИНАЧЕ СУММА(Таблица.ВыручкаБезНДС)
	КОНЕЦ КАК Выручка,
	СУММА(Таблица.Выручка) - СУММА(Таблица.ВыручкаБезНДС) КАК ВыручкаНДС,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.СуммаРучнойСкидкиОборот)
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаРучнойСкидки,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.СуммаАвтоматическойСкидкиОборот)
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаАвтоматическойСкидки,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.СуммаРучнойСкидкиОборот)
		ИНАЧЕ 0
	КОНЕЦ + ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.СуммаАвтоматическойСкидкиОборот)
		ИНАЧЕ 0
	КОНЕЦ КАК ВсегоСкидок,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.Себестоимость)
		КОГДА &ДанныеОтчета = 3
			ТОГДА СУММА(Таблица.СебестоимостьРегл)
		ИНАЧЕ СУММА(Таблица.СебестоимостьБезНДС)
	КОНЕЦ КАК Себестоимость,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.ДопРасходы)
		КОГДА &ДанныеОтчета = 3
			ТОГДА 0
		ИНАЧЕ СУММА(Таблица.ДопРасходыБезНДС)
	КОНЕЦ КАК ДопРасходы,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы)
		КОГДА &ДанныеОтчета = 3
			ТОГДА СУММА(Таблица.ВыручкаРегл) - СУММА(Таблица.СебестоимостьРегл)
		ИНАЧЕ СУММА(Таблица.ВыручкаБезНДС) - СУММА(Таблица.СебестоимостьБезНДС) - СУММА(Таблица.ДопРасходыБезНДС)
	КОНЕЦ КАК ВаловаяПрибыль,
	ВЫБОР
		КОГДА &ДанныеОтчета = 1
			ТОГДА ВЫРАЗИТЬ(ВЫБОР
						КОГДА СУММА(Таблица.Выручка) <> 0
							ТОГДА (СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы)) / СУММА(Таблица.Выручка)
						ИНАЧЕ 0
					КОНЕЦ * 100 КАК ЧИСЛО(15, 2))
		КОГДА &ДанныеОтчета = 3
			ТОГДА ВЫРАЗИТЬ(ВЫБОР
						КОГДА СУММА(Таблица.ВыручкаРегл) <> 0
							ТОГДА (СУММА(Таблица.ВыручкаРегл) - СУММА(Таблица.СебестоимостьРегл)) / СУММА(Таблица.ВыручкаРегл)
						ИНАЧЕ 0
					КОНЕЦ * 100 КАК ЧИСЛО(15, 2))
		ИНАЧЕ ВЫРАЗИТЬ(ВЫБОР
					КОГДА СУММА(Таблица.ВыручкаБезНДС) <> 0
						ТОГДА (СУММА(Таблица.ВыручкаБезНДС) - СУММА(Таблица.СебестоимостьБезНДС) - СУММА(Таблица.ДопРасходыБезНДС)) / СУММА(Таблица.ВыручкаБезНДС)
					ИНАЧЕ 0
				КОНЕЦ * 100 КАК ЧИСЛО(15, 2))
	КОНЕЦ КАК Рентабельность,
	ВЫБОР
		КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК ПродажиМеждуОрганизациями,
	Таблица.Номенклатура КАК Номенклатура,
	Таблица.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаХранения,
	Таблица.Номенклатура.ЕдиницаДляОтчетов КАК ЕдиницаДляОтчетов,
	Таблица.Номенклатура.КоэффициентЕдиницыДляОтчетов КАК КоэффициентЕдиницыДляОтчетов,
	&ТекстЗапросаВесНоменклатуры1 КАК НоменклатураВес,
	&ТекстЗапросаОбъемНоменклатуры1 КАК НоменклатураОбъем,
	Таблица.Номенклатура.ГруппаАналитическогоУчета КАК ГруппаАналитическогоУчета,
	Таблица.Характеристика КАК Характеристика,
	Таблица.Серия КАК Серия,
	Таблица.Организация КАК Организация,
	Таблица.Продавец КАК Продавец,
	Таблица.Партнер КАК Партнер,
	Таблица.НаправлениеДеятельности КАК НаправлениеДеятельности,
	Таблица.ЗаказКлиента КАК ЗаказКлиента,
	Таблица.Подразделение КАК Подразделение,
	Таблица.Склад КАК Склад,
	Таблица.Контрагент КАК Контрагент,
	Таблица.Покупатель КАК Покупатель,
	Таблица.Поставщик КАК Поставщик,
	Таблица.Менеджер КАК Менеджер,
	Таблица.Сделка КАК Сделка,
	Таблица.МенеджерСделки КАК МенеджерСделки,
	Таблица.ВидЗапасов КАК ВидЗапасов,
	Таблица.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
	Таблица.ВидСделки,
	Таблица.ХозяйственнаяОперация
ИЗ
	(ВЫБРАТЬ
		ВЫБОР
			КОГДА Продажи.Регистратор = НЕОПРЕДЕЛЕНО
				ТОГДА NULL
			ИНАЧЕ Продажи.Регистратор
		КОНЕЦ КАК Регистратор,
		Продажи.ПериодСекунда КАК ПериодСекунда,
		НАЧАЛОПЕРИОДА(Продажи.ПериодДень, ДЕНЬ) КАК ПериодДень,
		НАЧАЛОПЕРИОДА(Продажи.ПериодНеделя, НЕДЕЛЯ) КАК ПериодНеделя,
		НАЧАЛОПЕРИОДА(Продажи.ПериодДекада, ДЕКАДА) КАК ПериодДекада,
		НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) КАК ПериодМесяц,
		НАЧАЛОПЕРИОДА(Продажи.ПериодКвартал, КВАРТАЛ) КАК ПериодКвартал,
		НАЧАЛОПЕРИОДА(Продажи.ПериодПолугодие, ПОЛУГОДИЕ) КАК ПериодПолугодие,
		НАЧАЛОПЕРИОДА(Продажи.ПериодГод, ГОД) КАК ПериодГод,
		ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка,
		ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка.Ответственный, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)) КАК МенеджерСделки,
		ВЫБОР
			КОГДА Продажи.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
				ТОГДА ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))
			ИНАЧЕ Продажи.Менеджер
		КОНЕЦ КАК Менеджер,
		АналитикаНоменклатуры.Номенклатура КАК Номенклатура,
		АналитикаНоменклатуры.Характеристика КАК Характеристика,
		АналитикаНоменклатуры.Серия КАК Серия,
		АналитикаПоПартнерам.Организация КАК Организация,
		АналитикаПоПартнерам.Организация КАК Продавец,
		АналитикаПоПартнерам.Партнер КАК Партнер,
		АналитикаПоПартнерам.НаправлениеДеятельности КАК НаправлениеДеятельности,
		Продажи.ВидЗапасов КАК ВидЗапасов,
		Продажи.ВидЗапасов.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
		Продажи.Подразделение КАК Подразделение,
		АналитикаНоменклатуры.Склад КАК Склад,
		ВЫБОР
			КОГДА Продажи.ВидЗапасов.РеализацияЗапасовДругойОрганизации
				ТОГДА ВЫБОР
						КОГДА Продажи.ВидЗапасов.ВидЗапасовВладельца.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
							ТОГДА Продажи.ВидЗапасов.ВидЗапасовВладельца.Комитент
						ИНАЧЕ Продажи.ВидЗапасов.ВидЗапасовВладельца.Поставщик
					КОНЕЦ
			ИНАЧЕ ВЫБОР
					КОГДА Продажи.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
						ТОГДА Продажи.ВидЗапасов.Комитент
					ИНАЧЕ Продажи.ВидЗапасов.Поставщик
				КОНЕЦ
		КОНЕЦ КАК Поставщик,
		Продажи.ЗаказКлиента КАК ЗаказКлиента,
		ВЫБОР
			КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
				ТОГДА АналитикаПоПартнерам.Контрагент
			ИНАЧЕ NULL
		КОНЕЦ КАК Контрагент,
		ВЫБОР
			КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
				ТОГДА АналитикаПоПартнерам.Контрагент
			ИНАЧЕ NULL
		КОНЕЦ КАК Покупатель,
		ВЫБОР
			КОГДА НЕ Продажи.ЗаказКлиента.Сделка.ВидСделки ЕСТЬ NULL
				ТОГДА Продажи.ЗаказКлиента.Сделка.ВидСделки.Наименование
			КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
					ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
				ТОГДА &СтрокаПродажиПоЗаказам
			ИНАЧЕ &СтрокаПродажиБезЗаказов
		КОНЕЦ КАК ВидСделки,
		Продажи.КоличествоОборот КАК Количество,
		Продажи.СуммаВыручкиОборот КАК Выручка,
		Продажи.СуммаВыручкиРеглОборот КАК ВыручкаРегл,
		Продажи.СуммаВыручкиБезНДСОборот КАК ВыручкаБезНДС,
		ВЫБОР
			КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				ТОГДА Продажи.СуммаВыручкиОборот
			КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
				ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.Стоимость, 0) КАК ЧИСЛО(15, 2))
			ИНАЧЕ Продажи.СебестоимостьОборот
		КОНЕЦ КАК Себестоимость,
		ВЫБОР
			КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				ТОГДА Продажи.СуммаВыручкиБезНДСОборот
			КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
				ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьБезНДС, 0) КАК ЧИСЛО(15, 2))
			ИНАЧЕ Продажи.СебестоимостьБезНДСОборот
		КОНЕЦ КАК СебестоимостьБезНДС,
		ВЫБОР
			КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				ТОГДА Продажи.СуммаВыручкиРеглОборот
			КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
				ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьРегл, 0) КАК ЧИСЛО(15, 2))
			ИНАЧЕ Продажи.СебестоимостьРеглОборот
		КОНЕЦ КАК СебестоимостьРегл,
		ВЫБОР
			КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				ТОГДА 0
			КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
				ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходы, 0) КАК ЧИСЛО(15, 2))
			ИНАЧЕ Продажи.СуммаДополнительныхРасходовОборот
		КОНЕЦ КАК ДопРасходы,
		ВЫБОР
			КОГДА Продажи.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				ТОГДА 0
			КОГДА ЕСТЬNULL(РасчетСебестоимости.Ссылка.ПредварительныйРасчет, ЛОЖЬ)
				ТОГДА ВЫРАЗИТЬ(Продажи.КоличествоОборот * ЕСТЬNULL(СтоимостьНоменклатуры.СтоимостьДопРасходыБезНДС, 0) КАК ЧИСЛО(15, 2))
			ИНАЧЕ Продажи.СуммаДополнительныхРасходовБезНДСОборот
		КОНЕЦ КАК ДопРасходыБезНДС,
		Продажи.СуммаРучнойСкидкиОборот КАК СуммаРучнойСкидкиОборот,
		Продажи.СуммаАвтоматическойСкидкиОборот КАК СуммаАвтоматическойСкидкиОборот,
		Продажи.ХозяйственнаяОперация КАК ХозяйственнаяОперация
	{ВЫБРАТЬ
		ЗаказКлиента.*,
		Сделка.*,
		МенеджерСделки,
		Подразделение.*,
		Номенклатура.*,
		Характеристика.*,
		Склад.*,
		Организация.*,
		Продавец.*,
		Партнер.*,
		Контрагент.*,
		Покупатель.*,
		Поставщик.*,
		Менеджер.*,
		ВидЗапасов.*,
		ГруппаФинансовогоУчета.*,
		Регистратор,
		ПериодСекунда,
		ПериодДень,
		ПериодНеделя,
		ПериодДекада,
		ПериодМесяц,
		ПериодКвартал,
		ПериодПолугодие,
		ПериодГод,
		ВидСделки,
		ХозяйственнаяОперация.*}
	ИЗ
		РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, Авто, {(ЕСТЬNULL(ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка, (ЕСТЬNULL(ЗаказКлиента.Сделка.Ответственный, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))).* КАК МенеджерСделки, (ВЫБОР
				    КОГДА Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
				        ТОГДА ЕСТЬNULL(ЗаказКлиента.Менеджер, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))
				    ИНАЧЕ Менеджер
				КОНЕЦ).* КАК Менеджер, (ВЫБОР
				    КОГДА ВидЗапасов.РеализацияЗапасовДругойОрганизации
				        ТОГДА ВЫБОР
				                КОГДА ВидЗапасов.ВидЗапасовВладельца.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				                    ТОГДА ВидЗапасов.ВидЗапасовВладельца.Комитент
				                ИНАЧЕ ВидЗапасов.ВидЗапасовВладельца.Поставщик
				            КОНЕЦ
				    ИНАЧЕ ВЫБОР
				            КОГДА ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
				                ТОГДА ВидЗапасов.Комитент
				            ИНАЧЕ ВидЗапасов.Поставщик
				        КОНЕЦ
				КОНЕЦ).* КАК Поставщик, (ВидЗапасов.ГруппаФинансовогоУчета).* КАК ГруппаФинансовогоУчета, (ВЫБОР
				    КОГДА НЕ ЗаказКлиента.Сделка.ВидСделки ЕСТЬ NULL
				        ТОГДА ЗаказКлиента.Сделка.ВидСделки.Наименование
				    КОГДА ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
				            ИЛИ ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
				        ТОГДА &СтрокаПродажиПоЗаказам
				    ИНАЧЕ &СтрокаПродажиБезЗаказов
				КОНЕЦ) КАК ВидСделки}) КАК Продажи
			{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
			ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики}
			{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
			ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики}
			{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
			ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
				И (АналитикаПоПартнерам.Организация = СтоимостьНоменклатуры.Организация)
				И Продажи.ВидЗапасов = СтоимостьНоменклатуры.ВидЗапасов
				И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))
				И (СтоимостьНоменклатуры.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию))
				И (СтоимостьНоменклатуры.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.МатериалыПринятыеВПереработку))}
			{ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСебестоимостиТоваров.Организации КАК РасчетСебестоимости
			ПО (НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ) = НАЧАЛОПЕРИОДА(РасчетСебестоимости.Ссылка.Дата, МЕСЯЦ))
				И (АналитикаПоПартнерам.Организация = РасчетСебестоимости.Организация)
				И (РасчетСебестоимости.Ссылка.Проведен)}
	ГДЕ
		(&ПоказыватьПродажи = 1
					И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
				ИЛИ &ПоказыватьПродажи = 2
					И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
				ИЛИ &ПоказыватьПродажи = 0)
	{ГДЕ
		АналитикаНоменклатуры.Номенклатура.* КАК Номенклатура,
		АналитикаНоменклатуры.Характеристика.* КАК Характеристика,
		АналитикаПоПартнерам.Организация.* КАК Организация,
		АналитикаПоПартнерам.Партнер.* КАК Партнер,
		АналитикаНоменклатуры.Склад.* КАК Склад,
		((АналитикаНоменклатуры.Номенклатура, АналитикаНоменклатуры.Характеристика) В
				(ВЫБРАТЬ
					ОтборПоСегментуНоменклатуры.Номенклатура,
					ОтборПоСегментуНоменклатуры.Характеристика
				ИЗ
					ОтборПоСегментуНоменклатуры
				ГДЕ
					ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)),
		(АналитикаПоПартнерам.Партнер В
				(ВЫБРАТЬ
					ОтборПоСегментуПартнеров.Партнер
				ИЗ
					ОтборПоСегментуПартнеров
				ГДЕ
					ОтборПоСегментуПартнеров.ИспользуетсяОтборПоСегментуПартнеров = &ИспользуетсяОтборПоСегментуПартнеров)),
		(ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка,
		(ВЫБОР
				КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
					ТОГДА АналитикаПоПартнерам.Контрагент
				ИНАЧЕ NULL
			КОНЕЦ).* КАК Контрагент,
		(ВЫБОР
				КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
					ТОГДА АналитикаПоПартнерам.Контрагент
				ИНАЧЕ NULL
			КОНЕЦ).* КАК Покупатель,
		Продажи.ХозяйственнаяОперация.*}) КАК Таблица

СГРУППИРОВАТЬ ПО
	Таблица.Сделка,
	Таблица.МенеджерСделки,
	Таблица.Номенклатура,
	Таблица.Характеристика,
	Таблица.Серия,
	Таблица.Организация,
	Таблица.Продавец,
	Таблица.Партнер,
	Таблица.НаправлениеДеятельности,
	Таблица.Регистратор,
	Таблица.ПериодСекунда,
	Таблица.ПериодДень,
	Таблица.ПериодНеделя,
	Таблица.ПериодДекада,
	Таблица.ПериодМесяц,
	Таблица.ПериодКвартал,
	Таблица.ПериодПолугодие,
	Таблица.ПериодГод,
	Таблица.ЗаказКлиента,
	Таблица.Подразделение,
	Таблица.Склад,
	Таблица.Контрагент,
	Таблица.Покупатель,
	Таблица.Поставщик,
	Таблица.Менеджер,
	Таблица.ВидЗапасов,
	Таблица.ГруппаФинансовогоУчета,
	Таблица.ВидСделки,
	Таблица.Номенклатура.ЕдиницаИзмерения,
	Таблица.Номенклатура.ЕдиницаДляОтчетов,
	Таблица.Номенклатура.КоэффициентЕдиницыДляОтчетов,
	Таблица.СуммаРучнойСкидкиОборот,
	Таблица.СуммаАвтоматическойСкидкиОборот,
	Таблица.ХозяйственнаяОперация,
	Таблица.Номенклатура.ГруппаАналитическогоУчета,
	Таблица.Количество

ИМЕЮЩИЕ
	(СУММА(Таблица.Количество) <> 0
		ИЛИ ВЫБОР
			КОГДА &ДанныеОтчета = 1
				ТОГДА СУММА(Таблица.Выручка)
			КОГДА &ДанныеОтчета = 3
				ТОГДА СУММА(Таблица.ВыручкаРегл)
			ИНАЧЕ СУММА(Таблица.ВыручкаБезНДС)
		КОНЕЦ <> 0
		ИЛИ ВЫБОР
			КОГДА &ДанныеОтчета = 1
				ТОГДА СУММА(Таблица.Себестоимость)
			КОГДА &ДанныеОтчета = 3
				ТОГДА СУММА(Таблица.СебестоимостьРегл)
			ИНАЧЕ СУММА(Таблица.СебестоимостьБезНДС)
		КОНЕЦ <> 0
		ИЛИ ВЫБОР
			КОГДА &ДанныеОтчета = 1
				ТОГДА СУММА(Таблица.ДопРасходы)
			КОГДА &ДанныеОтчета = 3
				ТОГДА 0
			ИНАЧЕ СУММА(Таблица.ДопРасходыБезНДС)
		КОНЕЦ <> 0
		ИЛИ ВЫБОР
			КОГДА &ДанныеОтчета = 1
				ТОГДА СУММА(Таблица.Выручка) - СУММА(Таблица.Себестоимость) - СУММА(Таблица.ДопРасходы)
			КОГДА &ДанныеОтчета = 3
				ТОГДА СУММА(Таблица.ВыручкаРегл) - СУММА(Таблица.СебестоимостьРегл)
			ИНАЧЕ СУММА(Таблица.ВыручкаБезНДС) - СУММА(Таблица.СебестоимостьБезНДС) - СУММА(Таблица.ДопРасходыБезНДС)
		КОНЕЦ <> 0)
Показать

во втором наборе сделал вот такой запрос:
ВЫБРАТЬ
	началопериода(&ПериодДень, день) КАК ПериодДень,
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена КАК грсЦена
{ВЫБРАТЬ
	ПериодДень,
	Номенклатура.*,
	грсЦена}
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(началопериода(&ПериодДень, день))}, {(Номенклатура = &Номенклатура и ВидЦены = &ВидЦены)}) КАК ЦеныНоменклатурыСрезПоследних
{ГДЕ
	(началопериода(&ПериодДень, день)),
	ЦеныНоменклатурыСрезПоследних.Номенклатура.*,
	ЦеныНоменклатурыСрезПоследних.Цена}
Показать

но срез последних не отрабатывает по дате, выдает последнее значение, дату запрос второго набора не глотает, номенклатура и видцены проходят а вот с датой не понятно что за беда, хотя вот с таким запросом во втором наборе данных:
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ЦеныНоменклатуры.Период, ДЕНЬ) КАК ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ
	ЦеныНоменклатуры.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода

СГРУППИРОВАТЬ ПО
	НАЧАЛОПЕРИОДА(ЦеныНоменклатуры.Период, ДЕНЬ)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЦеныНоменклатуры.Период КАК ПериодДень,
	ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
	ЦеныНоменклатуры.Цена КАК грсЦена,
	ЦеныНоменклатуры.ВидЦены
ПОМЕСТИТЬ Вт2
ИЗ
	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ
	ЦеныНоменклатуры.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
	И ЦеныНоменклатуры.Номенклатура = &Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Вт1.ПериодДень,
	МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1,
	Вт2.Номенклатура,
	Вт2.грсЦена,
	Вт2.ВидЦены
ПОМЕСТИТЬ Вт3
ИЗ
	Вт1 КАК Вт1
		ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
		ПО Вт1.ПериодДень >= Вт2.ПериодДень

СГРУППИРОВАТЬ ПО
	Вт1.ПериодДень,
	Вт2.Номенклатура,
	Вт2.грсЦена,
	Вт2.ВидЦены
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Вт3.ПериодДень,
	Вт2.Номенклатура,
	Вт2.грсЦена,
	Вт2.ВидЦены
ИЗ
	Вт3 КАК Вт3
		ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
		ПО Вт3.ПериодДень1 = Вт2.ПериодДень
ГДЕ
	Вт3.ПериодДень = &ПериодДень
Показать

все отрабатывается нормально. данные нужные. подскажите что с первом варианте я сделал не так? конфа Управление предприятием 2.1
Ответы
Сортировка: Древо
2. ipoloskov 63 21.11.16 08:53 Сейчас в теме
Что за параметр ПериодДень? Вы его задаете?
3. PhoenixAOD 54 21.11.16 10:39 Сейчас в теме
да, он передается из первого набора данных как и номенклатура
4. PhoenixAOD 54 21.11.16 10:40 Сейчас в теме
но в первом варианте почему то не проглатывает второй набор это параметр. номенклатуру сжирает, а вот ПериодДень нет.
Оставьте свое сообщение

Вакансии

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

Руководитель проектов по внедрению 1С документооборота
Санкт-Петербург
зарплата от 100 000 руб. до 130 000 руб.
Полный день

Руководитель по сопровождению и внедрению 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Ведущий специалист 1С
Москва
Полный день