Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 17 ОтправитьПечать
Очень популярная тема (более 25 ответов) AccountsRecordset v3.17. Прямые запросы к БИ. (число прочтений - 137559 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #60 - 25. Декабря 2008 :: 13:11
Печать  
NFF писал(а) 25. Декабря 2008 :: 11:06:
У меня проблема следующего характера, не знаю как победить:
Метод AccountsRecordset::ВыполнитьСкалярный - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Метод AccountsRecordset::ОбрМетаСКЛ - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)

Используется 1С++ 3.0.1.21

Это ошибка 1С++ 3.х. Определение интерфейса (prm-файл) не должно зависеть от реализации (приёма параметров по значению или по ссылке), однако, в 3.х зависит. IMHO. Собственно, я уже отвечал на этот вопрос в #19.

Обходится прописыванием Знач в .prm в соответствии с реализацией в .ert.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #61 - 26. Декабря 2008 :: 04:17
Печать  
1.
berezdetsky писал(а) 29. Сентября 2008 :: 10:52:
Я бы предпочёл, чтобы исправление было внесено в ночной билд - убрать вообще Знач из файлов описаний. Или оставить его там для обратной совместимости, сделав незначимым.


2.
berezdetsky писал(а) 25. Декабря 2008 :: 13:11:
NFF писал(а) 25. Декабря 2008 :: 11:06:
У меня проблема следующего характера, не знаю как победить:
Метод AccountsRecordset::ВыполнитьСкалярный - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Метод AccountsRecordset::ОбрМетаСКЛ - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)

Используется 1С++ 3.0.1.21

Это ошибка 1С++ 3.х. Определение интерфейса (prm-файл) не должно зависеть от реализации (приёма параметров по значению или по ссылке), однако, в 3.х зависит. IMHO. Собственно, я уже отвечал на этот вопрос в #19.

Обходится прописыванием Знач в .prm в соответствии с реализацией в .ert.


Не могу с тобой согласиться по поводу ошибки 1С++ Печаль
1С++ не должен вмешиваться в решения конечного разработчика.
Если тот написал Знач в прм-файле, все последствия на нем.
И если далее он не написал Знач в файле-реализации, это явная ошибка реализации класса.

Исправлять прм-файл в этом случае совсем не обязательно, все должно зависеть от дизайна класса.
Возможно, что параметр должен все-таки передаваться по значению, а не по ссылке. В этом случае нужно править файл реализации.

Соответственно, 1С++ сама не в состоянии за разработчика решить проблему дизайна его классов.
Поэтому подобные сообщения и были мной добавлены в 1С++ последних версий.

Кстати, разработчик может вообще не юзать Знач и тогда проблемы вообще не будет Улыбка

ЗЫ если хочешь, чтобы проблема решилась, пиши еще в какой-нибудь другой ветке, т.к. эту я не мониторю, и счас случайно наткнулся.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #62 - 26. Декабря 2008 :: 10:28
Печать  
artbear писал(а) 26. Декабря 2008 :: 04:17:
Не могу с тобой согласиться по поводу ошибки 1С++ Печаль
1С++ не должен вмешиваться в решения конечного разработчика.
Если тот написал Знач в прм-файле, все последствия на нем.

Однако, зачем-то вмешивается. У меня нет Знач в .prm


artbear писал(а) 26. Декабря 2008 :: 04:17:
Исправлять прм-файл в этом случае совсем не обязательно, все должно зависеть от дизайна класса.
Возможно, что параметр должен все-таки передаваться по значению, а не по ссылке. В этом случае нужно править файл реализации.

О чём и речь. На этапе разработки интерфейса разработчик не знает, будет ли параметр изменяться в реализации метода, и, соответственно, понадобится ли там Знач.


artbear писал(а) 26. Декабря 2008 :: 04:17:
Соответственно, 1С++ сама не в состоянии за разработчика решить проблему дизайна его классов.

+1. Не стоит и пытаться.


artbear писал(а) 26. Декабря 2008 :: 04:17:
ЗЫ если хочешь, чтобы проблема решилась, пиши еще в какой-нибудь другой ветке, т.к. эту я не мониторю, и счас случайно наткнулся.

