Дмитрий Дудин | Директор | ООО "Аналитика Софт"

«Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017»

- формулирование требований к оборудованию, сравнительный анализ современных AMD EPYC и Intel Xeon, выбор платформы - раскладываем чтение и запись при проведении документа на 32 потока - устраняем бутылочное горлышко процессов кластера 1С - перепроектирование серверной нагрузки 1С под многопоточное выполнение - перепроектирование клиентской нагрузки 1С под многопоточное выполнение - простой выбор между Host и Guest размещением клиента 1С - сравнение RDP 1С на сервере и клиента 1С на производительной рабочей станции - особенности лицензирования MSSQL - открытая лицензия разработчика, лицензируемые и нелицензируемые нагрузки

Продажи и остатки по складам УТ 10.3

1. SeverBaP 4 12.01.18 18:18 Сейчас в теме
Подскажите нужно получить данные в разрезе: склад, номенклатура, начальный остаток, приход, расход (включая внутренние перемещения), расход (чистые продажи), конечный остаток.
Сформировал таким запросом:
Запрос = Новый Запрос("ВЫБРАТЬ
|	ТоварыНаСкладахОстаткиИОбороты.Склад,
|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК ОстатокНаНП,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК Приход,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК Расход,
|	ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокНаКП
|ПОМЕСТИТЬ ДанныеПоСкладу
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), , , ) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Номенклатура,
|	СУММА(ТоварыНаСкладахОбороты.КоличествоРасход) КАК Продано
|ПОМЕСТИТЬ Продажи
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Регистратор, ) КАК ТоварыНаСкладахОбороты
|ГДЕ
|	(ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
|			ИЛИ ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)
|
|СГРУППИРОВАТЬ ПО
|	ТоварыНаСкладахОбороты.Склад,
|	ТоварыНаСкладахОбороты.Номенклатура
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|	ДанныеПоСкладу.Склад,
|	ДанныеПоСкладу.Номенклатура,
|	ДанныеПоСкладу.ОстатокНаНП,
|	ДанныеПоСкладу.Приход,
|	ДанныеПоСкладу.Расход,
|	Продажи.Продано,
|	ДанныеПоСкладу.ОстатокНаКП
|ИЗ
|	ДанныеПоСкладу КАК ДанныеПоСкладу
|		ЛЕВОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
|		ПО ДанныеПоСкладу.Склад = Продажи.Склад
|			И ДанныеПоСкладу.Номенклатура = Продажи.Номенклатура");
Запрос.УстановитьПараметр("НачалоПериода",НачалоНедели(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ТекущаяДата());
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Показать

Подскажите правильно я делаю?
Ответы
Сортировка: Древо
3. protexprotex 169 14.01.18 11:54 Сейчас в теме
(1) Добрый день. Вот только тут -
Запрос.УстановитьПараметр("НачалоПериода",НачалоНедели(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода",ТекущаяДата());
я бы через Новый Граница (Позиция, ВидГраницы.Включая) сделал.
9. PiotrLoginov 24.01.18 19:42 Сейчас в теме
(1) Под "расход (чистые продажи)" имелось ввиду "Расход (только продажи)"?
Когда делал подобное, использовал и регистров остатков на складе, и регистр продаж.
2. alxarz 29 14.01.18 07:29 Сейчас в теме
4. SeverBaP 4 15.01.18 11:56 Сейчас в теме
Хорошо, а то думал для получения чистой продажи необходимо было как-то подтягивать данные из регистра накопления "Продажи"
5. Dm_Kz 23.01.18 15:23 Сейчас в теме
(4) Если в системе не используются (и вы уверены, что не будут использоваться) какие-то экзотические документы, вроде "КорректировкаРеализации" или "КорректировкаЗаписейРегистров", то можно собирать продажи по регистру "ТоварыНаСкладах". Но правильнее использовать регистр "Продажи" для продаж, "ТоварыНаСкладах" - для товародвижения.
Кстати, у вас никак не учитываются возвраты. Возможно в постановке задачи это не было указано, но при формировании типового отчета по продажам его данные разойдутся с вашим запросом.
6. SeverBaP 4 24.01.18 16:28 Сейчас в теме
(5) Есть наброски на скрещивание регистра продаж к складу, что бы знать с какого склада было продано?
7. Dm_Kz 24.01.18 17:19 Сейчас в теме
(6) Например, так:
ВЫБРАТЬ
	ПродажиОбороты.Номенклатура,
	ПродажиОбороты.ХарактеристикаНоменклатуры,
	ПродажиОбороты.ДокументПродажи.Склад КАК Склад,
	ПродажиОбороты.КоличествоОборот,
	ПродажиОбороты.СтоимостьОборот
ИЗ
	РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
8. Dm_Kz 24.01.18 17:24 Сейчас в теме
(6)
(7)Хотя обращаться к реквизиту документа используя строку виртуальной таблицы "Продажи" конечно же не надо. Это отрицательно скажется на производительности. В моем предыдущем комментарии текст запроса приведен просто для примера того, откуда можно взять склад
Оставьте свое сообщение

Вакансии

Менеджер по продажам проектов 1С
Санкт-Петербург
Полный день

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

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

Консультант по внедрению 1С
Новосибирск
Полный день

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