Имя: Пароль:
1C
1С v8
Вывести данные в любом случае
Ø (Волшебник 24.10.2023 12:59)
,
0 AlexEngine
 
24.10.23
10:03
Здравствуте. я новичок в 1С, вот изучаю запросы

мне тут дали задание создать запрос таким образом чтобы
если выводить нечего, тогда вывести нулевое значение
вот дали запрос

Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("НачалоМесяца", 			  НачалоМесяца(Период));
	Запрос.УстановитьПараметр("МоментВремениДокумента",   Новый МоментВремени(Период, Регистратор));
	Запрос.УстановитьПараметр("Организация", 			  Организация);
	Запрос.УстановитьПараметр("Склад", 					  Склад);
	Запрос.УстановитьПараметр("ВидыСубконто", 			  ВидыСубконто);
	Запрос.Текст =
	"ВЫБРАТЬ
	|///////////////////Торговая наценка Сальдо начальное 42,1 (гр1)//////////////////////// +
	|   ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
	|   ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
	|   ЕСТЬNULL(ХозрасчетныйОстатки.СуммаНачальныйОстатокКт, 0) КАК  СуммаНачальныйОстатокКт
	|ПОМЕСТИТЬ ХозрасчетныйОстаткиТН
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|		   Месяц, 
	|		   ДвиженияИГраницыПериода,
	|			Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТорговаяНаценка_),
	|			&ВидыСубконто,
	|			Организация = &Организация
	|				И Субконто1 = &Склад) КАК ХозрасчетныйОстатки
	|;
	|	
	|//////////////////Сальдо Дебетовое счета 41.2 (для Гр 4 но нужно отнять НДС)///////////////////////////	  +
	|ВЫБРАТЬ
	|   ХозрасчетныйОстатки.Субконто1,
	|   ХозрасчетныйОстатки.Субконто2,
	|   ЕСТЬNULL(ХозрасчетныйОстатки.СуммаНачальныйОстатокДт, 0) КАК  СуммаНачальныйОстатокДт
	|ПОМЕСТИТЬ ХозрасчетныйОстаткиПС
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|		   Месяц, 
	|		   ДвиженияИГраницыПериода,
	|			Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыВРозничнойТорговле),
	|			&ВидыСубконто,
	|			Организация = &Организация
	|				И Субконто1 = &Склад) КАК ХозрасчетныйОстатки
	|;
	|	
	|//////////////Сальдо Кредитовое счета 42.3 (Для расчета гр4)////////////////////////	+
	|ВЫБРАТЬ
	|   ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
	|   ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
	|   ЕСТЬNULL(ХозрасчетныйОстатки.СуммаНачальныйОстатокКт, 0) КАК СуммаНачальныйОстатокКт
	|ПОМЕСТИТЬ ХозрасчетныйНачальныеОстаткиНДС
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|		   Авто, 
	|		   ДвиженияИГраницыПериода,
	|			Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РозничныйНДС),
	|			&ВидыСубконто,
	|			Организация = &Организация
	|				И Субконто1 = &Склад) КАК ХозрасчетныйОстатки
	|;
	|
	|///////////////////Торговая Себестоимость перемещенных товраов Дебетовый оборот счета 41.2 в корресп со счетом 41.1 для расчета (гр5) тут надо прибавить гр2///////////////////////////////  +
	|ВЫБРАТЬ
	|   ХозрасчетныйСебестоимостьПС.СубконтоДт1 КАК Субконто1,
	|   ХозрасчетныйСебестоимостьПС.СубконтоДт2 КАК Субконто2,
	|   ЕСТЬNULL(ХозрасчетныйСебестоимостьПС.СуммаОборот, 0) КАК СуммаОборот
	|ПОМЕСТИТЬ ХозрасчетныйСебестоимостьПС
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|			,
	|			СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыВРозничнойТорговле)),
	|			,
	|			СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах),
	|			&ВидыСубконто,
	|			Организация = &Организация) КАК ХозрасчетныйСебестоимостьПС
	|;
	|////////////////////////////////////////////////////////////////////////////////+
	|ВЫБРАТЬ
	|	ХозрасчетныйОборотыДтКт.СубконтоКт1,
	|	ХозрасчетныйОборотыДтКт.СубконтоКт2,
	|	ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) КАК СуммаОборот
	|ПОМЕСТИТЬ ХозрасчетныйОборотыНТТ
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|			,
	|			СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьРеализованнойПродукцииТоваровРаботУслуг)),
	|			,
	|			СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыВРозничнойТорговле),
	|			&ВидыСубконто,
	|			Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////  +
	|ВЫБРАТЬ
	|	ХозрасчетныйОборотыДтКтНДС.СубконтоКт1,
	|	ХозрасчетныйОборотыДтКтНДС.СубконтоКт2,
	|	ЕСТЬNULL(ХозрасчетныйОборотыДтКтНДС.СуммаОборот,0) КАК СуммаОборот
	|ПОМЕСТИТЬ ХозрасчетныйОборотыНДС
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
	|			&НачалоМесяца,
	|			&МоментВремениДокумента,
	|			,
	|			СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьРеализованнойПродукцииТоваровРаботУслуг)),
	|			,
	|			СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РозничныйНДС),
	|			&ВидыСубконто,
	|			Организация = &Организация) КАК ХозрасчетныйОборотыДтКтНДС
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ХозрасчетныйОстаткиТН.Субконто1 КАК Склад,
	|	ХозрасчетныйОстаткиТН.Субконто2 КАК СтавкаНДС,
	|	ЕСТЬNULL(СУММА(ЕСТЬNULL(ХозрасчетныйОстаткиТН.СуммаНачальныйОстатокКт, 0)),0) КАК Гр1,	
	|	ЕСТЬNULL(СУММА(ЕСТЬNULL(ХозрасчетныйОстаткиПС.СуммаНачальныйОстатокДт, 0)) - СУММА(ЕСТЬNULL(ХозрасчетныйНачальныеОстаткиНДС.СуммаНачальныйОстатокКт, 0)),0) КАК Гр4,	
	|	ЕСТЬNULL(СУММА(ЕСТЬNULL(ХозрасчетныйСебестоимостьПС.СуммаОборот, 0)),0) КАК ДтОб412С411,					
	|	ЕСТЬNULL(СУММА(ЕСТЬNULL(ХозрасчетныйОборотыНТТ.СуммаОборот, 0)),0) КАК Кр412Корр904,
	|	ЕСТЬNULL(СУММА(ЕСТЬNULL(ХозрасчетныйОборотыНДС.СуммаОборот, 0)),0) КАК Кредит423Корр904
	|ИЗ
	|	ХозрасчетныйОстаткиТН КАК ХозрасчетныйОстаткиТН
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ХозрасчетныйОстаткиПС КАК ХозрасчетныйОстаткиПС
	|		ПО ХозрасчетныйОстаткиТН.Субконто1 = ХозрасчетныйОстаткиПС.Субконто1
	|			И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОстаткиПС.Субконто2	
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ХозрасчетныйСебестоимостьПС КАК ХозрасчетныйСебестоимостьПС
	|		ПО ХозрасчетныйОстаткиТН.Субконто1 = ХозрасчетныйСебестоимостьПС.Субконто1
	|			И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйСебестоимостьПС.Субконто2
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ХозрасчетныйНачальныеОстаткиНДС КАК ХозрасчетныйНачальныеОстаткиНДС
	|		ПО ХозрасчетныйОстаткиТН.Субконто1 = ХозрасчетныйНачальныеОстаткиНДС.Субконто1
	|			И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйНачальныеОстаткиНДС.Субконто2
	|		ЛЕВОЕ СОЕДИНЕНИЕ ХозрасчетныйОборотыНТТ КАК ХозрасчетныйОборотыНТТ
	|		ПО ХозрасчетныйОстаткиТН.Субконто1 = ХозрасчетныйОборотыНТТ.СубконтоКт1
	|			И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОборотыНТТ.СубконтоКт2
	|	   ЛЕВОЕ СОЕДИНЕНИЕ ХозрасчетныйОборотыНДС КАК ХозрасчетныйОборотыНДС
	|		ПО ХозрасчетныйОстаткиТН.Субконто1 = ХозрасчетныйОборотыНДС.СубконтоКт1
	|			И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОборотыНДС.СубконтоКт2
	|
	|СГРУППИРОВАТЬ ПО
	|	ХозрасчетныйОстаткиТН.Субконто1
	|	,ХозрасчетныйОстаткиТН.Субконто2";
	
	Если НЕ РазделятьПоСтавкамНДС Тогда // Исключение третьего субконто (партии) из запроса  
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстатки.Субконто2,", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОборотыДтКт.СубконтоКт2,", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОборотыДтКтНДС.СубконтоКт2,", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстаткиТН.Субконто2 КАК СтавкаНДС,", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОстаткиПС.Субконто2", "");		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйСебестоимостьПС.Субконто2", "");		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйНачальныеОстаткиНДС.Субконто2", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОборотыНТТ.СубконтоКт2", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ХозрасчетныйОстаткиТН.Субконто2 = ХозрасчетныйОборотыНДС.СубконтоКт2", "");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, ",ХозрасчетныйОстаткиТН.Субконто2", "");
	КонецЕсли;

	Возврат Запрос.Выполнить().Выгрузить();


