Условие в запросе на параметр субконто.

1. sokir 2 17.12.18 18:45 Сейчас в теме
В плане счетов на счетах ОС первое субконто может быть Место хранения, ОС, НМА, Номенклатура.
Мне надо что бы запрос возвращал в Субкото1 всё кроме Место хранения.
Тоесть когда Субконто1 - Место хранения, то надо брать значение из Субконто2.
Можно ли в параметре запроса &Субконто установить отбор сразу на 3 вида субконто (ОС, НМА и Номенклатура)?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Dnki 4 17.12.18 21:16 Сейчас в теме
(1)
возвращал в Субкото1 всё кроме Место хранения.

Честно скажу: глуповато спросил. Как в одну колонку впихнуть "все"?
Может вот это хотел?: "Выбрать итоги для записей, где условие по нужным субконто с параметрам: 1)ОС, 2)Номенклатура". А вот на каких местах эти субканты стоят я не знаю.

Примечание: Я так и не понял, "ОС, НМА, Номенклатура" - это сколько видов субконто? Три? Или "ОС, НМА" - это одно субконто с запятой в названии?

Делается так (названия не с твоими не совпадают):
	Субконто = Новый Массив;
	Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Места);
	Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Основные);
	Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура); // Точно такое используется?

	Запрос.Текст = "ВЫБРАТЬ
	|	БИ.Субконто1				КАК Место, 
	|	БИ.Субконто2  				КАК Основное,	              
	|	БИ.Субконто3  				КАК Номенклатура,	              
	|ИЗ
	|	РегистрБухгалтерии.Бух.Остатки(НАЧАЛОПЕРИОДА(&НаДату, ДЕНЬ), Счет В ИЕРАРХИИ (&СчетаОС), &Субконто, Субконто2 В ИЕРАРХИИ (&Основное) И ...) КАК БИ

	Запрос.УстановитьПараметр("НаДату", 		ЭтотОбъект.НаДату);
	Запрос.УстановитьПараметр("Основное", 		ЭтотОбъект.Основное);
	Запрос.УстановитьПараметр("СчетаОС", 		СписокСчетовМЦ);
	Запрос.УстановитьПараметр("Субконто", 	Субконто);

Показать


Принципиальный момент в том, что массив "Субконто" передается запросу. И запрос пользуется субконто в этом же порядке. А в каком они стоят на счете, не играет роли. Лишь бы были.
5. sokir 2 17.12.18 21:41 Сейчас в теме
(3)
Принципиальный момент в том, что массив "Субконто" передается запросу. И запрос пользуется субконто в этом же порядке. А в каком они стоят на счете, не играет роли. Лишь бы были.

Я это понимаю. Только принципиальный момент, что на одних счетах ОС, а на других НМА. И что мне передать в массив?
2. zuxelzz 17.12.18 20:19 Сейчас в теме
не совсем понятно, что значит сделать отбор? используйте ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ.
если ТИПЗНАЧЕНИЯ(МестоХранения) тогда берите Субконто2.
Или я не понял, чего именно хотите =)
4. sokir 2 17.12.18 21:39 Сейчас в теме
Ну в общем другими словами объясню.
В запросе есть параметр субконто, и если сказать что оно должно быть типа ОС, то уже не важно каким по счету субконто будет это ОС - оно полюбому вернется в субконто1.
Проблема в том, что на одних счетах это ОС, а на других НМА и на некоторых счетах первое субконто места хранения.
А получать субконто2 нельзя - задублируются строки.
Ну или надо будет обходить выборку, проверять на тип, поместить в таблицу значений и потом свернуть.
7. Туки Туки 51 18.12.18 03:21 Сейчас в теме
(4) Ну примерно так...
ВЫБОР КОГДА "субконто типа ОС"  ТОГДА субконто1 КОНЕЦ
8. ben19791010 18.12.18 07:30 Сейчас в теме
(4)
это ОС - оно полюбому вернется в субконто1
ни хрена подобного
вот простой пример
субконто- статья затрат
для 20.01 счета это субконто2
для 26 счета это субконто1
10. sokir 2 18.12.18 10:23 Сейчас в теме
(8) Вы глубоко ошибаетесь. Попробуйте подготовиться к спецу - там поймете.
12. ben19791010 18.12.18 10:35 Сейчас в теме
(10) вы говорите про вид субконто, хотя ладно доказывать не буду
6. Dnki 4 17.12.18 21:55 Сейчас в теме
Нет, "другие слова" тоже не понял. Попробуйте правильными. Желательно, с запятыми, короткими предложениями По-любому должно получиться.
Не думайте, что издеваюсь. Я на работе говорю: "Правильно сформулировал задачу - считай, что решил".
11. sokir 2 18.12.18 10:29 Сейчас в теме
(6) Вот пример

