Имя: Пароль:
1C
 
Еще раз тема про выгрузка из 1С в SQL(Формат даты)
0 bura_limon
 
29.09.10
16:00
За 31 число не попадают данные в Скул,в 1с Есть поступл.за 31.03.2010 23:59:59 в скул она не попало(форматом ММ/дд/гггг чч:сс не попагло),Поступ за 31.03.2010 16:32:52(в 1С) так же нет в Скуле и т.д...
то есть в Скуле 23:59:59 воспринимает как 11:59:59,период 01.03.2010 0:00:00 Скул выводит 01.03.2010 12:00.В связи с этим остаток неправельная.
1 bura_limon
 
29.09.10
16:13
Во время выгрузи исправил время на 00-00,результат тот же
2 nilabs
 
29.09.10
16:40
мдя.... отвечать не буду устал
3 bura_limon
 
29.09.10
16:46
да уж....
4 bura_limon
 
30.09.10
14:25
Вот так пытаюсь преобразовать дату,но Скул не видит запроса:
ТекстЗапроса="INSERT INTO dbo.io_agent_debt VALUES (CAST( '" + Формат(ВыборкаРез.Dt, "ДФ=YYYYMMDDHHMMSS")+"' AS DATE)"+"',"
+ВыборкаРез.type+",'"
+ВыборкаРез.Agent_name+"',"
+ВыборкаРез.inn+","
+ВыборкаРез.kpp+","
+Строка(Формат(ВыборкаРез.amount, "ЧДЦ=2; ЧРД=.; ЧГ=0"))+",'"
+ВыборкаРез.comment+"')";
Данные
Без CAST и AS DATE данные выводит нормально Дата+время,только все таки данные по Докам с 31.01.2010,31.03.2010 не попадают в Скул,может с синтексом я ошибаюсь?
5 bura_limon
 
30.09.10
15:52
будут у кого какие нибудь соображения?!
6 hhhh
 
30.09.10
16:07
(5) ну ты в отладчике выведи эту переменную ТекстЗапроса, а мы посмотрим и скажем тогда.
7 bura_limon
 
30.09.10
16:17
Делаю вот так:
ТекстЗапроса="INSERT INTO dbo.io_agent_debt VALUES ('"+Формат(ВыборкаРез.Dt,"ДФ=""YYYY-MM-DD HH:MM:SS")+"',"
   +ВыборкаРез.type+",'"
   +ВыборкаРез.Agent_name+"',"
   +ВыборкаРез.inn+","          
   +ВыборкаРез.kpp+","
   +Строка(Формат(ВыборкаРез.amount, "ЧДЦ=2; ЧРД=.; ЧГ=0"))+",'"
   +ВыборкаРез.comment+"')";


