powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Запрос к РегиструБух 1С8.1 по виду субконто?
14 сообщений из 14, страница 1 из 1
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35296707
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то ли я неправильно что-то помню, но кажется можно было выбрать в 1С-запросе (к "РегистрБухгалтерии") субконто по его виду, а не по номеру в выборке.
т.е. не писать что -то типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 Текст = "ВЫБРАТЬ
	|	ХозрасчетныйДвиженияССубконто.Период,
	|	ХозрасчетныйДвиженияССубконто.СчетДт,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СчетДт) AS Дт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК СДт1,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1) вСДт1,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоДт2),
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2),
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоДт3),
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3),
	|	ХозрасчетныйДвиженияССубконто.СчетКт,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СчетКт) КАК Кт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК СКт1,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1),
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт2,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоКт2),
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2),
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт3,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.СубконтоКт3),
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3),
...
...
	|	ХозрасчетныйДвиженияССубконто.Регистратор,
	|	ПРЕДСТАВЛЕНИЕ(ХозрасчетныйДвиженияССубконто.Регистратор) КАК ПрР
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|	ХозрасчетныйДвиженияССубконто." + СчетТип + " В ИЕРАРХИИ (&"+ СчетТип + ")
	|	И ХозрасчетныйДвиженияССубконто.Организация В ИЕРАРХИИ (&Организация)
	|	И ХозрасчетныйДвиженияССубконто.Период >= &Период";
а потом нудно разбирать, в каком из субконто противоположного счету &"+ СчетТип + " счета проводки могут болтаться "котрагенты" или "Работники организаций" в процедуре. Но , сдается мне, было что-то позволяющее взять нужное по типу субконто чуть ли не сразу - еще на этапе написания "Запроса1С-кОбъектамТипа-РегистрБухгалтерии". Или я путаю - и можно просто перейти к нужному субконто при работе с такой выборкой не проверяя отдельно каждый тип субконто... Или просто что-то наподобие (аналога?) CASE WHEN в 1c-SQL припоминается...


Заранее спасибо.

ЗЫ Если такой возможности нет - каковы причины? (кроме того ,что на счете в теории могут лежать три (в БП) обнотипных субконто - скажем "Гарант1" "Гарант2" "Гарант3").

ЗЫ2. Если я правильно вспомнил насчет "CASE WHEN в 1c-SQL" - то при сервреной БД где будет проводиться этот самый "CASE WHEN" - на клиенте(сервере кластера1с), или на сервереБД?

ЗЫ3. имеет ли смысл включать в SQL ПРЕДСТАВЛЕНИЯ(...), если потом я могу их получить и так - средствами 1С? Например сконкатенировав объект со строкой (хотя видимо точнее - строку "" с объектом - т.е. будет ли ПРЕДСТАВЛЕНИЕ исполняться к примеру сервером-кластера, и грузить собой сетку?).
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35296808
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ2. Если я правильно вспомнил насчет "CASE WHEN в 1c-SQL" - то при сервреной БД где будет проводиться этот самый "CASE WHEN" - на клиенте(сервере кластера1с), или на сервереБД?

На сервере БД.
Некоторые сложные запросы 1с не умеет конвертировать в чисто SQL запрос и тогда будет пахать связка сервер 1с <-> сервер бд через временные таблы и кучу запросов.


ЗЫ3. имеет ли смысл включать в SQL ПРЕДСТАВЛЕНИЯ(...), если потом я могу их получить и так - средствами 1С? Например сконкатенировав объект со строкой (хотя видимо точнее - строку "" с объектом - т.е. будет ли ПРЕДСТАВЛЕНИЕ исполняться к примеру сервером-кластера, и грузить собой сетку?).

Если написано в запросе то будет выполнятся на сервере БД.
В случае когда тип поля многозначный - это не всегда хорошо. Представление() будет представлять собой сложный CASE и брать строковое представление из всех таблиц к которым принадлежит тип поля.
Если привести к строке на клиенте - то будет грузить сетку и подтормаживать( при большом количестве строк)
Так что зависит от количества возвращаемых строк.

