Имя: Пароль:
1C
1C 7.7
v7: Ошибка SQL
0 mr_MySQL
 
09.10.12
07:19
http://plasmon.rghost.ru/40824309/image.png
Конфа самописная,ошибка возникает только у одного пользователя (при проведении документа). Тест и исправление бд делал (средствами sql и 1С), пробовал пересоздать профиль, пускать через терминальник, через клиента - не помогло. С другого компа под его учеткой все норм.
1 Нуф-Нуф
 
09.10.12
07:21
Может порча на нем или сглазил кто?
2 Frostik
 
09.10.12
07:27
Нужно бить в бубен)))
3 mr_MySQL
 
09.10.12
07:29
бил :(
4 Андрюха
 
09.10.12
07:35
Какая операционка у пользователя?
5 Андрюха
 
09.10.12
07:35
По скриншоту чую - ХР
6 Frostik
 
09.10.12
07:36
ну раз это не помогло, тогда наверно карма/ мистика/ воду/ проклятие или еще чего хуже, обсыпь комп солью вокруг...
7 mr_MySQL
 
09.10.12
07:40
(5)XP
(6)свечку в храме поставил, намаз прочитал, хаву нагилу спел - не помогает
8 dk
 
09.10.12
07:41
определись с привязкой ошибки
1с юзер / виндовый юзер / винда / комбинация ...
9 Frostik
 
09.10.12
07:53
Нада сжечь этот сатанинский компутер!!
10 rs_trade
 
09.10.12
07:57
ну раз все стандартные мероприятия проделаны, пора доставать профайлер. пытаться провести документ и отловить запрос который вызывает данное сообщение.
11 rs_trade
 
09.10.12
08:10
локаль проверь в винде. что там стоит.
12 МихаилМ
 
09.10.12
08:28
13 Злой Бобр
 
09.10.12
09:09
(0) Скуль я так понимаю не 2000?..
14 sda553
 
09.10.12
09:14
(0) Проблема в том, что где то идет преобразование чего то типа 32.13.4387659 в дату. Я бы оттрассировал sql проведение этого документа у других пользователй и у этого и посотрел бы разницу. Смотри внимательней код, попробуй закоментировать половину логики и в проводках писать проверенные константы, потом методом половинного отделения открывай части кода, пока не локализуешь ошибку.
15 mr_MySQL
 
09.10.12
09:18
(13)2008 R2
(14)попробуем
16 пипец
 
09.10.12
09:20
МДАК обнови до старого ...
17 mr_MySQL
 
09.10.12
09:22
(16)что такое МДАК?
18 Злой Бобр
 
09.10.12
09:26
(15) Ну вот ты и ответил на свой вопрос. Неподружена 1С с этим скулем на этом компе, вот и все. Если на других подружил то сделай еще раз как и на тех компах делал.
В правильно заданном вопросе как правило 50% решения вопроса.
19 mr_MySQL
 
09.10.12
09:32
(18)а я только терминальник подружил, все через него ходят
20 пипец
 
09.10.12
09:41
(17) MDAC
wiki:MDAC
21 Злой Бобр
 
09.10.12
09:42
(19) Ну если так уверен что все в терминале и неработает только у этого товарища, то - или памяти нехватает, или по таймауту валится. Профайлер в руки и смотри что происходит.
Ну а вообще нужно всю конфигурацию огласить а незаниматься пытками.
22 ADirks
 
09.10.12
09:56
А если именно этот документ проводит другой пользователь, то ошибки нет что-ли?
23 mr_MySQL
 
06.11.12
14:51
решил проблему
в тексте запроса было "ДатаДок+1", поменял на "ДатаДокумента", предварительно засунув в нее "ДатаДок+1"

вопрос: на sql server 2000 нормально бы обработало? у меня стоит 2008 r2
24 ЧеловекДуши
 
06.11.12
15:26
(23)Нам от сюда не видно.
Если ты про 1С, то нормально.
Если про нормальные языки программирования, то нет :)

Запрос покажи.
25 Ёпрст
 
06.11.12
15:27
(23) если запрос черный, то в скобки возьми ДатаДок+1 в тексте запроса.
26 mr_MySQL
 