А если не хочу? Переход на 3.х в обозримом будущем не планирую.  Круглые глаза
Да и проблема, по сути, из пальца высосана. Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #63 - 26. Декабря 2008 :: 10:35
Печать  
berezdetsky писал(а) 26. Декабря 2008 :: 10:28:
artbear писал(а) 26. Декабря 2008 :: 04:17:
Не могу с тобой согласиться по поводу ошибки 1С++ Печаль
1С++ не должен вмешиваться в решения конечного разработчика.
Если тот написал Знач в прм-файле, все последствия на нем.

Однако, зачем-то вмешивается. У меня нет Знач в .prm

Она не вмешивается, а говорит о разнице в определении и реализации, т.е. об ошибках.

berezdetsky писал(а) 26. Декабря 2008 :: 10:28:
artbear писал(а) 26. Декабря 2008 :: 04:17:
Исправлять прм-файл в этом случае совсем не обязательно, все должно зависеть от дизайна класса.
Возможно, что параметр должен все-таки передаваться по значению, а не по ссылке. В этом случае нужно править файл реализации.

О чём и речь. На этапе разработки интерфейса разработчик не знает, будет ли параметр изменяться в реализации метода, и, соответственно, понадобится ли там Знач.

На этапе разработки интерфейся разработчик как раз и должен решить, какие параметры и каким образом будут передаваться Улыбка
Интерфейс - это главное, реализация вторична. В нормальных программах так и сделано.
Если реализация не совпадает с объявленным интерфейсом, кому нужна такая реализация Улыбка
Уверен, что и ты работаешь по такому же принципу Улыбка

Простой пример - программа объявлена/описана как антивирус, но нифига не защищает или вообще не выполняет антивирусные действия, кому она будет нужна ?

berezdetsky писал(а) 26. Декабря 2008 :: 10:28:
artbear писал(а) 26. Декабря 2008 :: 04:17:
Соответственно, 1С++ сама не в состоянии за разработчика решить проблему дизайна его классов.

+1. Не стоит и пытаться.

Вот и я об этом Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #64 - 26. Декабря 2008 :: 10:38
Печать  
Самое интересное - что 1С++ ведет себя по разному в зависимости от наличия/отсутствия Знач в прм-файле и есть неожиданные эффекты. В моих тестах они четко выявлялись.

ЗЫ я все-таки проблему не на пустом месте придумал и кучу времени потратил на решение Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
grayrat
Junior Member
**
Отсутствует



Сообщений: 99
Местоположение: Russia, Moscow
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #65 - 01. Марта 2009 :: 12:48
Печать  
А можно ли как-нибудь при помощи БИОстатки получить остаток на конкретную проводку, а не на документ?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v2.66. Прямые запросы к БИ.
Ответ #66 - 01. Марта 2009 :: 19:26
Печать  
Только с помощью БИОстатки - нельзя. БИОстатки + БИДвиженияССубконто - можно.

Но, IMHO, здесь что-то неправильно или в постановке задачи или в способе реализации.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: AccountsRecordset v3.00. Прямые запросы к БИ.
Ответ #67 - 01. Марта 2009 :: 19:50
Печать  
v3.00 (лежит в начале топика).

У параметров публичных методов убран атрибут Знач.

Переопределены английские синонимы методов.

