Детская болезнь ЗУП, вылечили уже или нет? #294375


#0 by Гений 1С
В типовом коде конфигурации «Зарплата и Управление Персоналом, редакция 2.1 (2.1.10.2)», при расчете НДФЛ за август 2007 года, в модуле «ПроведениеРасчетов» в функции «ПолучитьДанныеНДФЛПоРегистратору» в строке 5817, содержащей код: «Запрос.Текст = ИсчисленныйНДФЛТекст; Возврат Запрос.Выполнить.Выбрать», вызывалась ошибка SQL-сервера: Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: The column prefix '_Document120_VT1417_Q_274_T_001' does not match with a table name or alias name used in the query. Эта ошибка связана с тем, что текст запроса увеличивается пропорционально количеству времени, прошедшего от начала учета в программе. В запросе используется список дат, соответствующих началу каждого месяца в периоде от начала года, в котором начался учет, до конца месяца периода начисления НДФЛ. Этот список дат не передавался и не формировался  в запросе, а формировался непосредственно в тексте запроса. Учет ведется в базе с осени 2006 года. Соответственно, с течением времени, текст запроса превысил ограничения, предъявляемые SQL сервером и запрос перестал выполняться. Для коррекции ошибки исходный код: Был замен на новый код: Новый код заполняет список месяцев по графику работы по видам времени, который в системе заполняется для каждого месяца. Осталось непонятно, действительно ли нужно использовать при расчете НДФЛ данные с начала учета и исправлен ли в последних версиях ЗУП способ формирования списка дат. Эти вопросы планируется уточнить в 1С.
#1 by ТелепатБот
#2 by MRAK
Нихрена для НДФЛ не надо прошлые годы. Только текущий год.
#3 by almar
Там еще есть задница - если какой-нибудь юзер по ошибке введет, например, 2077 год в дате увольнения - расчет НДФЛ валится  - "недостаточно памяти".
#4 by Гений 1С
и это в типовых решениях! мда.... Кстати, я сторонник прозрачности даже в ущерб производительности. От километровых запросов тошно становится.
#5 by MRAK
Да ..опа полная в типовых от 1С...
#6 by Гений 1С
гыгыгы
#7 by simol
#8 by Саша Питерский
Если это ошибка SQL серввера 2000, то при чем тут 1С? Почему бы не перейти на SQL 2005, где эта ошибка исправлена?
#9 by Гений 1С
Видишь ли Саша питерский, это ошибка не SQL сервера, а ошибка в мозгах писателей типовых конфигураций. Ни один сервер не выдержит запроса, текст которого растет с каждым месяцем ведения учета... Как минимум одну ошибку типовые писатели сделали - НДФЛ смотрят не с начала года, а с начала учета.
#10 by Господин ПЖ
>>Видишь ли Саша питерский, это ошибка не SQL сервера, а ошибка в мозгах писателей типовых конфигураций. +1 Может и не писателей в первую очередь, а тех кто такие задачи ставит.
#11 by Feanor
Да ну ты че, чел утверждает, что ошибка то эта исправлена в 2005 скуле. А мы то деревня и нихера не знали. То есть програмеры майкрософт такие уроды нихера писать не умеют, зато вот 1С написала супер-софт, безупречность которого не может даже ставиться под сомнение. гыгыгыгы
#12 by Господин ПЖ
(+10) Хотя это цветочки... Столкнулись с задачей сопряжения учетной системы с stand-alone АРМ (АРМ не 1С-ный). Так этот АРМ ждет логин, пароль(!), набор прав и настройки торг. оборудования от учетной системы. Причем завести самому/изменить что-то из перечисленного непосредственно в АРМ нельзя(!). Мне стало страшно...
#13 by Гений 1С
я лично содрогнулся. Вот до чего доводит требования на экзаменах по 1С:специалист писать все в одном запросе. Может методистам пора пересмотреть это сомнительное правило в пользу прозрачности? ;-)
#14 by Саша Питерский
Почему она тогда под сиквелом 2005 не возникает? Или писатели из МС безупречны, не то что в 1С? :) Я, кстати, ни МС ни 1С сотрудников не обзывал и не извинял. Я всего лишь сообщил, что в СКЛ 2005 эта ошибка не возникает. Но тебе конечно же это не интересно, тебе главное 1С в очередной раз заклеймить.
#15 by Defender aka LINN
"The column prefix '_Document120_VT1417_Q_274_T_001' does not match with a table name or alias name used in the query." - тебе перевести, что это означает, или сам со словариком посидишь?
#16 by Samosval
да уж ...
#17 by Said_We
Это означает (может, например, означать), что MS в SQL 2005 году научился чушь от 1С оптимизировать, что бы не возникало ошибки.
#18 by Саша Питерский
Ну конечно, сознание не поворачивается признать, что МС тоже может совершать ошибки :)
#19 by almar
SQL 2005 падает при отборах в списках документов, если есть документы с временем 0:00:00 в дате. Так что переход с SQL 2000 на 2005 - не панацея от всех бед
#20 by Господин ПЖ
+1. Я бы сказал это замена одних глюков другими...
#21 by ave-kuban
а зачем 1С-ники НДФЛ смотрят не с начала года, а с начала учета??? СКЛ 2005 может работает оптимизированней или еще как, но косяк в данном случае 1с
#22 by ave-kuban
а по-уму: вообще надо было сделать защиту "от дурака" по поводу года для НДФЛ
#23 by Said_We
Почему ошибка MS? Они оптимизировали свой продукт, что бы даже тупо и не правильно написанные запросы все равно как-то работали.
#24 by Гений 1С
вот-вот... О чем и речь... Эх... Атомная бомба в руках дикаря.
#25 by Злобный Фей
Т.е. 2005 скуль умеет подключаться к недоразвитым мозгам авторов глючных запросов и выдирать оттуда че те хотели получить? Неее, ну нафиг. Пусть лучше всё валится, чем "как-то работает".
#26 by Said_We
Т.е. вы против любой оптимизации кода. Она в принципе отключается в SQL. Иногда красиво и понятно выглядящий код выполняется на порядок медленее чем не понятно и не красиво. Оптимизация и заключается в том что бы выцепить суть и написать более быстро, пусть даже не сильно понятно на первый взгляд.
#27 by Саша Питерский
Это уже клиника :)
#28 by Господин ПЖ
Сталкивался с запросом который делал Insert в таблицу SQL из 1С через ADO... Так он был круто написан - бралась строка и в цикле наращивалась Insert...Value...
#29 by DSS
в ред 2.5 вроде исправлено это.
#30 by Гений 1С
вроде?
#31 by Said_We
Да вопрос в другом. Почему 1С требует перехода на SQL 2005 иначе работать не будет нормально. А денег она даст на переход на новый сервер? Напиши нормально и будет работать и на 2000 и на 2005.
#32 by Said_We
Но написать они этого не хотят. Лень.
#33 by Саша Питерский
В платформе 8.1 добавили средства для обхода проблемы SQL 2000. В ЗУП 2.5 этот запрос переписан с использованием платформы 8.1 и нормально работает даже под 2000
#34 by ShoGUN
Правила оптимизации, не помню, честно говоря, откуда... 1. Не делай этого. 2. Все равно не делай.
#35 by Said_We
Т.е. не в SQL 2000 дело, а в 1С. О чем я и говорю.
#36 by Said_We
не понял о чем.... и чего не делай...
#37 by Саша Питерский
Все таки ты не исправим в своей вере в МС или попытке заклеймить 1С. Посмотри на это с такой точки зрения: Правильный запрос не выполняется в 2000, но выполняется в 2005, потому что в СКЛ сервере поправили ошибку. Правильный запрос под 2000 не работает в 8.0 но работает в 8.1, потому что разработчики 1С придумали, как обойти ошибку 2000
#38 by DSS
в 2.5 расчет НДФЛ у меня не вылетал.
#39 by Said_We
Если они смогли обойти ошибку MS, то может это совсем и не ошибка MS, а 1С. На самом деле я не люблю не MS, не 1С.
#40 by Саша Питерский
Тогда бы SQL 2005 вел бы себя аналогично 2000
#41 by Said_We
Это почему?
#42 by Саша Питерский
Если поведение не является ошибочным, то зачем что то исправлять?
#43 by MRAK
мне кажется, ты тупишь... смотри топик: НДФЛ считается с начала года, а не с начала учета!
#44 by Саша Питерский
А как соотносится топик с тем, что у 2х версий SQL сервера разное поведение для одного и того же запроса?
#45 by Said_We
То и так понятно.... Это совсем другое.
#46 by MRAK
Ну это значит, что и М$ и 1$ развивают потихоьку свое ПО...
#47 by Said_We
Ну это естественный процесс. Вопрос просто поставился что это однозначно ошибка .... того-то. Я бы просто не был таким категоричным. Кроме как ошибки каждого из продуктов - могут быть и ошибки взаимодействия.
#48 by Ndochp
Ну кеша там больше, или еще какое ограничение отодвинули. В общем просто 2005 съедает запросы большей длинны, чем 2000. Но это не значит, что и он не звезданется через пару лет учета.
#49 by Said_We
8.1. просто позволяет запросы большие по длине бить на части за счет временных таблиц... опа и все... и нету длинных запросов... Только долбать же сколько пришлось, что бы временные таблицы добавили.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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