Сообщить(ТексЗапроса)=
Ошибка: {Форма.Форма(161)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
INSERT INTO dbo.io_agent_debt VALUES ('31.12.2009 23:59:59',2,'Дрейдина Т.В. ИП',616898821363,-,2025.23,'Остаток на дату ')
Ошибка: {Форма.Форма(161)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near ','.
INSERT INTO dbo.io_agent_debt VALUES ('31.01.2010 23:59:59',2,'Дрейдина Т.В. ИП',616898821363,-,2025.23,'Остаток на дату ')
Ошибка: {Форма.Форма(161)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near ','.
INSERT INTO dbo.io_agent_debt VALUES ('31.12.2009 23:59:59',2,'Август',6161052674,616101001,-600.00,'Остаток на дату ')
Ошибка: {Форма.Форма(161)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
INSERT INTO dbo.io_agent_debt VALUES ('21.01.2010 11:28:36',1,'Август',6161052674,616101001,600.00,'Платежное поручение исходящее ЭкД00000143 от 21.01.2010 11:28:36')
Данные за 31 число не попадают  в СКУЛ
8 hhhh
 
30.09.10
16:27
ну вот это что у тебя за фиговина?

,-,
9 АНДР
 
30.09.10
16:34
Это он Convert забыл написать к дате.
10 hhhh
 
30.09.10
16:36
нет, это пожоже КПП такое. Просто черточка.
11 АНДР
 
30.09.10
16:36
(8) Это он так КПП из пробелов к нулю преобразовал :(
12 bura_limon
 
30.09.10
16:39
(5)
ВЫБРАТЬ
|    ХозрасчетныйОбороты.Период КАК dt,
|    1 КАК type,
|    ХозрасчетныйОбороты.Субконто1 КАК agent_name,
|    ЕСТЬNULL(ХозрасчетныйОбороты.Субконто1.ИНН, 0) КАК inn,
|    ВЫБОР
|        КОГДА ХозрасчетныйОбороты.Субконто1.КПП = """"
|                ИЛИ ХозрасчетныйОбороты.Субконто1.КПП = ""-""
|            ТОГДА ""0""
|        ИНАЧЕ ХозрасчетныйОбороты.Субконто1.КПП
|    КОНЕЦ КАК kpp,
|    ХозрасчетныйОбороты.СуммаОборот КАК amount,
|    ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОбороты.Регистратор) КАК comment
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счет), , , , ) КАК ХозрасчетныйОбороты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
|    КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ),
|    2,
|    ХозрасчетныйОстаткиИОбороты.Субконто1,
|    ХозрасчетныйОстаткиИОбороты.Субконто1.ИНН,
|    ХозрасчетныйОстаткиИОбороты.Субконто1.КПП,
|    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
|    ""Остаток на дату ""
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНачОстатки, &КонецПериода, Месяц, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
|
|УПОРЯДОЧИТЬ ПО
|    agent_name";
13 hhhh
 
30.09.10
16:44
(12) черточка - это не число. Зачем ты ее в запрос как число фигачишь?
14 АНДР
 
30.09.10
16:45
Хочет нам показать, что чёрточку он заменяет.
15 bura_limon
 
30.09.10
16:46
(13)я вывел - из Консоля запроса,у некоторых в КПП есть-,0,6 и т.д.
16 bura_limon
 
30.09.10
16:48
если уберу "-" из запроса данные на этого Контрагента не попадает в Скул
17 МихаилМ
 
30.09.10
16:52
(16)
а как "-"  должен трактовать MS SQL serv ?
в контексте insert(...,-,...)

Ваша версия.
18 sapphire
 
30.09.10
16:59
(0) Так тебе, неучу и надо !
Кабы ты делал через параметры, то ADODB преобразовало бы все как надо и остальные повросы снялись сами собой.
Так ведь нет же, толку тебе объяснять, когда ты с упорством барана наступаешь на одни и те же грабли.
Свободен. Учи матчасть.
19 bura_limon
 
30.09.10
17:08
(17)по факту "-" из 1С данные лажатся в Скул.вопрос в том что данные за 31 число не попадают.
(18)если я только начинаю изучать скул,это не значит что меня надо обсирать........перестаньте ругатся......
20 sapphire
 
30.09.10
17:27
(19) Вам писали как надо. А учитесь или нет и так видно.
Вам уже неоднократно объясняли. И сервер вам пишет то же самое.
21 Dolter
 
30.09.10
17:31
- <> '-'
22 nilabs
 
30.09.10
17:33
да он достал уже за неделю, что тут что sql.ru
23 nilabs
 
30.09.10
17:34
ему уже все писали, в том числе о форматах дат и синтаксисе
24 sapphire
 
30.09.10
17:57
Не ну, правда, во-первых так, как он делает это вообще неприемлемо.
Именно, что надо использовать параметризацию ибо выгод больше нежели ошибок.
Ну ладно, один раз написали. Так ведь человек и читать-то вовсе не умеет:

INSERT INTO dbo.io_agent_debt VALUES ('31.12.2009 23:59:59',2,'Дрейдина Т.В. ИП',616898821363,-,2025.23,'Остаток на дату ')
Ошибка: {Форма.Форма(161)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near ','.

Главное, так сложно понять, что такое {,-,} для SQL причем любого!
Кабы чел использовал параметр, то преобразование сразу бы сказала, ага, ожидаетс число, а передан символ.
25 nilabs
 
30.09.10
18:11
кстати  формат  "ДФ=YYYYMMDDHHMMSS"   неправилен это и есть ответ что у него
даты  последнего дня месяца после 11:59 не пишутся в базу
26 sapphire
 
30.09.10
18:29
(25) Ты ему еще про SET DATEFORMAT расскажи :D

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.

GO
Закон Брукера: Даже маленькая практика стоит большой теории.