Добавлены ВТ:
  • БИОстаткиОбороты;
  • БИОбороты без поддержки корреспонденции (для эффективного решения задач вроде http://www.1cpp.ru/forum/YaBB.pl?num=1229689386).
  •   

    пароль как коньяк, чем больше звездочек, тем лучше
    Наверх
    IP записан
     
    grayrat
    Junior Member
    **
    Отсутствует



    Сообщений: 99
    Местоположение: Russia, Moscow
    Зарегистрирован: 20. Мая 2006
    Пол: Мужской
    Re: AccountsRecordset v2.66. Прямые запросы к БИ.
    Ответ #68 - 02. Марта 2009 :: 14:06
    Печать  
    berezdetsky писал(а) 01. Марта 2009 :: 19:26:
    Только с помощью БИОстатки - нельзя. БИОстатки + БИДвиженияССубконто - можно.

    Но, IMHO, здесь что-то неправильно или в постановке задачи или в способе реализации.


    Задача в принципе такая - акт сверки с контрагентом с учетом разноса оплат на конкретные документы. Т.е. в выписке может быть несколько проводок по одному документу, и остаток надо получать на момент после каждой конкретной проводки.

    А как все таки это реализовать можно при помощи БИОстатки + БИДвиженияССубконто ? Пару дней покрутил со всех сторон - ничего хорошего в голову не пришло. Движения без проблем - остатки не прицепляются...
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #69 - 02. Марта 2009 :: 15:09
    Печать  
    Это получится по запросу на каждую проводку Ужас , т.е. тормоза. Гораздо шустрее, IMHO, будет посчитать остатки на начало (конец) документа, и обновлять их на клиенте по мере обхода проводок.

    А запрос  - что-то вроде
    Код
    Выбрать все
    select sum(СуммаОстаток)
    from (
    	select СуммаОстаток
    	...
    	union all
    	select Сумма
    	from $БИДвиженияССубконто...
    		and (СчетДт = :ВыбСчет)
    		and (НомерПроводки < :ВыбНП)) AS ...
    	union all
    	select -Сумма
    	from $БИДвиженияССубконто...
    		and (СчетКт = :ВыбСчет)
    		and (НомерПроводки < :ВыбНП)) AS ...
    ) ... 
    
    
      

    пароль как коньяк, чем больше звездочек, тем лучше
    Наверх
    IP записан
     
    grayrat
    Junior Member
    **
    Отсутствует



    Сообщений: 99
    Местоположение: Russia, Moscow
    Зарегистрирован: 20. Мая 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #70 - 02. Марта 2009 :: 23:25
    Печать  
    berezdetsky писал(а) 02. Марта 2009 :: 15:09:
    Это получится по запросу на каждую проводку Ужас , т.е. тормоза. Гораздо шустрее, IMHO, будет посчитать остатки на начало (конец) документа, и обновлять их на клиенте по мере обхода проводок.
    ...
    [/code]


    Ну тогда уж проще штатным методом сделать - через бухзапрос с периодичностью "проводка". Как в принципе и сделано сейчас.

    Кстати... А для БИОстаткиОбороты нельзя ли добавить переодичность "Проводка" ? Это в качестве хотелки  Подмигивание
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #71 - 03. Марта 2009 :: 11:33
    Печать  
    grayrat писал(а) 02. Марта 2009 :: 23:25:
    Кстати... А для БИОстаткиОбороты нельзя ли добавить переодичность "Проводка" ? Это в качестве хотелки  Подмигивание

    Технически сделать это не сложно, но я этого делать не буду, т.к. считаю хозоперацию минимальной значимой единицей информации в данном контексте.

    К тому же, исходники класса открыты - меняй, что хочешь.  Подмигивание
    Я считаю функционал класса завершённым, и с моей стороны развития класса больше не будет. Только исправления ошибок.
      

    пароль как коньяк, чем больше звездочек, тем лучше
    Наверх
    IP записан
     
    Tempus
    Junior Member
    **
    Отсутствует


    1C программер

    Сообщений: 34
    Местоположение: Киев
    Зарегистрирован: 12. Октября 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #72 - 13. Марта 2009 :: 10:18
    Печать  
    Добрый день!
    Такой вопрос - при передаче в качестве границы расчета в ВТ Остатки позиции документа, получаю ошибку "Неправильный формат времени!"
    Если передавать в качестве границы дату - все нормально.
    Позицию передаю так:
    кущийДокумент(), -1));
      

    Tempus fugit - Время течет...
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #73 - 13. Марта 2009 :: 11:29
    Печать  
    Модификатор в тексте запроса забыл.
      

    пароль как коньяк, чем больше звездочек, тем лучше
    Наверх
    IP записан
     
    Tempus
    Junior Member
    **
    Отсутствует


    1C программер

    Сообщений: 34
    Местоположение: Киев
    Зарегистрирован: 12. Октября 2006
    Пол: Мужской
    Re: AccountsRecordset v3.00. Прямые запросы к БИ.
    Ответ #74 - 13. Марта 2009 :: 12:04
    Печать  
    Точно!
    Глаза замылились Улыбка))
    Спасибо Улыбка
      

    Tempus fugit - Время течет...
    Наверх
     
    IP записан
     
    Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 17
    ОтправитьПечать