v7: Функция ВыполнитьЗапрос() в SQL работает как-то странно #698561


#0 by Chesnok
Пример: Есть счет "ПНБ" - Забалансовый, Субконто1: Сотрудники (только обороты), и счет 97.2 - Субконто1: Сотрудники, Субконто2 - Статьи затрат. Код: В DBF версии все работает правильно, а в SQL не выдает оборот по счету ПНБ. Конфигурации двух баз полностью идентичны. В чем дело?
#1 by varelchik
для начала озвучь релиз платформы.
#2 by NS
БИт.ИспользоватьСубконто; - это что такое?
#3 by Chesnok
Релиз 27 Если у счетов разные субконто можно не указывать вид субконто явно.
#4 by NS
По второй строке - гугл по твоему этому утверждению дает ссылку только на твой пост. Ты уверен что это документированная возможность, работающая под SQL?
#5 by NS
Для начала попробуй без этой строчки и без цикла по второму субконто в первой части условия.
#6 by KishMish
в поиске по бухгалтерии для РК я нашел 4 упоминания ИспользоватьСубконто в закрытии периода, в списании товаров и сверке итогов. но согласен, насчет использования с СКЛ. СКЛ к неопределенным значениям относится не так, как ДБФ.
#7 by Chesnok
А вы видели разные желтые книги "Описание встроенного языка" по DBF и SQL? ИспользоватьСубконто есть и в типовых конфигурациях. Без второго субконто никак нельзя, поэтому запрос я давно разбил на два. Меня интересовал сам принцип, почему в DBF работает, а в SQL нет.
#8 by NS
Зачем-же хамить?
#9 by МихаилМ
#10 by Chum
это вполне нормально. а не пробовал перед > БИт.ПолучитьСубконто(1,, Сотрудник) добавить: БИт.ВыбратьСубконто; // тут как бы нужно открыть выборку для начала
#11 by Chum
> Если БИт.ПолучитьСубконто(2,, Константа.СубконтоЗарплаты) = 1 Тогда добавить: БИт.ВыбратьСубконто;
#12 by Chesnok
Работает и без этого
#13 by BarakuzA
в скул и дбв - одни и теже запросы работают по разному.
#14 by NS
В ЖКК ни слова нет о том что в режиме запроса первый параметр в использоватьсубконто необязателен. В типовых есть, и в регламентной отчетности есть, но я не нашел ни одного примера с балансом и забалансом в одном запросе, и ни одного примера с когда в запросе участвуют счета с количеством субконто меньше, чем число вызовов использоватьсубконто. Хотя может просто плохо искал, ну или потому что так под SQL в принципе не будет работать. В типовых подобные случаи разбивают на несколько запросов.
#15 by NS
Если работает, зачем ветку создал?
#16 by Chesnok
Вам просто поговорить охота? 1. Имелось ввиду что метод БИт.ПолучитьСубконто(1,, Сотрудник) работает и без предварительной выборки БИт.ВыбратьСубконто 2. "но я не нашел ни одного примера с балансом и забалансом в одном запросе" - зачем тогда существует метод Опции(<ВклЗабалансСуммы>,<ВклОборотСубкСуммы>): Назначение: Устанавливает режим включения сумм в итоги. Параметры: <ВклЗабалансСуммы> - признак включения в итоги сумм по забалансовым счетам. Число: 0 - не включаются суммы по забалансовым счетам; 1 - включаются суммы по забалансовым счетам. И скажу Вам по секрету, что можно и без использования этого метода, при явном указании в параметрах бух.запроса забалансовых счетов вместе с балансовыми, все прекрасно работает. 3. "и ни одного примера с когда в запросе участвуют счета с количеством субконто меньше, чем число вызовов использоватьсубконто" - а это практика, в DBF все прекрасно работает.
#17 by NS
Ни одного сочетания использоватьсубконто без параметров, и выполнитьЗапрос с балансом и забалансом одновременно. И при чем тут ДБФ? И черные и белые запросы работают в дбф и sql по-разному, и имеют свои глюки и свои особенности работы недокументированных фич. Тебе уже только ленивый об этом не написал.
#18 by parasite12
Проставь все запятые в запросе БИт.ВыполнитьЗапрос(НачПредМес, КонПредМес, "97.2,ПНБ",,,,); как-то так
#19 by Chai Nic
Бухитоги работают по разному в dbf и sql, это факт. Но это разное поведение проявляется только в "граничных" случаях, когда программист надеется на умолчания. Решение одно - указывать всё явно, и не делать "получить" без "выбрать".
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С