07.11.12
09:43
ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНачВыбора по ДатаКонВыбора;
   |Обрабатывать НеПомеченныеНаУдаление;
   |ОбрабатыватьДокументы Непроведенные;
   |Без итогов;
   |ТекДок = Документ.АктНеВыходаТСНаЛинию.ТекущийДокумент, Документ.АктСходаТС.ТекущийДокумент;
   |ВидТСПЛ = Документ.АктНеВыходаТСНаЛинию.ТранспортноеСредство.ВидТС, Документ.АктСходаТС.ТранспортноеСредство.ВидТС;
   |Подрядчик = Документ.АктНеВыходаТСНаЛинию.Контрагент, Документ.АктСходаТС.Контрагент;
   |ДатаНачалаПростоя = Документ.АктНеВыходаТСНаЛинию.ДатаНачалаПростоя, Документ.АктСходаТС.ДатаНачалаПростоя;
   |ВремяНачалаПростоя = Документ.АктНеВыходаТСНаЛинию.ВремяНачалаПростоя, Документ.АктСходаТС.ВремяНачалаПростоя;
   |ПЛ = Документ.АктНеВыходаТСНаЛинию.ПЛ, Документ.АктСходаТС.ПЛЗамены;
   |Группировка ТекДок;
   |Условие (Подрядчик=Контрагент);
   |Условие (ВидТСПЛ=ВыбВидТС);";
   Если ВремяДок>9 Тогда
      ТекстЗапроса=ТекстЗапроса+"
      |Условие (ДатаНачалаПростоя=ДатаДок);";
   ИначеЕсли ВремяДок<7 Тогда
      ДатаДокумента=ДатаДок-1;
      ТекстЗапроса=ТекстЗапроса+"
      |Условие ((ДатаНачалаПростоя=ДатаДок)или(ДатаНачалаПростоя=(ДатаДокумента)));";
   Иначе
      ДатаДокумента=ДатаДок+1;
      ТекстЗапроса=ТекстЗапроса+"
      |Условие ((ДатаНачалаПростоя=ДатаДок)или(ДатаНачалаПростоя=(ДатаДокумента)));";
   КонецЕсли;
27 varelchik
 
07.11.12
10:15
МДА такие запросы да еще и в модуле проведения это жесть.
28 mr_MySQL
 
07.11.12
10:29
(27) напишите, пожалуйста, что именно там такого
просто это эту конфу нам пишет одна фирма (трайтек, самара) и мы уже немало вложились
вот этот косяк с sql запросом, это их косяк или наш, потому что у нас sql 2008?
29 varelchik
 
07.11.12
10:32
|Период с ДатаНачВыбора по ДатаКонВыбора;
и вообще непонятно для каких целей делается данный запрос.
на сколько я понял там даже цифровых значение в выборке нет.
30 varelchik
 
07.11.12
10:33
если уж делается запрос в модуле проведения то как правило на позицию документа но не как не запериод.
31 varelchik
 
07.11.12
10:34
+ причем здесь SQL запрос?
уж если SQL то чистый
select
.........
from
32 mr_MySQL
 
07.11.12
10:41
(31)извиняюсь, неправильно выразился
этот запрос выдал бы ошибку на SQL Server 2000? до замены ДатаДок+1 на ДатаДокумента
просто нам ответили, что эта ошибка у них не возникала никак
33 varelchik
 
07.11.12
12:25
(32) Вполне возможно.
SQL 2008 к синтаксису очень привередлив.
у меня после перехода с SQL2000 на SQL2008 некоторые запросы тоже посыпались с ошибкой.
34 varelchik
 
07.11.12
12:42
Правда это были прямые запросы на счет родных (черных) вроде ничего не поменялось, но кто знает как 1С интерпретирует именно твой запрос это только профайлер скажет.
35 ЧеловекДуши
 
07.11.12
12:45
Перепиши на прямой запрос, не мучай воздух :)
Будет лучше, легче и прямее.
36 varelchik
 
07.11.12
13:27
(35)+100
37 mr_MySQL
 
07.11.12
13:40
(35)не я пишу эту конфу
просто админю и контролирую тех, кто пишет, чтоб лишнего в счет не приписали + вот такие ошибки исправляю