так вот, если в каком-то из подзапросов нету данных, то все данные не выводятся, а выводить необходимо всегда

я уже сходил в церковь, с бубном танцевал, с гуглом разговаривал, но то ли я гугла не понимаю, то ли он меня )

подскажите, пожалуйста, выход из положения.
1 Галахад
 
гуру
24.10.23
10:04
(0) Спроси какие именно данные нужно выводить в любом случае. И уже к этой таблице соединяй другие.
2 Рэйв
 
24.10.23
10:07
Новичек...Смешно.
(0) И в чем проблема, новичек?
3 Рэйв
 
24.10.23
10:08
Я так понимаю  гугл и церковь не помогли?
4 AlexEngine
 
24.10.23
10:08
Субконто 1 / 2 и сумму если данных нет тогда сумма ноль

я так палагаю если не выводить субконто тогда

|СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОстаткиТН.Субконто1
    |    ,ХозрасчетныйОстаткиТН.Субконто2";

ругаться же быдет или я ошибаюсь?
5 AlexEngine
 
24.10.23
10:09
(3) вроде бы я так и написал
(2) чего смешного то? / проблема в том что я понимаю ка кэто реализовать.
6 AlexEngine
 
24.10.23
10:09
(1) простите я ответил в (4)
7 AlexEngine
 