зы. про первый вопрос ничо не понял .. чего надо..
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297395
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПалестинецЕсли привести к строке на клиенте - то будет грузить сетку и подтормаживать( при большом количестве строк)Спасибо.
дело тут в том, что представления будут использованы не все (в зависимости от некой логики). А писать сложный разбор в 1с-скл (для какой строки выборки какое представление возвращать, а какое пропустить) не очень понимая, как он будет выполняться - наверное не выход. (да и пиша последующий разбор выборки в 1С, трудно не запросить какое-либо не полученное поле объекта - а тогда уже тряститсь над тем, что приведение объекта к строке нагрузит сеть - кажется бессмыссленным. Нет?

Палестинецзы. про первый вопрос ничо не понял .. чего надо..
хорошо.
тогда по буквам:
Берется выборка скажем проводок всего 50-го счета. Для определенности, скажем, 50 по дебету. С кредитовой стороны интересуют только контрагентские (вообще говоря в широком смысле - т.е. контрагенты и подотчетники-зарплатники) субконто. Их значения. Поскольку чисто теоретически такие субконто могут быть не первыми на счете, то хотелось бы получить все равно этих контрагентов, и, желательно, в то же поле выборки. (а так я на клиенте проверяю - является ли первое субконто контрагентским, а уж потом беру (или не беру и проверяю следующее) его значение. Я конечно могу нагло предположить, что контрагентское субконто всегда в стандартной БП - первое. но наверное это даже на сегодня неверно... И, что интересно, видимо ложная память срабатывает, припоминается мне, что такая функция/(или техника) в 1С-СКЛ вроде бы ка и есть.




А так-то оно да, конечно... - наваять что-то в стиле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CASE WHEN
	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 = 
	ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты
THEN
	ХозрасчетныйДвиженияССубконто.СубконтоДт1
WHEN 
	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2 = 
	ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты
THEN 
	ХозрасчетныйДвиженияССубконто.СубконтоДт2
WHEN 
	ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3 = 
	ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты
THEN 
	ХозрасчетныйДвиженияССубконто.СубконтоДт3
ELSE
	NULL
END
 AS Контра,
а как оно будет выполняться 1С-ом, да еще в различных (файл-сервер/клиент-сервер) вариантах...
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297415
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS в скрипте случай как раз обратный - это я набросал для выборки кредита 50-го. а не дебета как в "по буквам"
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297423
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВЫБОР
КОГДА <Выражение> ТОГДА <Выражение>
ИНАЧЕ <Выражение>
КОНЕЦ

это потеряли что-ли?
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297462
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖВЫБОР
КОГДА <Выражение> ТОГДА <Выражение>
ИНАЧЕ <Выражение>
КОНЕЦ

это потеряли что-ли?не, я скл могу и по людски, по аглицки т.е. Так что меня тут носом тыкать не надо. типа - здесь вам не тут. и 1с8 пока вроде его, SQL этот, почти понимает.



стало быть ложная память.
Звиняйте, господа, мы сами не местные. Что-то видели, что-то слышали, что-то читали - вот некоторые вещи и наслаиваются....
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297537
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, что интересно, видимо ложная память срабатывает, припоминается мне, что такая функция/(или техника) в 1С-СКЛ вроде бы ка и есть.

Может я не понимаю чего-та но эта же стандартная фишка?

Есть такие виртуальные функции (в ЗАПРОСЕ) у регистра бухгалтерии: ОборотыДтКт. Обороты.
Почитайте их описание.

Там можно указать вид субконто по которому будет отбор.
т.е. можно именно указать это параметром и использовать:

Код: plaintext
1.
2.
3.
4.
5.
Запрос.УстановитьПараметр(ВидыХарактеристик, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты)

Запрос.Текст = 
|SELECT * 
|FROM 
|РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, , Счет В ИЕРАРХИИ (&СчетБУ), &ВидСубконто, Организация = &Организация)
ОборотыДтКт аналогично.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35297557
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
дело тут в том, что представления будут использованы не все (в зависимости от некой логики).
Если возвращаемых строк мало то лучше на клиенте.
а вообще есть такая штука в 1с как замер производительности.
напишите уж как-нибудь чтоб работало. а потом замерьте.. если это место будет критично, то тогда и будете думать.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35298895
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПалестинецОборотыДтКт. Обороты.
Код: plaintext
1.
2.
3.
4.
5.
Запрос.УстановитьПараметр(ВидыХарактеристик, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты)

Запрос.Текст = 
|SELECT * 
|FROM 
|РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, , Счет В ИЕРАРХИИ (&СчетБУ), &ВидСубконто, Организация = &Организация)
о как! Я ж помню - "что-то похожее было". Однако склероз крепчает. Спасибо, что напомнили. Именно что похоже, но не то, что нужно. Мне нужны не обороты, а сами проводки. Т.ч. будем кейсить.