ВидыСубконто = Новый Массив;
    ВидыСубконто.Добавить(
        ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОС
    );
    Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);


Где параметр ВидыСубконто (список видов субконто, влияет на доступность
// и смысл Субконто1, Субконто2.., которыми можно оперировать
// в запросе).
Но мне в Субконто1 надо и ОС и НМА.
Можно конечно еще ВЫБОР КОГДА "субконто типа ОС" ТОГДА субконто1 ...
9. independ 1520 18.12.18 09:03 Сейчас в теме
Вот пример
	ВЫБОР
		КОГДА ХозрасчетныйОстатки.Субконто1 ССЫЛКА Справочник.Контрагенты
			ТОГДА ХозрасчетныйОстатки.Субконто2
		ИНАЧЕ ХозрасчетныйОстатки.Субконто1
	КОНЕЦ КАК Поле2
13. sokir 2 18.12.18 14:09 Сейчас в теме
(9)
ВЫБОР
КОГДА ХозрасчетныйОстатки.Субконто1 ССЫЛКА Справочник.Контрагенты
ТОГДА ХозрасчетныйОстатки.Субконто2
ИНАЧЕ ХозрасчетныйОстатки.Субконто1
КОНЕЦ КАК Поле2


Оно то да, но задублировались строки.

Короче без возни не получится сделать.
14. Туки Туки 51 19.12.18 03:37 Сейчас в теме
(13) Что там задублировалось? покажи результат на конкретнем примере скрином, и как тебе нужно желательно тоже скрином и людям будет легче тебя понять и подсказать решение, а то сейчас мне кажется все гадают что тебе нуэно и что не так
15. sokir 2 20.12.18 11:49 Сейчас в теме
(14) например такой запрос
|ВЫБРАТЬ
		|	ХозрасчетныйОстаткиИОбороты.Организация,
		|	ХозрасчетныйОстаткиИОбороты.Счет,
		|	ВЫБОР КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ССЫЛКА Справочник.Склады ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2 ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1 КОНЕЦ КАК Инвестиция,
		|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СНД,
		|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СНК,
		|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СКД,
		|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СКК,
		|	ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК ДО,
		|	ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК КО,
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
		|			&ВыбНачПериода,
		|			&ВыбКонПериода,
		|			,
		|			,
		|			Счет В
		|				(ВЫБРАТЬ
		|					втСчета15.Ссылка
		|				ИЗ
		|					втСчета15),
		|) КАК ХозрасчетныйОстаткиИОбороты
Показать

по некоторым инвестиция возвращал полностью одинаковые строки
Добавление ВЫБРАТЬ РАЗЛИЧНЫЕ - помогло.
Но в конечном итоге переделал через ОБЪЕДИНИТЬ ВСЕ - первый запрос проходил по субконто1, а второй по субконто2 (ну и условия в каждом на тип субконто)
16. Oruzeynik 13.11.23 17:49 Сейчас в теме
(4) может хотя бы так?
ВЫБРАТЬ
	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура) КАК Значение
ПОМЕСТИТЬ ВТ_Номенклатура
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , , , Субконто1 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты

ОБЪЕДИНИТЬ

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

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Справочник.Номенклатура)
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , , , Субконто3 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты
Показать
17. Oruzeynik 14.11.23 11:48 Сейчас в теме
(16) Упс - сорри, заработался не в ту тему отправил )
Оставьте свое сообщение

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