|
Обращение к полю таблицы другого документ в SQL запросе | ☑ | ||
---|---|---|---|---|
0
catherineskoch
11.12.19
✎
19:43
|
И так, есть БД в MS SQL Server, в 1С есть документ "Заказ на производство"
есть обработка АРМ диспетчера, в которой есть запрос ТекстТекущейИнструкции = "INSERT INTO BROK1.dbo.DOCUMENTS ([D_ID], [D_DATE]) VALUES ("+Документы.итс_ЗаказНаПроизводство.Номер+", "+Документы.итс_ЗаказНаПроизводство.Дата+")"; И ошибка при выполнении, что поле объекта "номер" не обнаружено Как к нему правильно обратиться? или в чем может быть проблема? |
|||
1
ДенисЧ
11.12.19
✎
19:48
|
"Документы.итс_ЗаказНаПроизводство.Номер"
Если это реальный код, то проблема в ДНК... |
|||
2
catherineskoch
11.12.19
✎
19:51
|
(1) да-да, спасибо за помощь
уверен, что вам на первых порах так же помогали /: |
|||
3
ДенисЧ
11.12.19
✎
19:52
|
(2) Когда я начинал, таких умных, как я, было очень мало, и они очень дорого брали за помощь...
|
|||
4
catherineskoch
11.12.19
✎
19:52
|
(3) Если Вам жалко дать совет или помочь, то, пожалуйста, не флудите
|
|||
5
Ёпрст
11.12.19
✎
20:17
|
(0) Даже не знаю, как тебе сказать то, чтоб не обидеть.
Короче, на форму своего изделия положи реквизит, обзови его МойДокумент, тип выбери как ДокументССылка.итс_ЗаказНаПроизводство, далее в коде уже +МойДокумент.Номер+ ......МойДокумент.Дата И не забудь перед выполнением выбрать нужный документ в реквизит |
|||
6
Ёпрст
11.12.19
✎
20:18
|
А так, вообще не ясно, кто вам даёт писать запросы к SQL, когда у вас нет базовых примитивных знаний в самой 1с-ине.
Не фузиновец, случаем ? |
|||
7
vde69
11.12.19
✎
20:24
|
1. в 1с нет оператора "INSERT INTO" в запросе
2. Документы - это ВСЕ документы, а номер есть у Каждого документа 3. не плохо-бы если ты озвучишь где собрался выполнять код 4. не груби старшим |
|||
8
Ёпрст
11.12.19
✎
20:25
|
(7) это она, вроде как и...почитай предыдущие её темы
|
|||
9
Bro
11.12.19
✎
20:27
|
(6) кругом враги. Ой то есть фузиновцы.
|
|||
10
Ёпрст
11.12.19
✎
20:28
|
(9) А ты думал, в сказку попал ? Фузина, это теперь имя нарицательное, как Ливигстар, Иванов Иван, Света Семененко
|
|||
11
Ёпрст
11.12.19
✎
20:29
|
)
|
|||
12
Престарелый Заяц
11.12.19
✎
20:30
|
(4) Документы.итс_ЗаказНаПроизводство.Номер - вместо этого подставь что то реальное.
|
|||
13
catherineskoch
11.12.19
✎
21:07
|
Запрос = Новый Запрос ( "ВЫБРАТЬ Дата, Номер из Документ.итс_ЗаказНаПроизводство");
Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Номер = Выборка.Номер; Дата = Выборка.Дата; ТекстТекущейИнструкции = "INSERT INTO BROK1.dbo.DOCUMENTS ([D_ID], [D_DATE]) VALUES ("+Номер+", "+Дата+")"; Команда.CommandText = ТекстТекущейИнструкции; ЗаписиSQL = Команда.Execute(); я сделала вот и точка останова показывает, что VALUE нужное Но столкнулась с такой проблемой, что дата в 1С и в MS SQL Server выглядит по-разному и выходит ошибка, когда пытаюсь записать данные |
|||
14
shuhard
11.12.19
✎
21:10
|
(13) [Но столкнулась с такой проблемой, что дата в 1С и в MS SQL Server выглядит по-разному]
мы курсе, так всегда было |
|||
15
mikecool
11.12.19
✎
21:11
|
(13) да, дату для 1С надо конвертить, может поможет XMLСтрока, а может - ручная сборка
|
|||
16
shuhard
11.12.19
✎
21:14
|
(15) окстись
либо елками (#) окаймить, либо использовать метод ADODB рекордсета примеров море и ТС чудовищно ленив |
|||
17
Ёпрст
11.12.19
✎
21:15
|
(13) а вам точно нужен первый попавшийся документ из выборки ?
ЗЫ: формат пользуй + '' не забывай указывать для даты в инсерте |
|||
18
Ёпрст
11.12.19
✎
21:15
|
(16) это она
|
|||
19
catherineskoch
11.12.19
✎
21:18
|
(17) >а вам точно нужен первый попавшийся документ из выборки?
хм, тестовый документ был один, собсна об этом я и не подумала черт. |
|||
20
catherineskoch
11.12.19
✎
21:20
|
(17) нужный-то документ будет выбираться, но проблема, как выгрузить данные только для выбранного документа - это уже следующий вопрос
пока что буду думать над датой |
|||
21
vde69
11.12.19
✎
21:33
|
(20) ты хоть понимаешь, что инсерт - добавляет строку в таблицу а не выбирает ее ?
тебе точно надо ДОБАВЛЯТЬ ЗАПИСЬ в таблицу документов без добавления записей в другие связанные таблицы? ты не боишся, что бfнально убьешь базу? |
|||
22
vde69
11.12.19
✎
21:36
|
(21) +
кроме всего задумайся, про то, что ты пишешь без первичного ключа (а он в 99% обязателен). |
|||
23
catherineskoch
11.12.19
✎
21:50
|
(20), (21) да, точно нужно добавлять строку
а про нормализацию БД можно мне не объяснять |
|||
24
runoff_runoff
11.12.19
✎
21:55
|
для добавления и изменения объектов (записей) в базе 1С используется объектная модель и только она
а для чтения может использоваться также и табличная модель |
|||
25
mikecool
11.12.19
✎
22:26
|
все парни, пошли на кухню суп варить
|
|||
26
catherineskoch
11.12.19
✎
22:48
|
(25) о боже, какая шутка
|
|||
27
H A D G E H O G s
11.12.19
✎
23:08
|
Вы все еще кипятите?
|
|||
28
Ёпрст
11.12.19
✎
23:59
|
(20) че там думать то ?
,'"+Формат(Дата,"ДЛФ=Д")+"')"; |
|||
29
Ёпрст
12.12.19
✎
00:13
|
для верности, можешь так воткнуть (мало ли, какие там настойи скуля или рег настройки у вас)
,Cast('"+Формат(Дата,"ДЛФ=Д")+"' as datetime))"; |
|||
30
Престарелый Заяц
12.12.19
✎
01:29
|
(22) С чего ты взял, что пишет без первичного ключа?
|
|||
31
Конструктор1С
12.12.19
✎
07:15
|
А нумерация у документа непериодическая? Обычно документы нумеруются в пределах года, со следующего года нумерация начинается с чистого листа. Если так, то номер в качестве id не зайдет
|
|||
32
Конструктор1С
12.12.19
✎
07:20
|
И это, не надо городить такие огороды. Используй XMLBulk, например
|
|||
33
shuhard
12.12.19
✎
07:22
|
(32) бред
|
|||
34
Конструктор1С
12.12.19
✎
07:25
|
(32) что бред? Грузить в sql данные подходящими для этого средставами?
|
|||
35
Конструктор1С
12.12.19
✎
07:26
|
(34) -> (33)
|
|||
36
catherineskoch
12.12.19
✎
15:39
|
(29) чет не робит
сделала вот так '"+Формат(Дата,"ДФ=MM.dd.yyyy")+"' работает |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |