powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1C 8.2 УПП хранимая процедура SQL в Цикле
15 сообщений из 15, страница 1 из 1
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965154
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно выгрузить данные из 1С в SQL 2008 . Не 1С сервер
Вот одиночная запись работает

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
 Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|    РаботникиОрганизацийСрезПоследних.Период,
|    РаботникиОрганизацийСрезПоследних.Регистратор,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Ссылка,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Ссылка,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Код,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.ДатаРождения КАК ДатаРождения,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.КодПоДРФО КАК ИНН,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Пол КАК Пол,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.Код КАК ТабНом,
|    РаботникиОрганизацийСрезПоследних.Должность.Ссылка,
|    РаботникиОрганизацийСрезПоследних.Должность.Код,
|    РаботникиОрганизацийСрезПоследних.Должность.Категория.Ссылка,
|    РаботникиОрганизацийСрезПоследних.Должность.Грейд,
|    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.ВнешнийКод,
|    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.НомерЦеха,
|    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование,
|    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.НомерЦеха,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриемаНаРаботу,
|    РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения КАК ДатаУвольнения,
|    ФИОФизЛицСрезПоследних.Фамилия КАК Фамилия,
|    ФИОФизЛицСрезПоследних.Имя Как Имя,
|    ФИОФизЛицСрезПоследних.Отчество КАК Отчество
|ИЗ
|    РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
|        ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо";

Результат = Запрос.Выполнить().Выбрать();
КоличествоСтрок=Результат.Количество();
   Попытка
    Соединение = Новый COMОбъект("ADODB.Connection");
    ДатаЛ = Новый COMОбъект("DataLinks");
    Соединение.ConnectionString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=;Data Source=";
       ConnectionString = Соединение.ConnectionString;
    Сообщить(ConnectionString);
    Соединение.Open(ConnectionString);
    
        

    Команда = Новый COMОбъект("ADODB.Command");

   Команда.ActiveConnection = Соединение;

    Команда.CommandType = 4;
    Команда.CommandText="UPP_1C.insert_PersonalAll";


    Результат.Следующий();
    ПАРАМ=ЧИСЛО(Результат.ТабНом);
     

     Параметр1=Команда.CreateParameter("@persid", 3, 1, 4, ПАРАМ);
    
     Команда.Parameters.Append(Параметр1);
     Команда.Execute();
    


    
   
   
Исключение
        Предупреждение("Не удалось создать подключение!");
КонецПопытки;



А в цикле выдает ошибку

Код: javascript
1.
2.
3.
4.
5.
6.
Пока Результат.Следующий() Цикл
   
     ПАРАМ=ЧИСЛО(Результат.ТабНом);
     
     Команда.Execute();
    КонецЦикла;



Возможно я что не так делаю?
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965273
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, не проверяете строку на возможность преобразования в число.
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965330
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
philipsА в цикле выдает ошибкуphilipsВозможно я что не так делаю?Не рекомендуется в цикле выполнять запросы. У тебя уже есть выборка, вставляй выборку как параметр запроса с условием "В" или вообще объедини оба эти запроса.

philips
Код: javascript
1.
ПАРАМ=ЧИСЛО(Результат.ТабНом);

Результат.ТабНом - может быть NULL?
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965335
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяй, чтобы ТабНом у тебя не был NULL. По какой причине - не вписали табельный номер? Иногда ТабНом выражается как Код справочника. Может у тебя пустой сотрудник - физлицо есть, сотрудника нет или еще какой глюк.
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965341
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прекрасно.
Как сделать чтобы менялось значение параметра?
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965346
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ЛазуркоphilipsА в цикле выдает ошибкуphilipsВозможно я что не так делаю?Не рекомендуется в цикле выполнять запросы. У тебя уже есть выборка, вставляй выборку как параметр запроса с условием "В" или вообще объедини оба эти запроса.

philips
Код: javascript
1.
ПАРАМ=ЧИСЛО(Результат.ТабНом);

Результат.ТабНом - может быть NULL?
Нет не может .
А как передать таблицу в процедуру как параметр ?
MSSQL 2008R2
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965351
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
| ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
|ГДЕ
| НЕ РаботникиОрганизацийСрезПоследних.Сотрудник.Ссылка ЕСТЬ NULL
|
";
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965353
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
philipsА как передать таблицу в процедуру как параметр ?
MSSQL 2008R2Как в запрос 1С передать параметр - Запрос.УстановитьПаратметр(ИмяПараметра, Значение)
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965355
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
philipsА как передать таблицу в процедуру как параметр ?Просто. Либо списком значений, например, выгрузив колонку, либо поместив таблицу значений во временную таблицу, либо вообще объединить оба запроса - который выдает сотрудников (или что там перебирается в цикле) с тем, который в топике.

Первый запрос в студию - попробуем сляпать.
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965368
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это и есть хранимая процедура (параметры потом будут добавляться)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ALTER procedure [UPP_1C].[insert_PersonalAll]
(
@persid int
)
as
begin
 set nocount on
INSERT     INTO            UPP_1C.PersonalAll(ID, PersId  )
VALUES     (@persid,@persid)
end
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965877
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем данные тянуть через 1С?
Напишите в хранимой процедуре Insert Into ... Select ... From Ваша_база_1С Where ...

ЗЫ Но если Ваша ХР работает на тестовых данных, то надо разбираться с подаваемыми в неё данными.
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38965917
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня нет доступа к Sql напрямую
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38966033
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"На прямую" - это как?
Права свои на SQL Server знаете?
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38966178
philips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это удаленный сервер 1С. Я имею право на вход в 1С с полными правами. А на вход SQL сервер базы 1С нет
...
Рейтинг: 0 / 0
1C 8.2 УПП хранимая процедура SQL в Цикле
    #38966315
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем проблема использовать владельца ресурса? Ведь ему нужны ваши данные, а не вам нужно их передать...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1C 8.2 УПП хранимая процедура SQL в Цикле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]