Имя: Пароль:
1C
1С v8
v8: Регистр через сом соединение (подключение к 7.7 из 8)
0 AlexGS87
 
19.02.13
19:15
Как вызвать регистр через сом соединение? К базе подключаюсь нормально как обратится к регистру, нужно для переноса данных с регистра "ОстаткиТоваров" базы 7.7  в документ "Оприхдования товаров" в 8.


При таком обращеннии выдает ошибку

Регистр7  = Б1С7.CreateObject("Регистр.ОстаткиТоваров");
1 Rie
 
19.02.13
19:23
(0) Не обманывай.
2 Rie
 
19.02.13
19:25
+(1) Вот код:
   V7 = СоздатьОбъект("V77.Application");
   V7.Initialize(V7.RMTrade, "", ""); // путь к базе потёр, естественно
   Рег = V7.CreateObject("Регистр.ОстаткиТоваров");
Ошибку не выдаёт.
Видимо, проблема в чём-то другом у тебя?
3 vitek89
 
19.02.13
19:27
можно еще
ТекстЗапроса =  "//{{ЗАПРОС()
 |текст
 |"//}}ЗАПРОС
 ;
 
Запрос = Б1С7.CreateObject("Запрос");

Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
 //...
КонецЕсли;
4 AlexGS87
 
19.02.13
19:31
спасибо, буду пробовать
5 Rie
 
19.02.13
19:37
(4) Ты б разобрался, почему у тебя код из (0) ошибку выдал. Хотя код - теоретически совершенно рабочий, а значит, ошибка - в другом месте.
6 AlexGS87
 
20.02.13
11:56
Ошибка пропала после перезагрузки базы 7.7
7 AlexGS87
 
20.02.13
11:58
ТекстЗапроса =  "//{{ЗАПРОС()

 |текст
 |"//}}ЗАПРОС

 ;
 
Запрос = Б1С7.CreateObject("Запрос");

Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
 //...

КонецЕсли;


Как обойти резуьтат запроса?
8 ДенисЧ
 
20.02.13
11:58
(7) Пока Запрос.Группировка(1) = 1 ЦИкл...
9 AlexGS87
 
20.02.13
12:11
спасибо
10 AlexGS87
 
20.02.13
12:11
как установить параметры для запроса в 7.7?
11 ДенисЧ
 
20.02.13
12:12
их там нет.
И вообще - иди читай документацию
12 AlexGS87
 
20.02.13
12:18
ясно
13 AlexGS87
 
20.02.13
13:00
Дата1 = '20130101';
Дата2 = '20130131';
Фирма = Б1С7.Константа.БазФирма;
     
   
   ТекстЗапроса = "
       |ПЕРИОД С Дата1 По Дата2;
       |Фирма=Регистр.ОстаткиТоваров.Фирма;
       |Склад=Регистр.ОстаткиТоваров.Склад;
       |Товар=Регистр.ОстаткиТоваров.Товар;
       |Док=Регистр.ОстаткиТоваров.ТекущийДокумент;
       |Кол=Регистр.ОстаткиТоваров.ОстатокТовара;
       |Функция НачКол  = НачОст(Кол);
       |Функция КонКол  = КонОст(Кол);
       |Функция ПрихКол = Приход(Кол);
       |Функция РасхКол = Расход(Кол);
       |Условие (Фирма=Фирма);
       |Группировка Товар;";
               
       Запрос = Б1С7.CreateObject("Запрос");
       
       
   

       
   Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
        Пока Запрос.Группировка(1)=1 Цикл
   Сообщить(Запрос.Товар.наименование);
   Сообщить(Запрос.Док.ТекущийДокумент);
   Сообщить(Запрос.Кол);
        КонецЦикла;            
       КонецЕсли;

Выдает ошибку:

Форма.Форма.Форма(1970)}: Ошибка при вызове метода контекста (Выполнить)
       Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
по причине:
Произошла исключительная ситуация (1С:Предприятие): ПЕРИОД С  <<?>> Дата1 По Дата2;
Запрос[2] : Ошибка в выражении 'Дата1'
14 AlexGS87
 
20.02.13
13:37
Фирма = Б1С7.Константа.БазФирма;

         Дата1 = '20130101';
     Дата2 = '20130131';
     
     ТекстЗапроса = "";
     ТекстЗапроса = ТекстЗапроса +"
       |ПЕРИОД С "+Дата1+" По "+Дата2+";
       |Фирма=Регистр.ОстаткиТоваров.Фирма;
       |Склад=Регистр.ОстаткиТоваров.Склад;
       |Товар=Регистр.ОстаткиТоваров.Товар;
       |Док=Регистр.ОстаткиТоваров.ТекущийДокумент;
       |Кол=Регистр.ОстаткиТоваров.ОстатокТовара;
       |Функция НачКол  = НачОст(Кол);
       |Функция КонКол  = КонОст(Кол);
       |Функция ПрихКол = Приход(Кол);
       |Функция РасхКол = Расход(Кол);
       |Условие (Фирма=Фирма);
       |Группировка Товар;";
               
       Запрос = Б1С7.CreateObject("Запрос");
       
   
       
   Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
     Пока Запрос.Группировка()=1 Цикл
       Сообщить(Запрос.Товар.наименование);
       Сообщить(Запрос.Док.ТекущийДокумент);
       Сообщить(Запрос.Кол);
     КонецЦикла;            
       КонецЕсли;
Переделано, новая ошибка

Ошибка при вызове метода контекста (Выполнить)
   Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
по причине:
Произошла исключительная ситуация (1С:Предприятие): ПЕРИОД С  <<?>> 01.01.2013 0:00:00 По 31.01.2013 0:00:00;
Запрос[2] : Ожидается дата перед '01.01'
15 ДенисЧ
 
20.02.13
13:39
|ПЕРИОД С '"+Дата1+"' По '"+Дата2+"';