24.10.23
10:13
я изучил другие запросы к примеру

в обработке рабочего места менеджера в диномическом списке есть запрос

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

так вот я не вижу отличий от моего запроса но при этом если по товару небыло движений то он выводит ноль в колонке остатка к примеру
8 AlexEngine
 
24.10.23
10:14
и здесь я вхожу в ступор и не понимаю

я добавил везде

|   ЕСТЬNULL(ХозрасчетныйСебестоимостьПС.СуммаОборот, 0) что-бы если оборота нет то показать ноль но, получается так что если хоть в одном запросе пусто то все данные теряются (
9 Рэйв
 
24.10.23
10:18
(8)Да ты не входишь в ступор. Имхо, ты в нем и находишься:-+)
10 Рэйв
 
24.10.23
10:20
(7)Кривоватый у тебя запрос как по мне.
Чреват  дублями из-за двойного левого соединения...
Могу быть не прав конечно.
11 AlexEngine
 
24.10.23
10:20
(9) вероятно! ладно пошел я отсюда по добру да по здорову мне здесь похоже не рады (
12 shuhard
 
24.10.23
10:21
(11) и не возвращайся
13 Смотрящий
 
24.10.23
10:22
(7)
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура

Вот из-за этого выводятся нулевые если не было движений
1. отсматривается справочник номенклатуры. весь.
2. к нему пристегивается остаток
3. к нему пристегивается цена

у тебя же запрос в (0), в первой и второй временной таблице, наоборот - в отбираются данные из регистра - нет движений - нет данных. Надо посмотреть что за субконто 1 и 2 на 41 счете и прошестить таблицу субконто с левым соединением с регистром бухгалтерии
14 AlexEngine
 
24.10.23
10:22
(10) оба запроса не мои это мне дали исправить или попытаться исправить до этого я никогда не работал с запросами.
15 AlexEngine
 
24.10.23
10:24
(13) то-есть выходит что, мне нужно типа эм...

создать типа Таблицу значений поместить в нее данные субконто 1 и 2 и далее делать запрос по ней?

тогда получится так же как и с запросом в спр товаров?

в общем мысль я понял спасибо что помогли я пошел пробовать

что касаемо

(12) а это Вам решать? вы кто здесь простите?
16 Рэйв
 
24.10.23
10:24
(17)Юный падаван, ну ты уж изучи азы 1С прежде чем приходить сюда позориться:-)
17 AlexEngine
 
24.10.23
10:25
(12) если Вы модератор и считаете что я не должен быть на данном форуме я не вернусь! извините что посетил данный форум! прощайте!
18 AlexEngine
 