PS (у вас там не попутано :
Код: plaintext
1.
2.
3.
Запрос.УстановитьПараметр(ВидыХарактеристик,....;
...
|РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, , Счет В ИЕРАРХИИ (&СчетБУ),
|&ВидСубконто, Организация = &Организация)
?


PS2 по части написать чтоб работало, оно уже и так работало, это я репу морщу на предмет чтобы оно приемлемо по траффику работало как с файл-сервером, так и с клиент-сервером. Всё мерить и по десять раз переписывать - оно конечно можно, но желательно и внутреннюю кухню представлять поточнее. - Порядку заради-для. Ибо обработка будет дергать записей сумаррно тыщ по 4-80 (в зависимости от размера бухии). А уже на ~350 записях (на клиент-сервере) подтормаживает. (Правда надо тестовую базку перевыгрузить - в этой не создались какие-то unique - видимо в файл-сервере нарушение уникальности. надо бы её отадминистрировать до выгрузки.)
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35299155
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о как! Я ж помню - "что-то похожее было". Однако склероз крепчает. Спасибо, что напомнили. Именно что похоже, но не то, что нужно. Мне нужны не обороты, а сами проводки. Т.ч. будем кейсить.
Здесь нет отличий.
Обороты по счету со свёрткой по записи = все проводки с участием этого счета.
PS (у вас там не попутано :
попутано.

ещё шустро работающий путь для получения представления субконто которое является контрагентом это его JOIN в запросе со справочником контрагентов по ссылке.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35299866
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Палестинец о как! Я ж помню - "что-то похожее было". Однако склероз крепчает. Спасибо, что напомнили. Именно что похоже, но не то, что нужно. Мне нужны не обороты, а сами проводки. Т.ч. будем кейсить.
Здесь нет отличий.
Обороты по счету со свёрткой по записи = все проводки с участием этого счета.
или я не понял мысли, или неправильно объясняю.

- Мне нужны индивидуальные проводки - как "документы(т.е. "факты") бух учета" - для их рассмотрения и употребления в левой проге. Обороты, т.е. итоговая свертка за диапазон дат, да даже по одной дате, (как факты) мне "втуда" не нужны. К тому же меня интересует добывание "наружу" внутреннего идентификатора записи-проводки (идентификация факта, с чем, кстати, "всё плохо". И "tref может меняться", и lineno зашито в ключ...). А в оборотах ее не будет, даже если бы удалось обороты расщепить по-секундно (а не по-датно).



Палестинецещё шустро работающий путь для получения представления субконто которое является контрагентом это его JOIN в запросе со справочником контрагентов по ссылке.Ок. спасибо, что напомнили. Попробую потестировать.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35300435
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в оборотах ее не будет, даже если бы удалось обороты расщепить по-секундно (а не по-датно).
Будет.всё-таки почитайте про эти функции в хелпе.
"расщеплением" оборотов может быть запись . регистратор и номер строки дадут вам ваши tref , rref и lineno - те что вы ищете. (tref , rref = id регистратора(документа) и lineno = номер строки проводки).

Зачем правда такой геморрой я не представляю.
для внешней проги будет гораздо удобней ключ в виде ВидДокумента->NПериода-> НомерДокумента.
NПериода добавить для документов имеющих периодичность номера.
Помоему тут всё прозрачно и для разработки и для саппорта. Лезти в унутрь 1с не вижу необходимости.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35300457
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
геморрой - я имею ввиду внутренние идентификаторы.
...
Рейтинг: 0 / 0
Запрос к РегиструБух 1С8.1 по виду субконто?
    #35301620
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Палестинецдля внешней проги будет гораздо удобней ключ в виде ВидДокумента->NПериода-> НомерДокумента.не смешно. Спасибо.


Но идея насчет "ВидДокумента" - довольно интересна (с некотороых пор). Нет ли у вас на памяти готового приема опроса всех видов регистраторов, причем с возвратом их в виде их имен в конфигурации.(т.е. в стиле "Документы.ОперацияБух").
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Запрос к РегиструБух 1С8.1 по виду субконто?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]