24.10.23
10:26
(7) позориться? в чем позор?
19 Рэйв
 
24.10.23
10:26
(16)->(14)
20 AlexEngine
 
24.10.23
10:27
(18) для (16)

(16) то есть форум не для помощи а для гуру 1С? ну тогда пардоньте
21 Рэйв
 
24.10.23
10:28
(18)Видишь ли, мой юный друг, прежде чем начинать задавать правильные вопросы, нужно хотя бы быть  немного в тебе :-)
22 AlexEngine
 
24.10.23
10:29
(19) и, что? в этом такого?

а Вы блин все знаете во всем разбираетесь или пошли учиться на когото и нифига не знали к Вам подошел учитель и сказал ты юнный падаван иди изучи азы а потом приходи учиться?

интересный у Вас подход! удачи Вам!
23 Рэйв
 
24.10.23
10:29
(20)Да.Этот форум для помощи начинающим 1С-никам...Но ты пока даже на начинающего не тянешь...
24 AlexEngine
 
24.10.23
10:31
(21) мда, посмотрел Ваши шедевры дизайна и прочего понятно с кем имею дело разговаривать с Вами неочем! прощайте!
25 Рэйв
 
24.10.23
10:31
(22)Ты ничего не знаешь.А злости в тебе как у матерого адинесника..
26 Рэйв
 
24.10.23
10:31
(24) и тебе не хворать.
27 Галахад
 
гуру
24.10.23
10:31
(4) Замени пока
ВНУТРЕННЕЕ СОЕДИНЕНИЕ на ЛЕВОЕ СОЕДИНЕНИЕ
28 AlexEngine
 
24.10.23
10:33
(23) не ТЫ а ВЫ! я с Вами не переходил на ТЫ!

идите поучитесь идите получите должное воспитание а потом пишите на форумах!

и да, мне уже 37 лет и думаю я уже не столь юнный друг! да и не Ваш друг это точно!
29 Смотрящий
 
24.10.23
10:34
Кидаться гОвнами - бесценно ))
И чето про мастеркард )))
30 AlexEngine
 
24.10.23
10:35
(27) Спсибо я попробую.

(25) я довольно долго работал с 1С 7. и не использовал там практически никогда запросы но да я не профессионал в 1С но все  же всегда не поздно чему то научится!
31 AlexEngine
 
24.10.23
10:36
(26) спасибо!
32 Рэйв
 
24.10.23
10:37
(28)Я побольше тебя в этих наших интернета,пацанчик....И еще помню, что обращение на ВЫ в Сети- это оскорбление.
Но если ВАМ так будет легче- то не пошли бы ВЫ нахрен:-)
33 AlexEngine
 
24.10.23
10:38
Удивляюсь я однако людям подобно "РЭЙВ" будут же доказывать что снег   ФИолетовый но не черный! знает что не прав но нужно свое вставить

100% накручивает кол-Во сообщений!
34 AlexEngine
 
24.10.23
10:38
(32) )) ну хоть так (Да мне легче спасибо!)
35 AlexEngine
 
24.10.23
10:42
Спасибо с запросм получилось все я создал ТЗ в нее запихнул склады и ставки НДС
(это и ест ьсубконто 1 / 2)

и далее переписал запрос по этой тз тоесть первой именно эта ТЗ где в качестве необходимых мне "ГР1,2,3) я указал 0

тепреь вс еработает ка кположенно спасибо!
36 AlexEngine
 
24.10.23
10:43
(32) какая разница где Вы там побольше? или что у Вас там побольше?

Вы мерится будите?
37 AlexEngine
 
24.10.23
10:47
(27) это поомжет безуслоно но до тех пор пока есть данные в "ХозрасчетныйОстаткиТН" а потом будет так - же фигня.

Спсибо конечно Вам! но я все же переписал как указал в (35)
38 AlexEngine
 
24.10.23
10:57
(РЭЙВ) раскачагарил меня аш пар из ушей идет
)))
39 Рэйв
 
24.10.23
11:01
(38)Обращайся если что:-)
40 AlexEngine
 
24.10.23
11:07
(39) да, да буду знать к каму обратиться.
41 Dragonofdwarfs
 
24.10.23
11:45
(40) Я просто оставлю это здесь... "Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование." © Фредерик Брукс-младший
42 unenu
 
24.10.23
11:51
что-то долго новичек прощается, вроде после 11-го сообщения уже должен был уйти в забвение серой пустоты.

ан нет, сидит и манипулирует своим уходом